Amigos, fiz um temporizador que ao apertar o push button aciona um relê, conta X tempo, desliga o relê, conta Y tempo, aciona um buzzer por Z tempo e encerra o processo. Ocorre que no meu sketch, após acionado o push, o relê é acionado, conta o tempo X, não desliga o relê, aciona o buzzer e após o tempo do buzzer, ai si, desliga o relê. Alguem pode me ajudar a encontrar o erro ? Sou iniciante. Grato

#define rele 12
#define botao 2
#define buzzer 5
boolean estado = false;
unsigned long Tempo; // Variavel de 4 bytes para Tempo
//------------------------------
void setup()
{
Serial.begin(9600); // Diag
pinMode(rele, OUTPUT);
pinMode(botao, INPUT);
pinMode(buzzer,OUTPUT);
digitalWrite(botao, HIGH);
Tempo = millis(); // Inicializa a variavel Tempo
}
//------------------------------
void loop()
{
if (digitalRead(botao) == LOW) // Se botao foi apertado
{
delay(100); // Evita debouncing
if (digitalRead(botao) == LOW) // Se botao continua apertado
{
delay(100); // Evita debouncing
estado = !estado; // Inverte estado da saida
Tempo = millis(); // Reinicializa a variavel
Serial.println(estado); // Diag
}
}
if (digitalRead(botao) == HIGH) // Se botao está liberado
{

if (estado == true) // Se o estado for ligado
{

if (millis() - Tempo >= 5000) // Testa espera o tempo de 5 segundos
{
Serial.println(millis() - Tempo); // Diag
Tempo = millis(); // Reinicializa a variavel
estado = false; // Informa desligado


}


}


}

digitalWrite(rele, estado); // HIGH (1) = +5V // NESSE MOMENTO QUERO QUE DESLIGUE O RELE


// AGORA QUERO QUE APÓS DESLIGAR O RELE, AGUARDE TEMPO DE 5000 ( COM O RELE DESLIGADO ) E TOQUE O BUZZER PELO TEMPO DE 10.000

// O QUE ESTÁ ACONTECENDO É QUE PRIMEIRO ELE CONTA O TEMPO DE DESLIGAR O RELE, ACIONA O BUZZER PELO TEMPO DO BUZZER E SOMENTE APÓS DESLIGA O RELE.

if (estado == true)


{
delay(5000); //ajustar aqui o tempo para esperar antes de tocar
tone(buzzer,261);
delay(10000);// ajustar aqui aqui o tempo em que ficará tocando
noTone(buzzer);
}


}

Exibições: 164

Anexos

Responder esta

Respostas a este tópico

Bom dia FA,

já que vc anexou um arquivo com o sketch, recomendo remover o sketch colado na área de

texto do seu tópico.

RV

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço