Robótica Livre
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Ir para baixo
lucca senn dallagassa
lucca senn dallagassa
Mensagens : 331
Data de inscrição : 09/03/2020
Idade : 17
Escola : Lindaura Ribeiro Lucas

exercicio 2.23 Empty exercicio 2.23

Qua Out 21, 2020 12:09 pm
/*
* CURSO DE ROBOTICA 2020
*
* Exercicio: 2.23
* Tema: Função WHILE
* Atividade: Construir um luximetro, para aferir ambiente de trabalho conforme NBR ISO/CIE 8995-1
* Descrição: O Luximetro deverá informar apenas se a luminosidade está acima do ajuste piscando o LED vermelho, abaixo fica aceso.
* Hardware: Ligar um led em um pino digital configurado como SAÍDA, usar o LDR e TRIMPOT em entradas analógicas
* Comandos: pinMode, digitalWrite, while(), analogRead(),
* DICA1: A função while() será usada para fazer o pisca rodar enquanto a luminosidade for maior que o definido pelo TRIMPOT
* DICA2: Usar duas variáveis de controle para LDR e TRIMPOT
* DICA3: Usar um pisca-pisca de um led dentro do while()
* DICA4: Fazer a leitura do LDR e TRIMPOT e comparar para acionar o pisca
* DICA5: As escalas do LDR e TRIMPOT são diferentes, usar map() para ajustar as escalas
*/

//DEFINICOES INICIAIS
#define led 3 //Definido que o pino 3 vai se chamar "led"
#define ldr A0 //Definido que o pino A0 vai se chamar "ldr"
#define trimpot A1 //Definido que o pino A1 vai se chamar "trimpot"

//DECLARAcAO DE VARIAVEIS
int luminosidade = 0;//Variavel tipo int chamada luminosidade que e igual a 0
int ajuste = 0;//Variavel tipo int chamada ajuste que e igual a 0

//FUNÇÕES COMPLEMENTARES
void debug () {
Serial.print("TRIMPOT =");//Imprime o texto "TRIMPOT =" na porta Serial
Serial.print(ajuste);//Imprime o texto ajuste na porta Serial
Serial.print("LDR =");//Imprime o texto "LDR =" na porta Serial
Serial.println(analogRead(ldr));//Imprime o texto "TRIMPOT =" na porta Serial
}

//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600);//Inicializa a porta serial
pinMode(led, OUTPUT);//Programado led como Saida
}

//PROGRAMA PRINCIPAL
void loop() {
debug;
luminosidade = analogRead(ldr);//Luminosidade e igual a leitura do ldr
ajuste = map(analogRead(trimpot),0,1022,11,834);//Ajuste e igual a funçao map com a leitura do trimpot junto com os valores minimo e maximo do trimpot e ldr
while(luminosidade > ajuste){//Enquanto luminosidade for maior do que ajuste
luminosidade = analogRead(ldr);//Luminosidade e igual a leitura do ldr
ajuste = map(analogRead(trimpot),0,1022,11,834);//Ajuste e igual a funçao map com a leitura do trimpot junto com os valores minimo e maximo do trimpot e ldr
digitalWrite(led, HIGH);//Acende led
delay(300);//Temporiza por 300 ms
digitalWrite(led, LOW);//Apaga led
delay(300);//Temporiza por 300 ms
}
digitalWrite(led, HIGH);//Acende led
}
Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos