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

Ir para baixo
brunodavidsteiner
brunodavidsteiner
Mensagens : 93
Data de inscrição : 21/05/2022
Escola : Juscelino K. de Oliveira

exercicio 2.7 resolvido Empty exercicio 2.7 resolvido

Sáb Jun 24, 2023 11:01 am
/*
* 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 ledVerd 2//define o ledVerd no pino2
#define ledAmar 3//efine o ledAmar no pino3
#define ledVerm 4//efine o ledVerm no pino4
#define ntc A0//define o ntc no pino A0

//DECLARAcAO DE VARIAVEIS GLOBAIS
int temperatura;//variavel tipo int para controlar a temperatura

//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(ledVerm, OUTPUT);//programa o ledVerm como saida
pinMode(ledAmar, OUTPUT);//programa o ledAmar como saida
pinMode(ledVerd, OUTPUT);//programa o ledverd como saida

}
//FUNÇÕES COMPLEMENTARES
void debug(){
Serial.print(analogRead(ntc));//manda para porta cerial o valor do ntc
delay(200);//pausa de tempo de 200 milisegundos

}
//1 - 476 ; 2 - 642 ; 3 -

//PROGRAMA PRINCIPAL
void loop() {
temperatura = analogRead(ntc);//temperatuda = ao analogRead ntc que controla a temperatura
if(temperatura < 30){//se a temperatura for menor que 30 ele executa isso
digitalWrite(ledVerd, HIGH);//acende o ledVerd
digitalWrite(ledAmar, LOW);//apaga o ledAmar
digitalWrite(ledVerm, LOW);//apaga o ledVerm
}
else if (temperatura <= 642) {//se a temperaturo for = ou menor que 642 roda isso
digitalWrite(ledVerd, LOW);//apaga o ledVerd
digitalWrite(ledAmar, HIGH);//acende o ledAmar
digitalWrite(ledVerm, LOW);//apaga o ledVerm
}
else {//se no rodar aquilo vai rodar isso
digitalWrite(ledVerd, LOW);//apaga o ledVerd
digitalWrite(ledAmar, LOW);//apaga o ledAmar
digitalWrite(ledVerm, HIGH);//acende o ledVerm

}
}
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5715
Data de inscrição : 11/02/2019
Idade : 53
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

exercicio 2.7 resolvido Empty Re: exercicio 2.7 resolvido

Qui Jun 29, 2023 11:09 pm
Oi Bruno, o programa funcionou mas tem uns detalhes que precisa ficar atento.
1 - Para calibrar o sensor precisa receber os dados na serial. e para a serial funcionar precisa habilitar no setup()
2 - Daí quando habilitar a serial precisa invocar a função debug() no programa
3 - Recebendo os dados do sensor, deve aquecelo e esfriá-lo, pode usar a temperatura do corpo segurando com o NTC com a mão
4 - Anota as variações de leitura conforme variação da temperatura, daí coloca no programa os valores para sinalização nessa faixa
Com isso, além do programa estar correto vai ver funcionar adequadamente
Nota 8.0
Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos