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

Ir para baixo
Gabriel Novak
Gabriel Novak
Mensagens : 65
Data de inscrição : 12/03/2022
Idade : 99
Escola : Colegio Esatadual Professor Lindaura Ribeiro Lucas

exercicio 2.23 Empty exercicio 2.23

Sáb maio 04, 2024 9:41 am
/*
* 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 //nomear pino 3 como led
#define ldr A0//nomear pino A0 como ldr
#define trimpot A1//nomear pino A1 como trimpot
//DECLARAcAO DE VARIAVEIS
int luminosidade = 0;//criar variavel int nomeada luminosidade com o valor 0
int ajuste = 0;//criar variavel in nomeada ajuste com o valor 0

//FUNÇÕES COMPLEMENTARES
void debug(){
Serial.print("trimpot= ");//escrever "trimpot= " na placa ceral
Serial.print(analogRead(trimpot));//escrever o valor do trimpot para a placa cereal
Serial.print(" ldr= ");//escrever " ldr= " na placa ceral
Serial.println(analogRead(ldr));//escrever o valor do ldr para a placa cereal
}

//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600);//abrir a porta cereal
pinMode(led,OUTPUT);//definir led como saida
pinMode(ldr,INPUT_PULLUP);//definir ldr como entrada
pinMode(trimpot,INPUT_PULLUP);//definir trimpot como entrada
}

//PROGRAMA PRINCIPAL//max 1030 610 min 10 270
void loop() {
debug(); //rodar o void debug
luminosidade = analogRead(ldr);//faz com que o valor da variavel luminosidade seja igual ao ldr
ajuste = map(analogRead(trimpot),10,1030,270,610);//faz com que o valor do ajuste igual ao timpot melhorado
while(luminosidade > ajuste){//enquando o valor da luminosidade for maior que o ajuste rodar bloco abaixo
luminosidade = analogRead(ldr);//faz com que o valor da variavel luminosidade seja igual ao ldr
ajuste = map(analogRead(trimpot),10,1030,270,610);//faz com que o valor do ajuste igual ao timpot melhorado
debug();//rodar o void debug
digitalWrite(led ,HIGH);//ascender o led
delay(300);//delay de 300 ms
digitalWrite(led, LOW);//apagar o led
delay(300);//delay de 300 ms
}
digitalWrite(led, HIGH);//ascender o led
}

Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos