- Ana Clara Leschnhak
- Mensagens : 117
Data de inscrição : 03/03/2023
Idade : 12
Escola : Colégio Estadual Colônia Murici
exercício 2.8 resolvido
Ter Out 17, 2023 9:09 am
/*
* 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 para 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 led1 2 //define led e pino
#define led2 3 //define led e pino
#define led3 4 //define led e pino
#define buzzer A0 //define buzzer e pino
#define NTC A1 //define NTC e pino
#define tecla1 5 //define tecla e pino
//DECLARAcAO DE VARIAVEIS GLOBAIS
int temperatura; //define a variavel
bool pressionada; //define a variavel
bool ativaBuzzer; //define a variavel
bool emiteSom; //define a variavel
unsigned long tempoBuzzer; //define a variavel
//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(led1, OUTPUT);//configura a saida
pinMode(led2, OUTPUT);//configura a saida
pinMode(led3, OUTPUT);//configura a saida
pinMode(tecla1, INPUT_PULLUP);//configura a entrada
pinMode(NTC, INPUT_PULLUP);//configura a entrada
pinMode(buzzer, OUTPUT);//cofigura a saida
}
//FUNÇÕES COMPLEMENTARES
void debug(){ //inicia a porta
Serial.println(analogRead(NTC)); //
delay(200); //tempo do led
}
//90 = 819 120 = 912
//PROGRAMA PRINCIPAL
void loop() {
temperatura = analogRead(NTC); //NTC mede a temperatura
if(temperatura < 819){ //se verdadeira se executara no bloco abaixo
digitalWrite(led1, HIGH); //led1 aceso
digitalWrite(led2, LOW); //led2 apagado
digitalWrite(led3, LOW); //led3 apagado
ativaBuzzer = 1; // ígual a um
pressionada = 0; //pressionada é ígual a zero
noTone(buzzer); //nao faz barulho
}else if(temperatura <= 912){ //se verdadeira se executara o bloco abaixo
digitalWrite(led1, LOW); //led1 apagado
digitalWrite(led2, HIGH); //led2 aceso
digitalWrite(led3, LOW); //led3 apagado
ativaBuzzer = 0; // ígual a zero
pressionada = 0; //pressionada é ígual azero
noTone(buzzer); //não faz barulho
}else{ //se for falsa se executara o bloco abaixo
digitalWrite(led1, LOW); //led1 apagado
digitalWrite(led2,LOW); //led2 apagado
digitalWrite(led3, HIGH); //led3 aceso
if(!digitalRead(tecla1) && pressionada == 0){ //se for verdadeira se executara o bloco abaixo
pressionada = 1; //pressionada é ígual a um
ativaBuzzer = !ativaBuzzer; //inverte o seu estado
}
if(digitalRead(tecla1) && pressionada == 1){ //se for verdadeira se executara o bloco abaixo
pressionada = 0; //pressionada é ígual a zero
}
if(millis() > (tempoBuzzer + 500) && ativaBuzzer == 1){ //se for verdadeira se executara o bloco abaixo
tempoBuzzer = millis(); //ígual a millis
emiteSom = !emiteSom; //inverte o estado
if(emiteSom == 1){ //se for verdadeira se executara o bloco abaixo
noTone(buzzer); //não faz barulho
}else{ //semfor falsa se executara o bloco abaixo
tone(buzzer, 1500); //faz barulho
}
}
}
}
* 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 para 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 led1 2 //define led e pino
#define led2 3 //define led e pino
#define led3 4 //define led e pino
#define buzzer A0 //define buzzer e pino
#define NTC A1 //define NTC e pino
#define tecla1 5 //define tecla e pino
//DECLARAcAO DE VARIAVEIS GLOBAIS
int temperatura; //define a variavel
bool pressionada; //define a variavel
bool ativaBuzzer; //define a variavel
bool emiteSom; //define a variavel
unsigned long tempoBuzzer; //define a variavel
//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(led1, OUTPUT);//configura a saida
pinMode(led2, OUTPUT);//configura a saida
pinMode(led3, OUTPUT);//configura a saida
pinMode(tecla1, INPUT_PULLUP);//configura a entrada
pinMode(NTC, INPUT_PULLUP);//configura a entrada
pinMode(buzzer, OUTPUT);//cofigura a saida
}
//FUNÇÕES COMPLEMENTARES
void debug(){ //inicia a porta
Serial.println(analogRead(NTC)); //
delay(200); //tempo do led
}
//90 = 819 120 = 912
//PROGRAMA PRINCIPAL
void loop() {
temperatura = analogRead(NTC); //NTC mede a temperatura
if(temperatura < 819){ //se verdadeira se executara no bloco abaixo
digitalWrite(led1, HIGH); //led1 aceso
digitalWrite(led2, LOW); //led2 apagado
digitalWrite(led3, LOW); //led3 apagado
ativaBuzzer = 1; // ígual a um
pressionada = 0; //pressionada é ígual a zero
noTone(buzzer); //nao faz barulho
}else if(temperatura <= 912){ //se verdadeira se executara o bloco abaixo
digitalWrite(led1, LOW); //led1 apagado
digitalWrite(led2, HIGH); //led2 aceso
digitalWrite(led3, LOW); //led3 apagado
ativaBuzzer = 0; // ígual a zero
pressionada = 0; //pressionada é ígual azero
noTone(buzzer); //não faz barulho
}else{ //se for falsa se executara o bloco abaixo
digitalWrite(led1, LOW); //led1 apagado
digitalWrite(led2,LOW); //led2 apagado
digitalWrite(led3, HIGH); //led3 aceso
if(!digitalRead(tecla1) && pressionada == 0){ //se for verdadeira se executara o bloco abaixo
pressionada = 1; //pressionada é ígual a um
ativaBuzzer = !ativaBuzzer; //inverte o seu estado
}
if(digitalRead(tecla1) && pressionada == 1){ //se for verdadeira se executara o bloco abaixo
pressionada = 0; //pressionada é ígual a zero
}
if(millis() > (tempoBuzzer + 500) && ativaBuzzer == 1){ //se for verdadeira se executara o bloco abaixo
tempoBuzzer = millis(); //ígual a millis
emiteSom = !emiteSom; //inverte o estado
if(emiteSom == 1){ //se for verdadeira se executara o bloco abaixo
noTone(buzzer); //não faz barulho
}else{ //semfor falsa se executara o bloco abaixo
tone(buzzer, 1500); //faz barulho
}
}
}
}
- Monica Moreno
- Mensagens : 731
Data de inscrição : 03/03/2020
Idade : 15
Escola : Colegio Lindaura Ribeiro Lucas
Re: exercício 2.8 resolvido
Qua Out 18, 2023 8:34 pm
Bom Dia Ana
Tudo Bem?
Nota 10.0
Parabens
Tudo Bem?
Nota 10.0
Parabens
- Ana Clara Leschnhak
- Mensagens : 117
Data de inscrição : 03/03/2023
Idade : 12
Escola : Colégio Estadual Colônia Murici
Re: exercício 2.8 resolvido
Sex Out 20, 2023 9:50 am
Ok
Permissões neste sub-fórum
Não podes responder a tópicos