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

Ir para baixo
avatar
joao victor carmona
Mensagens : 66
Data de inscrição : 18/03/2023
Escola : Colegio Professora lindaura ribeiro lucas

EX 2.08 NAO RESOLVIDO Empty EX 2.08 NAO RESOLVIDO

Seg Abr 29, 2024 2:40 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 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 5
#define led2 6
#define led3 7
#define buzzer 8
#define NTC A0

//DECLARAcAO DE VARIAVEIS GLOBAIS
int temperatura = 0;

//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(buzzer, INPUT_PULLUP);
pinMode(NTC, INPUT_PULLUP);

}
//1 - 476 ; 2 - 642 ; 3 -

//FUNÇÕES COMPLEMENTARES
void debug() {
Serial.begin(9600);
Serial.println(NTC);
delay(300);
}


//PROGRAMA PRINCIPAL
void loop() {
debug();
temperatura = analogRead(NTC);
if(temperatura < 476){
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
tone(8, 200);
}
else if(temperatura < 642);{
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
tone(7, 250);
} else if {
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, HIGH);
tone(6, 300);
}
}
Monica Moreno
Monica Moreno
Mensagens : 744
Data de inscrição : 03/03/2020
Idade : 15
Escola : Colegio Lindaura Ribeiro Lucas

EX 2.08 NAO RESOLVIDO Empty Re: EX 2.08 NAO RESOLVIDO

Seg Abr 29, 2024 3:13 pm
Boa Tarde Joao, aguardo terminar, nota 50.0
avatar
joao victor carmona
Mensagens : 66
Data de inscrição : 18/03/2023
Escola : Colegio Professora lindaura ribeiro lucas

EX 2.08 NAO RESOLVIDO Empty exercicio 2.8 resolvido

Sáb maio 18, 2024 10:51 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 5//define que o pino 5 agora se chama led1
#define led2 6//define que o pino 6 agora se chama led2
#define led3 7//define que o pino 7 agora se chama led3
#define buzzer 8//define que o pino 8 agora se chama buzzer
#define NTC A0//define que o pino A0 agora se chama NTC
#define tecla1 3//define que o pino 3 agora se chama tecla1


//DECLARAcAO DE VARIAVEIS GLOBAIS
int temperatura = 0;//define que temperatura e igual a 0
bool pressionada;//define pressiona
bool ativaBuzzer;//define ativaBuzzer
bool emiteSom;//define emiteSom
unsigned long tempoBuzzer;//define tempoBuzzer


//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600);//começa o programa em 9600
pinMode(led1, OUTPUT);//define led1 como entrada
pinMode(led2, OUTPUT);//define led2 como entrada
pinMode(led3, OUTPUT);//define led3 como entrada
pinMode(tecla1, OUTPUT);//defone tecla 1 como saida
pinMode(buzzer, INPUT_PULLUP);//define buzzer como saida
pinMode(NTC, INPUT_PULLUP);//define ntc como saida

}


//FUNÇÕES COMPLEMENTARES
void debug() {
Serial.print("tempeatura = ");//tira um print de temperatura
Serial.println(temperatura);//tira um print e pula para a proxima linha
Serial.print("pressionada = ");//tira um print de prssionada
Serial.println(pressionada);//tira um print e pula pra proxima linha
}


//PROGRAMA PRINCIPAL
void loop() {
debug();//escreve tudo que esta em void debug()
temperatura = analogRead(NTC);//temperatura e equivalente a analogRead(NTC
if(temperatura < 90){//se for maior que 90 roda
digitalWrite(led1, HIGH);//led1 ligado
digitalWrite(led2, LOW);//led2 desligado
digitalWrite(led3, LOW);//led3 desligado
ativaBuzzer = 1;//ativaBuzzer em 1
pressionada = 0;//pressionada em 0
noTone(buzzer);//desliga o buzzer

debug();//escreve tudo que esta em void debug()
}else{(temperatura < 120);{
digitalWrite(led1, LOW);//led1 desligado
digitalWrite(led2, HIGH);//led2 ligado
digitalWrite(led3, LOW);//led3 desligado
ativaBuzzer = 1;//ativaBuzzer em 1
pressionada = 0;//pressionada em 0
noTone(buzzer);//desliga o buzzer
} if(!digitalRead(tecla1) && pressionada == 0){//se nao roda e !digitalRead(tecla1) && pressionada igual a 0
digitalWrite(led1, LOW);//led1 desligado
digitalWrite(led2, LOW);//led2 desligado
digitalWrite(led3, HIGH);//led3 ligado
pressionada = 1;//pressionada em 1
ativaBuzzer = !ativaBuzzer;//ativaBuzzer igual a !ativaBuzzer
noTone(buzzer);//desliga o buzzer
}if(digitalRead(tecla1) && pressionada == 1){//se nao roda e digitalRead(tecla1) && pressionada e igual a 1
pressionada = 0;//pressiona em 0
}if(millis()> (tempoBuzzer + 500) && ativaBuzzer == 1){//se nao roda e millis()> (tempoBuzzer + 500) && ativaBuzzer equivalente a 1
tempoBuzzer = millis();//tempoBuzzer igual a millis()
emiteSom = !emiteSom;//emiteSom igual a !emiteSom

}if(emiteSom == 1){//se nao roda e emiteSom equivalente a 1
noTone(buzzer);//desliga o buzzer
}else{//se sim roda
tone(buzzer, 1500);//liga buzzer em 1500
}
}
}
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5798
Data de inscrição : 11/02/2019
Idade : 53
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

EX 2.08 NAO RESOLVIDO Empty Re: EX 2.08 NAO RESOLVIDO

Seg Set 02, 2024 10:46 pm
O programa não funcionou, recomendo que desenvolva por partes.
Primeiro faz o termometro. Daí quando acionar o vermelho liga também o buzzer.
Usa intermitencia no buzzer, e a tecla para desligar o buzzer
Para desligar o buzze usa uma variável de controle
Conteúdo patrocinado

EX 2.08 NAO RESOLVIDO Empty Re: EX 2.08 NAO RESOLVIDO

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