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

Ir para baixo
Monica Moreno
Monica Moreno
Mensagens : 731
Data de inscrição : 03/03/2020
Idade : 15
Escola : Colegio Lindaura Ribeiro Lucas

Resolvido 2.7 Empty Resolvido 2.7

Qui Set 09, 2021 10:25 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 ledVerde 2 //Definido pino 2 vai se chamar "ledVerde"
#define ledAmarelo 3 //Definido pino 3 vai se chamar "ledAmarelo"
#define ledVermelho 4 //Definido pino 4 vai se chamar "ledVermelho"
#define ntc A0 //Definido pino A0 vai se chamar "ntc"

//DECLARAcAO DE VARIAVEIS GLOBAIS
int Temperature;//Variável Int Temperature

//INICIALIZAÇÃO DO HARDWARE
void setup() {
 Serial.begin(9600);//Inicializa a Porta Serial
pinMode(ledVerde, OUTPUT); //Programado ledVerde como "Saída"
pinMode(ledAmarelo, OUTPUT); //Programado ledAmarelo como "Saída"
pinMode(ledVermelho, OUTPUT); //Programado ledVermelho como "Saída"
}
//FUNÇÕES COMPLEMENTARES
void debug(){
 Serial.print("temperature=");//Quando a função for ativada ele irá colocar o valor debaixo
Serial.println(analogRead(ntc)) ; //O valor lido no ntc será mandado para o monitor serial
delay(200); //Tempo 200ms
}
//1 - 476 ; 2 - 642 ; 3 - 424 ;

//PROGRAMA PRINCIPAL
void loop() {
temperature =analogRead(ntc); //O valor que esta no ntc será atribuído à vairiável temperature
if(temperature < 476 ( ; //Se o valor da variável temperature for menor que 476, a função será verdadeira
digitalWrite(ledVerde, HIGH);//Programado ledVerde Aceso
digitalWrite(ledAmarelo, LOW); //Programado ledAmarelo Apagado
digitalWrite(ledVermelho, LOW ) ; //Programado ledVermelho Apagado
}
else if (temperature <= 642){ ; //Se o valor da variável temperature for maior que 642, a função será verdadeira
digitalWrite(ledVerde, LOW );//Programado ledVerde Apagado  
digitalWrite(ledAmarelo, HIGH); //Programado ledAmarelo Aceso
digitalWrite(ledVermelho, LOW ); //Programado ledVermelho Apagado
}
else if (temperature > 424){//Se o valor da variável temperature for maior que 424 , a função será verdadeira
digitalWrite(ledVerde, LOW);//Programado ledVerde Apagado  
digitalWrite(ledAmarelo, LOW); //Programado ledAmarelo Apagado
digitalWrite(ledVermelho, HIGH); //Programado ledVermelho Aceso
}
}

Resolvido 2.7 Wink Wink Wink
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

Resolvido 2.7 Empty Re: Resolvido 2.7

Dom Set 12, 2021 1:21 am
Oi Monica, Tem umas correções para fazer.
- No primeiro if() tem um parenteses do lado errado e não abriu as chaves.
- A variável de clarada chama-se Temperature e no programa esta usando temperature. Como o compilador é case sensitive (diferencia maiuscula de minuscula), precisa escrever igual
- Os valores usados definidos na calibração parecem errados, pelo seguinte, concorda no segundo if <= 642 e noterceiro if quando usa >424 a faixa entre 424 e 642 é atendida pelos dos critérios.

A lógica está correta, somente esses detalhes mesmo.

Nota 6.0
Monica Moreno
Monica Moreno
Mensagens : 731
Data de inscrição : 03/03/2020
Idade : 15
Escola : Colegio Lindaura Ribeiro Lucas

Resolvido 2.7 Empty Exercício 2.07 resolvido

Qua Out 20, 2021 10:17 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 ledVerde 2 //Definido pino 2 vai se chamar "ledVerde"
#define ledAmarelo 3 //Definido pino 3 vai se chamar "ledAmarelo"
#define ledVermelho 4 //Definido pino 4 vai se chamar "ledVermelho"
#define ntc A0 //Definido pino A0 vai se chamar "ntc"

//DECLARAcAO DE VARIAVEIS GLOBAIS
int Temperature;//Variável Int Temperature

//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600);//Inicializa a Porta Serial
pinMode(ledVerde, OUTPUT); //Programado ledVerde como "Saída"
pinMode(ledAmarelo, OUTPUT); //Programado ledAmarelo como "Saída"
pinMode(ledVermelho, OUTPUT); //Programado ledVermelho como "Saída"
}
//FUNÇÕES COMPLEMENTARES
void debug(){
Serial.print("Temperature=");//Quando a função for ativada ele irá colocar o valor debaixo
Serial.println(analogRead(ntc)) ; //O valor lido no ntc será mandado para o monitor serial
delay(200); //Tempo 200ms
}
//1 - 476 ; 2 - 642 ; 3 - 624 ;

//PROGRAMA PRINCIPAL
void loop() {
Temperature =analogRead(ntc); //O valor que esta no ntc será atribuído à vairiável Temperature
if(Temperature < 476 ); //Se o valor da variável Temperature for menor que 476, a função será verdadeira
digitalWrite(ledVerde, HIGH);//Programado ledVerde Aceso
digitalWrite(ledAmarelo, LOW); //Programado ledAmarelo Apagado
digitalWrite(ledVermelho, LOW ) ; //Programado ledVermelho Apagado
}
else if (Temperature <= 642){ ; //Se o valor da variável Temperature for maior que 642, a função será verdadeira
digitalWrite(ledVerde, LOW );//Programado ledVerde Apagado  
digitalWrite(ledAmarelo, HIGH); //Programado ledAmarelo Aceso
digitalWrite(ledVermelho, LOW ); //Programado ledVermelho Apagado
}
else if (Temperature => 624){;//Se o valor da variável Temperature for maior que 624 , a função será verdadeira
digitalWrite(ledVerde, LOW);//Programado ledVerde Apagado  
digitalWrite(ledAmarelo, LOW); //Programado ledAmarelo Apagado
digitalWrite(ledVermelho, HIGH); //Programado ledVermelho Aceso
}
}
Refeito 2.7
alvaro 123456
alvaro 123456
Mensagens : 481
Data de inscrição : 27/04/2019
Idade : 18

Resolvido 2.7 Empty Re: Resolvido 2.7

Dom Out 31, 2021 7:36 pm
Oi
Monica, seu programa tem alguns erros peço que arrume
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

Resolvido 2.7 Empty Re: Resolvido 2.7

Ter Nov 23, 2021 12:28 am
Aguardo as revisões
Monica Moreno
Monica Moreno
Mensagens : 731
Data de inscrição : 03/03/2020
Idade : 15
Escola : Colegio Lindaura Ribeiro Lucas

Resolvido 2.7 Empty Re: Resolvido 2.7

Seg Dez 06, 2021 9:44 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 ledVerde 2 //Definido pino 2 vai se chamar "ledVerde"
#define ledAmarelo 3 //Definido pino 3 vai se chamar "ledAmarelo"
#define ledVermelho 4 //Definido pino 4 vai se chamar "ledVermelho"
#define ntc A0 //Definido pino A0 vai se chamar "ntc"

//DECLARAcAO DE VARIAVEIS GLOBAIS
int Temperature;//Variável Int Temperature

//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600);//Inicializa a Porta Serial
pinMode(ledVerde, OUTPUT); //Programado ledVerde como "Saída"
pinMode(ledAmarelo, OUTPUT); //Programado ledAmarelo como "Saída"
pinMode(ledVermelho, OUTPUT); //Programado ledVermelho como "Saída"
}
//FUNÇÕES COMPLEMENTARES
void debug(){
Temperature = map(analogRead(ntc),0,1024,311, 470);//Faz um map da temperatura
Serial.print("Temperature=");//Quando a função for ativada ele irá colocar o valor debaixo
Serial.println(analogRead(ntc)) ; //O valor lido no ntc será mandado para o monitor serial
delay(200); //Tempo 200ms
}

//PROGRAMA PRINCIPAL
void loop() {
debug();
if(Temperature < 390){//Se o valor da variável Temperature for menor que 476, a função será verdadeira
digitalWrite(ledVerde, HIGH);//Programado ledVerde Aceso
digitalWrite(ledAmarelo, LOW); //Programado ledAmarelo Apagado
digitalWrite(ledVermelho, LOW ) ; //Programado ledVermelho Apagado
}else if (Temperature > 420){ //Se o valor da variável Temperature for maior que 642, a função será verdadeira
digitalWrite(ledVerde, LOW );//Programado ledVerde Apagado
digitalWrite(ledAmarelo, HIGH); //Programado ledAmarelo Aceso
digitalWrite(ledVermelho, LOW ); //Programado ledVermelho Apagado
}else if (Temperature >= 440){//Se o valor da variável Temperature for maior que 624 , a função será verdadeira
digitalWrite(ledVerde, LOW);//Programado ledVerde Apagado
digitalWrite(ledAmarelo, LOW); //Programado ledAmarelo Apagado
digitalWrite(ledVermelho, HIGH); //Programado ledVermelho Aceso
}
}

Refeito 2.7
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

Resolvido 2.7 Empty Re: Resolvido 2.7

Sex Mar 11, 2022 10:46 pm
Agora sim, nota 10.0
Conteúdo patrocinado

Resolvido 2.7 Empty Re: Resolvido 2.7

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