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

Ir para baixo
avatar
Daniel Lukas
Mensagens : 62
Data de inscrição : 06/03/2020
Idade : 17
Escola : Rua Aníbal Silva
https://sayajin-gamers-store.myshopify.com/

Exercício 2.7 Empty Exercício 2.7

Qui Jul 02, 2020 4:27 pm
/*
* CURSO DE ROBOTICA 2020
*
* Exercicio: 2.7
* Tema: Função IF / ELSE / IF
* Atividade: Termometro de Leds
* Descrição: Utilizar 3 leds para informar a temperatura, se abaixo de 30 graus verde, se maior que 30 e menor que 50 amarelo e se maior que 50 vermelho
* Hardware: Ligar os LED em pinos digital configurados como SAÍDA e o NTC em uma entrada analógica
* Comandos: pinMode, analogRead, IF ELSE IF, digitalWrite
* Dica1:A saída analógica aceita valores entre 0 e 255, e o conversor analógico possui 10 bits ou seja até 1024
* Dica2:Usar o debug() para verificar os valores do NTC para cada temperatura e aplicar nas comparações do IF/ELSE/IF
* Dica3:A função IF/ELSE/IF após encontrar uma condição verdadeira, não executa as demais comparações
* Dica4:Montar a função IF/ELSE/IF de forma que a condição anterior não atenda a próxima
*/

//DEFINICOES INICIAIS
#define ledVerde 2 //pino2 vai se chamar ledVerde
#define ledAmarelo 3 //pino3 vai se chamar ledAmarelo
#define ledVerm 4 //pino4 vai se chamar ledVerm
#define ntc A0 //pino A0 vai se chamar ntc

//DECLARAcAO DE VARIAVEIS GLOBAIS
int temperatura;

//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600); //porta serial que abriu
pinMode(ledVerde,OUTPUT); //ledVerde configurado como saida
pinMode(ledAmarelo,OUTPUT); //ledAmarelo configurado como saida
pinMode(ledVerm,OUTPUT); //ledVerm configurado como saida
}

//FUNÇÕES COMPLEMENTARES
void debug(){
Serial.println(analogRead(ntc)); //codigo escrito na linha de baixo
delay(200); //tempo de espera
//30 graus =385 50 graus=563 //anotação
}

//PROGRAMA PRINCIPAL
void loop() {
debug(); //debug ativo
temperatura = analogRead(ntc); //variavel que controla o pino
if(temperatura < 385) { //função if com a variavel
digitalWrite(ledVerde, HIGH); //pino acende
digitalWrite(ledAmarelo, LOW); //pino não acende
digitalWrite(ledVerm, LOW); //pino não acende
}
else if (temperatura <=563){ //função else if
digitalWrite(ledVerde, LOW); //pino apaga
digitalWrite(ledAmarelo, HIGH); //pino acende
digitalWrite(ledVerm, LOW); //pino não acende

}else{ //função else
digitalWrite(ledVerde, LOW); //pino não acende
digitalWrite(ledAmarelo, LOW); //pino apaga
digitalWrite(ledVerm, HIGH); //pino acende
}
}
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5021
Data de inscrição : 11/02/2019
Idade : 52
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

Exercício 2.7 Empty Re: Exercício 2.7

Sáb Jul 04, 2020 11:54 am
Oi Daniel, Funcionou direito e vi que calibrou corretamente o ldr, muito bom. Vou dar 10.0 mas acho que deve melhorar seus comentários do programa. Veja abaixo um exemplo.

temperatura = analogRead(ntc); //variavel que controla o pino //esse comando passa o valor lido pelo conversor A/D para a variável
if(temperatura < 385) { //função if com a variavel //Compara se a temperatura esta menor que o valor 385, para executar o bloco

Se ligou que está faltando informação de entendimento do programa.

Outra coisa, falta só 4 exercícios para ganhar a condecoração do capítulo 1 , veja aqueles que tem nota abaixo de 7 e corrija. Tá bem fácil de passar essa fase.
Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos