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

Ir para baixo
Sr.Sucrilhos
Sr.Sucrilhos
Mensagens : 103
Data de inscrição : 30/03/2022
Idade : 12
Escola : São Cristovão

exercicio 2.8 para te ajudar paulo deixei cada função separada Empty exercicio 2.8 para te ajudar paulo deixei cada função separada

Qui Mar 30, 2023 7:09 pm
/*
* CURSO DE ROBOTICA 2020
*
* Exercicio: 2.8
* Tema: Painel da Caldeira
* Atividade: Termometro e Alarme de Temperatura com Buzzer permitindo o Desacionamento
* Descrição: Essa encomenda é de um painel para caldeira, com temperaturas abaixo de 90 graus led verde, entre 90 e 120 led amarelo, acima de 120 led vermelho e buzzer
* Hardware: Ligar os leds e o buzzer em pinos digital configurado como SAÍDA e o NTC em uma entrada analógica e uma tecla numa entrada PULL_UP
* Comandos: pinMode, analogRead, digitalWrite, IF / ELSE / IF, millis(), tone()
* Dica1: Os alarmes necessitam de mecanismo para desligar a sinalização sonora, isso ajuda o operador no controle do stress
* Dica2: Usar o termometro de leds para indicar o status da temperatura da caldeira
* Dica3: Usar a intermitecncia para gerar a sinalização sonora no buzzer, usar frequencias entre 500 e 3000HZ
* Dica4: Quando o alarme estiver ativo e a tecla pressionada deve silenciar o alarme sonoro, usar uma variável para controlar o estado do alarme
* Dica5: Caso a temperatura baixe, e em seguida torne a subir o alarme sonoro deve ser acionado novamente
*/

//DEFINICOES INICIAIS
#define LED_VERDE 2 //pino 2 definido como LED_VERDE
#define LED_AMARELO 3 //pino 3 definido como LED_AMARELO
#define LED_VERMELHO 4 //pino 4 definido como LED_VERMELHO
#define BUZZER 5 //pino 5 definido como BUZZER
#define BTN 6 //pino 6 definido como BTN
#define NTC A0 //pino A0 definido como NTC

//DECLARACAO DE VARIAVEIS GLOBAIS
int temperatura; // variável para armazenar a leitura da temperatura
int alarmeAtivo = 0; // variável para controlar o estado do alarme
unsigned long ultimaPressaoBtn = 0; // variável para armazenar o momento da última pressão do botão

//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600); // liga o monitor serial com a velocidade de 9600
pinMode(LED_VERDE, OUTPUT); // LED_VERDE configurado como saída
pinMode(LED_AMARELO, OUTPUT); // LED_AMARELO configurado como saída
pinMode(LED_VERMELHO, OUTPUT); // LED_VERMELHO configurado como saída
pinMode(BUZZER, OUTPUT); // BUZZER configurado como saída
pinMode(BTN, INPUT_PULLUP); // BTN configurado como entrada pullup
}

//FUNÇÕES COMPLEMENTARES
void imprimeTemperatura() {
temperatura = analogRead(NTC); // lê a temperatura do NTC
Serial.println(temperatura); // imprime a temperatura no monitor serial
delay(200); // pausa sequencial de 200 milissegundos
}

//PROGRAMA PRINCIPAL
void loop() {
imprimeTemperatura(); // chama a função para ler e imprimir a temperatura

if (temperatura < 90) {
digitalWrite(LED_VERDE, HIGH);
digitalWrite(LED_AMARELO, LOW);
digitalWrite(LED_VERMELHO, LOW);
} else if (temperatura < 120) {
digitalWrite(LED_VERDE, LOW);
digitalWrite(LED_AMARELO, HIGH);
digitalWrite(LED_VERMELHO, LOW);
} else {
digitalWrite(LED_VERDE, LOW);
digitalWrite(LED_AMARELO, LOW);
digitalWrite(LED_VERMELHO, HIGH);

if (digitalRead(BTN)) { // verifica se o botão foi pressionado
tone(BUZZER, 1049); // ativa o buzzer na frequência 1049 Hz
delay(500); // pausa de 500 milissegundos
noTone(BUZZER); // desliga o buzzer
delay(500); // pausa de 500 milissegundos
} else {
noTone(BUZZER); // desliga o buzzer
alarmeAtivo = 1; // define o alarme como ativo
}
}
}


Última edição por Sr.Sucrilhos em Dom Jul 09, 2023 3:31 pm, editado 1 vez(es)
Sr.Sucrilhos
Sr.Sucrilhos
Mensagens : 103
Data de inscrição : 30/03/2022
Idade : 12
Escola : São Cristovão

exercicio 2.8 para te ajudar paulo deixei cada função separada Empty Re: exercicio 2.8 para te ajudar paulo deixei cada função separada

Qui Mar 30, 2023 7:10 pm
Very Happy
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

exercicio 2.8 para te ajudar paulo deixei cada função separada Empty Re: exercicio 2.8 para te ajudar paulo deixei cada função separada

Qui Abr 06, 2023 12:07 am
Oi Pablo, fiz o teste do programa, mas ele não acionou o alarme, então não funcionou.
No enunciado tem várias funcionalidades e tem que atender a todas para considerar o programa entregue.
Nota 6.0
Sr.Sucrilhos
Sr.Sucrilhos
Mensagens : 103
Data de inscrição : 30/03/2022
Idade : 12
Escola : São Cristovão

exercicio 2.8 para te ajudar paulo deixei cada função separada Empty Re: exercicio 2.8 para te ajudar paulo deixei cada função separada

Sáb Dez 09, 2023 11:02 am
corrigi
Thiaguin
Thiaguin
Mensagens : 176
Data de inscrição : 03/03/2020

exercicio 2.8 para te ajudar paulo deixei cada função separada Empty Re: exercicio 2.8 para te ajudar paulo deixei cada função separada

Sáb maio 04, 2024 11:07 am
há um erro na lógica do botão
Conteúdo patrocinado

exercicio 2.8 para te ajudar paulo deixei cada função separada Empty Re: exercicio 2.8 para te ajudar paulo deixei cada função separada

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