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

Ir para baixo
Gigio
Gigio
Mensagens : 68
Data de inscrição : 09/03/2022
Idade : 16
Escola : Colegio Estadual Professor Lindaura Ribeiro Lucas

Exercício 2.3 Empty Exercício 2.3

Qua maio 11, 2022 3:45 pm
/*
CURSO DE ROBOTICA 2020

Exercicio: 2.3
Tema: Função IF / ELSE
Atividade: Acender um LED se a luminosidade for muito elevada
Descrição: Usar uma entrada analógica para medir a intensidade da luz e usar esse valor para acender um LED
Hardware: Ligar os leds nos pino digitais configurado como SAÍDA DIGITAL e o LDR em uma entrada analógica
Comandos: pinMode, analogRead, digitalWrite,delay, map, IF
Dica1:A o conversor analógico possui 10 bits ou seja de 0 até 1024
Dica2:Usar a função if() para comparar se o valor do LDR ultrapassar determinado valor acender o LED e se baixar o valor apagar o LED
*/

//DEFINICOES INICIAIS
#define LED 3 //Define o LED como pino 3,
#define LDR A1 //Define o LDR como pino Analógico 1.

//DECLARAcAO DE VARIAVEIS GLOBAIS
int cha; //Variável chamada de cha.

//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600); //Inicia o monitor serial,
pinMode(LED, OUTPUT); //Define o LED como OUTPUT.
}

//FUNÇÕES COMPLEMENTARES
void debug() {
Serial.print("Luminosidade: "); //Descreve a variável cha antes de mandá-la ao Monitor Serial.
Serial.println(cha); //Manda a variável cha ao Monitor Serial.
}

//PROGRAMA PRINCIPAL
void loop() {
cha = map(analogRead(LDR), 0, 485, 1, 1023); //Calibra o leitor de luminosidade usando a variável cha (0 min 485 max = 1 min 1023 max);

if (cha > 450) { //Se cha for maior que 450, então:
digitalWrite(LED, HIGH); //Liga o LED.
}
if (cha < 450) { //Se cha for menor que 450, então:
digitalWrite(LED, LOW); //Desliga o LED.
}
debug(); //Invoca a função debug();
}
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5039
Data de inscrição : 11/02/2019
Idade : 52
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

Exercício 2.3 Empty Re: Exercício 2.3

Ter Jul 26, 2022 1:25 am
Giovanni, seu programa funcionou e vai nota 10.0.
Mas se fosse tratar de otimiozação, veja que usou a função map(), não está errado, mas também não precisaria dela. Poderia comparar os valores diretamente dos valores do LDR.
Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos