Olá pessoal! Estou começando aprender agora sobre arduino, e precisava fazer um alarme.
Vou tentar explicar como deve funcionar esse alarme:
Eu gostaria de colocar um sensor que ao detectar um movimento ele acionaria o buzzer(sirene), mas tem um porem, uma vez que o buzzer for acionado ele continua com a sirene, mesmo que o sensor já não detecte movimento algum.
Eu iria desligar o buzzer atraves de controle remoto(essa parte da codificação eu já
Falta algo no teu post...
Em todo o caso, antes de pedires ajuda, coloca o que já fizeste e uma dúvida em específico. Pedires para que alguém te faça o projecto não é o objectivo do fórum.
Me perdoe. Aqui tá o codigo da parte do alarme, como podem ver ele funciona quando a porta abrir, mas quando fechar ele para de tocar, eu queria que uma vez aberto ele continuasse tocando e só pare quando acionado pelo controle remoto.
int chave = 2; // CHAVE NO PINO 2
int falante = 4; // BUZZER NO PINO 4
int acionamento; //VARIAVEL PARA GUARDAR VALOR DA CHAVE
void setup()
{
pinMode(falante, OUTPUT); // DEFINE PINO COMO SAIDA
pinMode(chave, INPUT); // DEFINE PINO COMO ENTRADA
}
void loop()
{
// ALARME
acionamento = digitalRead(chave); // LÊ O VALOR DA CHAVE
if (acionamento == LOW) //PORTA FECHADA
{
digitalWrite(falante, LOW);
}
else //CASO A PORTA SEJA ABERTA
{
digitalWrite(falante, HIGH);
Alarme.beep(500); //beep de 500 ms
delay(300); //aguarda 0,3 seg
Alarme.beep(300);
delay(500);
Alarme.beep(400); //beep de 400 ms
delay(500); //aguarda 0,5 seg
Alarme.beep(600);
delay(300);
}
}
Tens de fazer um encravamento...
unsigned char encrava = 0;
unsigned long time_falante = 0;
unsigned char saida = 0;
if (accionamento == LOW) encrava = 1;
if (encrava == 1) {
if (time_falante - millis > 1000) {
digitalWrite(falante, saida);
if (saida == 1) saida = 0;
else saida = 1;
time_falante = millis();
}
}
if (controlo_remoto == 1 && accionamento == HIGH) {
encrava = 0;
digitalWrite(falante, 0);
}
}
Muito obrigado! Agora consegui.