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

Ir para baixo
gabriel hoepers
gabriel hoepers
Mensagens : 160
Data de inscrição : 02/07/2022
Idade : 13
Escola : lindaura

exercicio 2.07 Empty exercicio 2.07

Qui Dez 08, 2022 11:23 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: 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
#define ledAmarelo 3
#define ledVermelho 4
#define ntc A0


//DECLARAcAO DE VARIAVEIS GLOBAIS
int estado;

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




}

//FUNÇÕES COMPLEMENTARES
void debug (){
 Serial.println(analogRead(ntc));
 delay(200);
}
//1 - 476 ; 2 - 642 ; 3 -
//PROGRAMA PRINCIPAL

void loop() {
debug();
estado = analogRead(ntc);
if (estado < 497){
digitalWrite(ledVerde, HIGH);
digitalWrite(ledAmarelo, LOW);
digitalWrite(ledVermelho, LOW);
}
else if (estado > 548){
digitalWrite(ledVermelho, LOW);
digitalWrite(ledAmarelo, HIGH);
digitalWrite(ledVerde, LOW);
} else {
digitalWrite(ledVermelho, LOW);
digitalWrite(ledAmarelo, LOW);
digitalWrite(ledVerde, HIGH);
}
}


Última edição por gabriel hoepers em Sáb Abr 20, 2024 9:06 am, editado 1 vez(es)
gabriel hoepers
gabriel hoepers
Mensagens : 160
Data de inscrição : 02/07/2022
Idade : 13
Escola : lindaura

exercicio 2.07 Empty exercicio 2.7 resolvido

Qui Mar 09, 2023 9:30 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: 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 //definido que o "ledVerde" será configurado mo pino 2
#define ledAmarelo 3 //definido que o "ledAmarelo" será configurado mo pino 3
#define ledVermelho 4 //definido que o "ledVermelho" será configurado mo pino 4
#define ntc A0 //definido que o "ntc" será configurado mo pino A0


//DECLARAcAO DE VARIAVEIS GLOBAIS
int estado;

//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600);
pinMode(ledVerde, OUTPUT); //ledverde definido como saída
pinMode(ledAmarelo, OUTPUT); //ledAmarelo definido como saída
pinMode(ledVermelho, OUTPUT); //ledVermelho definido como saida


}

//FUNÇÕES COMPLEMENTARES
void debug (){
Serial.println(analogRead(ntc)); //abre a porta serial, e coloca o ntc programado na porta serial
delay(200); //tempo de 200 ms
}
//PROGRAMA PRINCIPAL

void loop() {
debug();
estado = analogRead(ntc); //pega o valor do ntc e passa para o estado
if (estado < 476){ // se a temperatura for menor que 476
digitalWrite(ledVerde, HIGH); //led verde aceso
digitalWrite(ledAmarelo, LOW); //led amarelo apagado
digitalWrite(ledVermelho, LOW); //led vermelho apagado
}
else if (estado <= 642){ //se a temperarutura for menor, ou igual que 642
digitalWrite(ledVermelho, LOW); //led vermelho apagado
digitalWrite(ledAmarelo, HIGH); //led amarelo aceso
digitalWrite(ledVerde, LOW); //led verde desligado
} else {
digitalWrite(ledVermelho, LOW); //led vermelho apagado
digitalWrite(ledAmarelo, LOW); //led amarelo apagado
digitalWrite(ledVerde, HIGH); //led verde aceso
}
}
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5788
Data de inscrição : 11/02/2019
Idade : 53
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

exercicio 2.07 Empty Re: exercicio 2.07

Sex Mar 17, 2023 10:47 pm
Oi Gabriel, o programa está com a logica correta porém tem um erro de semantica, ou seja, tem algo não fazendo sentido.
Se for testar vai ver que um dos leds não é afetado, isso porque as combinações das lógicas estão montadas de forma que não permite a combinação.
Faça que revise a lógica, tente fazer ser rever o a videoaula, faça o estudo do comportamente e encontre a melhor combinação que atenda ao enunciado.
Essa é a melhor forma de aprender, aproveite.
Nota 6.0
gabriel hoepers
gabriel hoepers
Mensagens : 160
Data de inscrição : 02/07/2022
Idade : 13
Escola : lindaura

exercicio 2.07 Empty exercicio 2.7

Ter maio 30, 2023 9:15 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: 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 //definido que o "ledVerde" será configurado mo pino 2
#define ledAmarelo 3 //definido que o "ledAmarelo" será configurado mo pino 3
#define ledVermelho 4 //definido que o "ledVermelho" será configurado mo pino 4
#define ntc A0 //definido que o "ntc" será configurado mo pino A0


//DECLARAcAO DE VARIAVEIS GLOBAIS
int estado;

//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600);
pinMode(ledVerde, OUTPUT); //ledverde definido como saída
pinMode(ledAmarelo, OUTPUT); //ledAmarelo definido como saída
pinMode(ledVermelho, OUTPUT); //ledVermelho definido como saida


}

//FUNÇÕES COMPLEMENTARES
void debug (){ //funçao debug
Serial.println(analogRead(ntc)); //abre a porta serial, e coloca o valor do ntc programado na porta serial
delay(200); //tempo de 200 ms
}
//PROGRAMA PRINCIPAL

void loop() {
estado = analogRead(ntc); //pega o valor do ntc e passa para o estado
if (estado < 476){ // se a temperatura for menor que 476
digitalWrite(ledVerde, HIGH); //led verde aceso
digitalWrite(ledAmarelo, LOW); //led amarelo apagado
digitalWrite(ledVermelho, LOW); //led vermelho apagado
}
else if (estado <= 642){ //se a temperarutura for menor, ou igual que 642
digitalWrite(ledVermelho, LOW); //led vermelho apagado
digitalWrite(ledAmarelo, HIGH); //led amarelo aceso
digitalWrite(ledVerde, LOW); //led verde desligado
} else { //se a temperatura for maior que 642 ira rodar o programa abaixo
digitalWrite(ledVermelho, LOW); //led vermelho apagado
digitalWrite(ledAmarelo, LOW); //led amarelo apagado
digitalWrite(ledVerde, HIGH); //led verde aceso
}
}
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5788
Data de inscrição : 11/02/2019
Idade : 53
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

exercicio 2.07 Empty Re: exercicio 2.07

Sex Jun 02, 2023 12:35 am
Muito bom Gabriel, nota 10.0
Conteúdo patrocinado

exercicio 2.07 Empty Re: exercicio 2.07

Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos