- Diogo Penha Marques
- Mensagens : 107
Data de inscrição : 29/02/2024
Idade : 14
Escola : Colégio Estadual da Colônia Murici
Diogo Saraiva Exercício 2.7
Qui maio 09, 2024 3:58 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 ledG 4//Nomeia o pino 4 de ledG
#define ledY 3//Nomeia o pino 3 de ledY
#define ledR 2//Nomeia o pino 2 de ledR
#define NTC A0//Nomeia o pino A0 de NTC
//DECLARAcAO DE VARIAVEIS GLOBAIS
int temp;//variavel int que guarda a temperatura
//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(ledG, OUTPUT);//Define ledG como saida
pinMode(ledY, OUTPUT);//Define ledY como saida
pinMode(ledR, OUTPUT);//Define ledR como saida
}
//FUNÇÕES COMPLEMENTARES
//PROGRAMA PRINCIPAL
void loop() {
temp = analogRead(NTC) - 340;//Variavel temp e igual a leitura do NTC - 340
if(temp < 30)//Se temp for menor do que 30, Execute:
{
digitalWrite(ledG, HIGH);//Liga o ledG
digitalWrite(ledY, LOW);//Desliga o ledY
digitalWrite(ledR, LOW);//Desliga o ledR
}
else if(temp < 50)//Se a primeira verificaçao e falsa e temp e menor do que 50, Execute:
{
digitalWrite(ledY, HIGH);//Liga o ledY
digitalWrite(ledG, LOW);//Desliga o ledG
digitalWrite(ledR, LOW);//Desliga o ledR
}
else//Se todas as verificaçoes anteriores forem falsas, Execute:
{
digitalWrite(ledR, HIGH);//Liga o ledR
digitalWrite(ledG, LOW);//Desliga o ledG
digitalWrite(ledY, LOW);//Desliga o ledY
}
}
* 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 ledG 4//Nomeia o pino 4 de ledG
#define ledY 3//Nomeia o pino 3 de ledY
#define ledR 2//Nomeia o pino 2 de ledR
#define NTC A0//Nomeia o pino A0 de NTC
//DECLARAcAO DE VARIAVEIS GLOBAIS
int temp;//variavel int que guarda a temperatura
//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(ledG, OUTPUT);//Define ledG como saida
pinMode(ledY, OUTPUT);//Define ledY como saida
pinMode(ledR, OUTPUT);//Define ledR como saida
}
//FUNÇÕES COMPLEMENTARES
//PROGRAMA PRINCIPAL
void loop() {
temp = analogRead(NTC) - 340;//Variavel temp e igual a leitura do NTC - 340
if(temp < 30)//Se temp for menor do que 30, Execute:
{
digitalWrite(ledG, HIGH);//Liga o ledG
digitalWrite(ledY, LOW);//Desliga o ledY
digitalWrite(ledR, LOW);//Desliga o ledR
}
else if(temp < 50)//Se a primeira verificaçao e falsa e temp e menor do que 50, Execute:
{
digitalWrite(ledY, HIGH);//Liga o ledY
digitalWrite(ledG, LOW);//Desliga o ledG
digitalWrite(ledR, LOW);//Desliga o ledR
}
else//Se todas as verificaçoes anteriores forem falsas, Execute:
{
digitalWrite(ledR, HIGH);//Liga o ledR
digitalWrite(ledG, LOW);//Desliga o ledG
digitalWrite(ledY, LOW);//Desliga o ledY
}
}
Permissões neste sub-fórum
Não podes responder a tópicos