Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [C++] Allarme arduino

  1. #1

    [C++] Allarme arduino

    Ciao a tutti, sto tentando di programmare un allarme con arduino ed ho riscontrato qualche difficoltà.
    In sostanza il programma funziona, il fatto è che se ad esempio la sirena sta suonando perchè appunto uno dei sensori è on ed io stacco improvvisamente l' abilitazione anche la sirena dovrebbe staccarsi immediatamente, ma non lo fa.
    Che ciclo potrei utilizzare?

    Spero di essermi spiegato bene, grazie a tutti in anticipo

    Vi posto il codice sotto

    codice:
    int abilitazione=1,sensore1=2,sensore2=3,sensore3=4,sensore4=5,sirena=13,i;
    void setup()
    {
      pinMode(abilitazione,INPUT);
      pinMode(sensore1,INPUT);
      pinMode(sensore2,INPUT);
      pinMode(sensore3,INPUT);
      pinMode(sensore4,INPUT);
      pinMode(sirena,OUTPUT);
    }
    void loop()
    {
      if(digitalRead(abilitazione)==HIGH)
      {
        if(digitalRead(sensore1)==HIGH)
        {
          i=0;
          while((i<20)&&(digitalRead(abilitazione)==HIGH))
          {
            delay(500);
            i++;
            if(i==20)
            {
              digitalWrite(sirena,HIGH);
              delay(5000);
              digitalWrite(sirena,LOW);
            }
        if(digitalRead(sensore2)==HIGH)
        {
          digitalWrite(sirena,HIGH);
          delay(5000);
          digitalWrite(sirena,LOW);
        }
        if(digitalRead(sensore3)==HIGH)
        {
          digitalWrite(sirena,HIGH);
          delay(5000);
          digitalWrite(sirena,LOW);
        }
        if(digitalRead(sensore4)==HIGH)
        {
          digitalWrite(sirena,HIGH);
          delay(5000);
          digitalWrite(sirena,LOW);
        }
          }
        }
        if(digitalRead(sensore2)==HIGH)
        {
          digitalWrite(sirena,HIGH);
          delay(5000);
          digitalWrite(sirena,LOW);
        }
        if(digitalRead(sensore3)==HIGH)
        {
          digitalWrite(sirena,HIGH);
          delay(5000);
          digitalWrite(sirena,LOW);
        }
        if(digitalRead(sensore4)==HIGH)
        {
          digitalWrite(sirena,HIGH);
          delay(5000);
          digitalWrite(sirena,LOW);
        }
      }
    }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    E questa "abilitazione" cosa sarebbe? Come è collegata al sistema? Dove compare nel codice?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Quote Originariamente inviata da oregon Visualizza il messaggio
    E questa "abilitazione" cosa sarebbe? Come è collegata al sistema? Dove compare nel codice?
    L' abilitazione non è altro che "il pulsante avvio dell' allarme", cioè quando esci di casa e schiacci il pulsante per mettere in funzione l' allarme nel caso in cui provi ad entrare.

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Quindi nella prima if manca una else

    void loop()
    {
    if(digitalRead(abilitazione)==HIGH)
    {
    ...
    }
    else
    digitalWrite(sirena,LOW);
    }
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.