mattdj
September 10, 2013, 7:17pm
1
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);
}
}
tazzo
September 10, 2013, 7:24pm
2
Il punto e virgola dopo gli if
mattdj
September 11, 2013, 12:06pm
3
Gli ho tolti ma non funziona lo stesso non mi legge la chiave ne il sensore
Non esiste in C la keyword AND. Devi usare &&
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.
mattdj
September 11, 2013, 12:19pm
5
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++)
The Arduino programming language Reference, organized into Functions, Variable and Constant, and Structure keywords.
mattdj
September 11, 2013, 12:27pm
7
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.
m_ri
September 11, 2013, 12:38pm
9
forse la AND è definita da qualche parte come
#define AND &&
la mia è un'ipotesi..
mattdj
September 11, 2013, 12:42pm
10
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
mattdj
September 11, 2013, 1:07pm
12
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
gpb01
September 11, 2013, 1:13pm
13
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
mattdj
September 11, 2013, 1:23pm
14
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
mattdj
September 11, 2013, 2:00pm
16
cosa dovrei aggiungere allo sketch,ma il buzzer ha una polarita se è si come faccio a sapere quale perchè sopra non c'è scritto niente