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
}
}
* 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
}
}
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.
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.
Permissões neste sub-fórum
Não podes responder a tópicos
|
|