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
LucyAnna800
Mensagens : 98
Data de inscrição : 11/06/2022
Idade : 12
Escola : Colegio Lindaura Ribeiro Lucas

exercicio 2.8 qual é o erro?? Empty exercicio 2.8 qual é o erro??

Sáb Jul 29, 2023 10:28 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 ledv 2
#define leda 3
#define ledverm 4
#define buzzer A0
#define NTC A1
#define tecla 5

//DECLARAcAO DE VARIAVEIS GLOBAIS
int temperatura;
bool pressionada;
bool ativaBuzzer;
bool emiteSom;
unsigned long tempoBuzzer;

//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(ledv, OUTPUT);
pinMode(leda, OUTPUT);
pinMode(ledverm, OUTPUT);
pinMode(tecla, INPUT_PULLUP);
pinMode(NTC, INPUT_PULLUP);
pinMode(buzzer, OUTPUT);

}

//FUNÇÕES COMPLEMENTARES





//PROGRAMA PRINCIPAL
void loop() {
temperatura = analogRead(NTC);
if(temperatura < 12){
digitalWrite(ledv, HIGH);
digitalWrite(leda, LOW);
digitalWrite(ledverm, LOW);
ativaBuzzer = 1;
pressionada = 0;
noTone(buzzer);
}else if(temperatura <= 20){
digitalWrite(ledv, LOW);
digitalWrite(leda, HIGH);
digitalWrite(ledverm, LOW);
ativaBuzzer = 0;
pressionada = 0;
noTone(buzzer);
}else {
digitalWrite(ledv, LOW);
digitalWrite(leda,LOW);
digitalWrite(ledverm, HIGH);
if(!digitalRead(tecla) && pressionada == 0){
pressionada = 1;
ativaBuzzer = !ativaBuzzer;
}
if(digitalRead(tecla) && pressionada == 1){
pressionada = 0;
}
if(millis() > (tempoBuzzer + 500) && ativaBuzzer == 1){
tempoBuzzer = millis();
emiteSom = !emiteSom;
if(emiteSom == 1){
noTone(buzzer);
}else{
tone(buzzer, 1500);
}
}

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

exercicio 2.8 qual é o erro?? Empty Re: exercicio 2.8 qual é o erro??

Ter Ago 01, 2023 2:32 pm
Boa Tarde
Aguardo terminar
avatar
LucyAnna800
Mensagens : 98
Data de inscrição : 11/06/2022
Idade : 12
Escola : Colegio Lindaura Ribeiro Lucas

exercicio 2.8 qual é o erro?? Empty exercicio 2.8 correto(isso espero)

Ter Ago 15, 2023 11:14 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 ledv 2
#define leda 3
#define ledverm 4
#define buzzer A0
#define NTC A1
#define tecla 5

//DECLARAcAO DE VARIAVEIS GLOBAIS
int temperatura;
bool pressionada;
bool ativaBuzzer;
bool emiteSom;
unsigned long tempoBuzzer;

//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(ledv, OUTPUT);
pinMode(leda, OUTPUT);
pinMode(ledverm, OUTPUT);
pinMode(tecla, INPUT_PULLUP);
pinMode(NTC, INPUT_PULLUP);
pinMode(buzzer, OUTPUT);

}

//FUNÇÕES COMPLEMENTARES
//90 = 819 120 = 912




//PROGRAMA PRINCIPAL
void loop() {
temperatura = analogRead(NTC);
if(temperatura < 819){
digitalWrite(ledv, HIGH);
digitalWrite(leda, LOW);
digitalWrite(ledverm, LOW);
ativaBuzzer = 1;
pressionada = 0;
noTone(buzzer);
}else if(temperatura <= 912){
digitalWrite(ledv, LOW);
digitalWrite(leda, HIGH);
digitalWrite(ledverm, LOW);
ativaBuzzer = 0;
pressionada = 0;
noTone(buzzer);
}else{
digitalWrite(ledv, LOW);
digitalWrite(leda,LOW);
digitalWrite(ledverm, HIGH);
if(!digitalRead(tecla) && pressionada == 0){
pressionada = 1;
ativaBuzzer = !ativaBuzzer;
}
if(digitalRead(tecla) && pressionada == 1){
pressionada = 0;
}
if(millis() > (tempoBuzzer + 500) && ativaBuzzer == 1){
tempoBuzzer = millis();
emiteSom = !emiteSom;
if(emiteSom == 1){
noTone(buzzer);
}else{
tone(buzzer, 1500);
}
}

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

exercicio 2.8 qual é o erro?? Empty Re: exercicio 2.8 qual é o erro??

Ter Ago 15, 2023 3:01 pm
Oii Lucy
Ainda tem erro
1°Falta Comentar
2° E seu exercicio esta incompleto/errado
avatar
LucyAnna800
Mensagens : 98
Data de inscrição : 11/06/2022
Idade : 12
Escola : Colegio Lindaura Ribeiro Lucas

exercicio 2.8 qual é o erro?? Empty ??????

Qui Ago 17, 2023 10:30 am
mas qual que é o erro
Monica Moreno
Monica Moreno
Mensagens : 685
Data de inscrição : 03/03/2020
Idade : 15
Escola : Colegio Lindaura Ribeiro Lucas

exercicio 2.8 qual é o erro?? Empty Re: exercicio 2.8 qual é o erro??

Seg Set 04, 2023 4:07 pm
Oiii Lucy
Tudo Bem?

Vamos aos erros e posiveis erros

1° Cuidado com o nome dos leds pode confundir !!!
2° Não foi declarada a função do debug() revise ai a função debug() serve para o NTC
3°Comentar

Nota 50.0

Aguardo Arrumar study study Wink Wink
avatar
LucyAnna800
Mensagens : 98
Data de inscrição : 11/06/2022
Idade : 12
Escola : Colegio Lindaura Ribeiro Lucas

exercicio 2.8 qual é o erro?? Empty exercicio 2.08

Ter Set 12, 2023 11: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 ledv 2 //batizado o pino 2 de ledv
#define leda 3 //batizado o pino 3 de leda
#define ledverm 4 //batizado o pino 4 ledverm
#define buzzer A0 //batizado o pino A0 de buzzer
#define NTC A1 //batizado o pino A1 de NTC
#define tecla 5 //batizado o pino 5 de tecla

//DECLARAcAO DE VARIAVEIS GLOBAIS
int temperatura; //batizada a variavel int de temperatura
bool pressionada; //batizada a variavel bool de pressionada
bool ativaBuzzer; //batizada a variavel bool de ativaBuzzer
bool emiteSom; //batizada a variavel bool de emiteSom
unsigned long tempoBuzzer; //batizada a variavel unsigned long de tempoBuzzer

//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(ledv, OUTPUT); //ledv configurada como saída
pinMode(leda, OUTPUT); //leda configurada como saída
pinMode(ledverm, OUTPUT); //ledverm configurada como saída
pinMode(tecla, INPUT_PULLUP); //tecla configurada como entrada pullup
pinMode(NTC, INPUT_PULLUP); //NTC configurado como entrada pullup
pinMode(buzzer, OUTPUT); //buzzer configurado como saída

}

//FUNÇÕES COMPLEMENTARES
void debug(){ //inicializando um void debug
Serial.println(analogRead(NTC)); //imprimindo uma porta serial e pulando uma linha na variavel NTC que está passando por um analogRead
delay(200); //tempo

}
//90 = 819 120 = 912

//PROGRAMA PRINCIPAL
void loop() {
temperatura = analogRead(NTC); //agora o NTC mede a temperatura
if(temperatura < 819){ //se a condição for verdadeira se executara o bloco abaixo
digitalWrite(ledv, HIGH); //lev aceso
digitalWrite(leda, LOW); //leda apagado
digitalWrite(ledverm, LOW); //ledverm apagado
ativaBuzzer = 1; //ativaBuzzer ígual a um
pressionada = 0; //pressionada ígual a zero
noTone(buzzer); //buzzer nn faz barulho
}else if(temperatura <= 912){ //se a condição for verdadeira se executara o bloco abaixo
digitalWrite(ledv, LOW); //ledv apagado
digitalWrite(leda, HIGH); //leda aceso
digitalWrite(ledverm, LOW); //ledverm apagado
ativaBuzzer = 0; //ativaBuzzer ígual a zero
pressionada = 0; //pressionada ígual azero
noTone(buzzer); //buzzer não faz barulho
}else{ //se a condição acima for falsa se executara o bloco abaixo
digitalWrite(ledv, LOW); //ledv apagado
digitalWrite(leda,LOW); //leda apagado
digitalWrite(ledverm, HIGH); //ledverm aceso
if(!digitalRead(tecla) && pressionada == 0){ //se a condição for verdadeira se executara o bloco abaixo
pressionada = 1; //pressionada ígual a um
ativaBuzzer = !ativaBuzzer; //ativaBuzzer inverte o seu estado
}
if(digitalRead(tecla) && pressionada == 1){ //se a condição for verdadeira se executara o bloco abaixo
pressionada = 0; //pressionada ígual a zero
}
if(millis() > (tempoBuzzer + 500) && ativaBuzzer == 1){ //se a condição for verdadeira se executara o bloco abaixo
tempoBuzzer = millis(); //tempoBuzzer ígual a millis
emiteSom = !emiteSom; //emiteSom inverte o estado
if(emiteSom == 1){ //se a condição for verdadeira se executara o bloco abaixo
noTone(buzzer); //buzzer não faz barulho
}else{ //se a condição acima for falsa se executara o bloco abaixo
tone(buzzer, 1500); //buzzer faz barulho
}
}

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

exercicio 2.8 qual é o erro?? Empty Re: exercicio 2.8 qual é o erro??

Qui Set 21, 2023 4:00 pm
Bom Dia Lucy
Tudo Bem?

Nota 10.0

Parabéns Cool Cool study study

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 qual é o erro?? Empty Re: exercicio 2.8 qual é o erro??

Dom Set 24, 2023 8:41 pm
Ei, lamento estragar a festa mas fui testar o programa e nõ funcionou. Posso aponta alguns dos problemas.
Primeiro ligou o buzzer no A0, que é uma entrada analógica e ele deve ficar em um pino digital como saída
Daí quando a temperatura aumenta precisa acionar o buzzer e usou a variável ativa buzzer para isso, correto
Então para completar faz uma parte do programa só para tratar o ativa buzzer, se tiver ativado usa a intermitencia para o alarme, e se apertar a tecla desativa o buzzer

Resumindo o funcionamento, o buzzer ativa sempre que a temnperatura subir e se apertar a tecla deve parar o alarme sonoro.
Nota 8.0
Conteúdo patrocinado

exercicio 2.8 qual é o erro?? Empty Re: exercicio 2.8 qual é o erro??

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