Minha intenção seria um alarme com um laser e um LDR, ele detectaria quando o feixe do laser fosse interrompido assim disparando o alarme, porem eu tentei adicionar um botão para interromper este alarme com a função break; só que não deu certo, alguem pode me dizer como faço isso? obrigado.

 

aqui segue o código:

 


byte buzz = 3;
int song = 1480;
int alarm1 = 3520;
int alarm2 = 2960;
int alarm3 = 2093;
byte time = 200;
int but = 5;


void setup()
{
Serial.begin(9600);
pinMode(but,INPUT); // porta 5 configurada para botão
digitalWrite(but,1); //liga pull-up
pinMode(13,1);
byte var = 0;
while (var < 3)
{
tone(buzz, song);
delay(time);
noTone(buzz);
delay(time);
var++;
}


}

void loop()
{
int LDR = analogRead(A0);
Serial.println(LDR);
int leitura = digitalRead(but);

if (LDR < 400)
{
int var = 0;
while(var<200)
{
digitalWrite(13,1);
tone(buzz, alarm1);
delay(500);
noTone(buzz);
tone(buzz, alarm2);
delay(200);
noTone(buzz);
tone(buzz, alarm3);
delay(100);
noTone(buzz);
var++;
if (leitura==0)
{
digitalWrite(13,0);
noTone(buzz);
break;
delay(1000);
}
delay(50);
}
}

else
{
noTone(buzz);
}
}

Exibições: 1312

Responder esta

Respostas a este tópico

break;

sim com um break; a questão é que eu tinha esquecido de colocar "int leitura = digitalRead(but);" dentro do laço while. mas obrigado por responder.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço