Creare un allarme

Salve ragazzi ho cercato di creare un allarme ma ho un problema con lo sketch ho collegato un interruttore a chiave ad arduino

int Chiave;
int Sensore;
int Led=3;

void setup()
{
  Serial.begin(9600);
  pinMode(A0,INPUT); //Sensore PIR
  pinMode(4,INPUT);  //Chiave
  pinMode(3,OUTPUT); //LED
  Chiave=digitalRead(4);
  Sensore=digitalRead(A0);  
}

void loop()
{
  if((Chiave==LOW) and (Sensore==LOW));
  {
    Serial.println("Allarme Inserito");
    delay(5000);   
    Serial.println("Zona 1 OK!");
    digitalWrite(Led,LOW);
  }
  if((Chiave==LOW) and (Sensore==HIGH));
  {
    Serial.println("Attenzione!Zona 1");
    delay(20000);
    digitalWrite(Led,HIGH);
  }
  if((Chiave==HIGH) and (Sensore==LOW));
  {
    Serial.println("Allarme Disinserito");
    digitalWrite(Led,HIGH);
    delay(1000);
    digitalWrite(Led,LOW);
  }
  if((Chiave==HIGH) and (Sensore==HIGH));
  {
    Serial.println("Allarme Disinserito");
    digitalWrite(Led,HIGH);
    delay(1000);
    digitalWrite(Led,LOW);
  }  
}

Il punto e virgola dopo gli if

Gli ho tolti ma non funziona lo stesso non mi legge la chiave ne il sensore

  1. Non esiste in C la keyword AND. Devi usare &&
  2. le letture dei sensori le devi fare di continuo, non solo nella setup(). Quella viene eseguita una sola volta. Devi spostare queste due nella loop():
Chiave=digitalRead(4);
Sensore=digitalRead(A0);

Poi magari lo schema di come hai collegato i sensori e interruttore può essere utile.

Io in un altro sketch lo usato AND funzionava normalmente

cerca Logical operators in questo link:
http://www.cplusplus.com/doc/tutorial/operators/

La and e la or non esistono in C ne in C++ ne in Arduino (che è poi C++)

ok ho sistemato ho messo la && ma adesso rimane sempre disattivato al contrario di prima che rimaneva sempre attivo e non leggeva il sensore

nid69ita:
2. le letture dei sensori le devi fare di continuo, non solo nella setup(). Quella viene eseguita una sola volta. Devi spostare queste due nella loop():

Questo lo hai fatto?
metti anche 2 Serial.println() dei valori delle due variabili Chiave e Sensore. Così puoi verificare se cambiano e se la logica degli if è coerente.

forse la AND è definita da qualche parte come
#define AND &&

la mia è un'ipotesi..

Ok grazie mille funziona voglio farvi due domande sempre su questo progetto come faccio a collegare un Piezo buzzer è un interruttore a chiave(a 2 Poli uno N l'altro L)

In questo link del forum puoi trovare un pò di schemi di collegamento fatti da @xxxpighi:
http://forum.arduino.cc/index.php?topic=146152.new#new

ciao è troppo piccolo non riesco a vedere quale resistenza usare per il piezo buzzer e non riesco a trovare come collegare l' interruttore a chiave

mattdj:
ciao è troppo piccolo non riesco a vedere quale resistenza usare per il piezo buzzer e non riesco a trovare come collegare l' interruttore a chiave

Vai sul sito di Pighixxx, QUI, ti scegli il set di schede e TE LO SCARICHI !!!

Guglielmo

Ciao grazie Guglielmo io non ho una resistenza da 100 ohm la più piccola che ho è da 220 ohm la posso usare lo stesso?

Sempre da sito di xxxpighi, utility per il calcolo delle resistenze se messe in parallelo:

Ovvero, metti 2 R da 220 in parallelo => 110 ohm

cosa dovrei aggiungere allo sketch,ma il buzzer ha una polarita se è si come faccio a sapere quale perchè sopra non c'è scritto niente