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
André Luis Caetano
Mensagens : 41
Data de inscrição : 10/03/2020
Escola : São Critóvão

Exercício 2.7 Empty Exercício 2.7

Sáb Ago 15, 2020 3:24 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 //foi definido que o pino 2 se chama ledVerde
#define ledAmarelo 3 //foi definido que o pino 3 se chama ledAmarelo
#define ledVerm 4 //foi definido que o pino 4 se chama ledVerm
#define ntc A0 //foi definido que o pino A0 se chama ntc

//DECLARAcAO DE VARIAVEIS GLOBAIS
int temperatura; //foi declarada uma variavel do tipo int com o nome temperatura

//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin (9600);
pinMode(ledVerde, OUTPUT); //ledVerde foi programado como saida
pinMode(ledAmarelo, OUTPUT); //ledAmarelo foi programado como saida
pinMode(ledVerm, OUTPUT); //ledVerm foi programado como saida

}

//FUNÇÕES COMPLEMENTARES
void debug (){
Serial.println(analogRead(ntc));
delay(200);
}
// 1) 30 g 382 2)50 g 563
//PROGRAMA PRINCIPAL
void loop() {
temperatura = analogRead(ntc); //temperatura é igual a leitura analogica do ntc
if (temperatura < 382){ //se temperatura for menor que 30 graus executa o bloco de funçoes {
digitalWrite(ledVerde, HIGH); //ledVerde aceso
digitalWrite(ledAmarelo, LOW); //ledAmarelo apagado
digitalWrite(ledVerm, LOW); //ledVerm apagado
}
else if(temperatura <= 476){
digitalWrite(ledVerde, LOW); //ledVerde apagado
digitalWrite(ledAmarelo, HIGH); //ledAmarelo aceso
digitalWrite(ledVerm, LOW); //ledVerm apagado
}
else {
digitalWrite(ledVerde, LOW); //ledVerde apagado
digitalWrite(ledAmarelo, LOW); //ledAmarelo apagado
digitalWrite(ledVerm, HIGH); //ledVerm aceso
}
} //o simullide travou e nao consegui fazer a simulaçao
//By André Luis Caetano
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.7 Empty Re: Exercício 2.7

Dom Ago 23, 2020 9:18 pm
Oi Andre, testei seu programa. E voce precisa testar também.
Se o simulide travou reinicia ele e testa. Se bugou geral. Baixa de novo e reinstala. O fato é que precisa testar o programa.
No seu programa o código está correto, mas está mudando para amarelo com 30 graus e pede para mudar com 50 graus.
Nota 8.0
Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos