ma il movimento non viene rilevato e il led è sempre acceso, qualcuno può aiutarmi ho letto alcuni post sul forum di persone a cui è successa la stessa cosa
grazie in anticipo
il codice sembra giusto, però se il led ti rimane sempre acceso vuol dire che il pir rileva in continuazione movimento....
la resistenza è collegata giusta? prova a fare al contrario, riscrivi il codice e cambia la condizione invece di uguale metti diverso e ovviamente cambi il low...
prova così... magari gli altri ragazzi ti daranno una spiegazione migliore della mia...
Nel datasheet c'è scritto che la tensione operativa è di 12V. Devi quindi alimentarlo con una fonte esterna, i 5V di Arduino non vanno bene.
Poi il sito suggerisce di attendere 1-2 secondi prima di fare la lettura.
Ho letto anche su altri siti e ho provato poco fa che l'alimentazione va bene da 5 a 12 v, inoltre sto facendo dei test con questo codice che attende 2 secondi prima di far iniziare le letture, il valore letto dovrebbe sempre essere un 1 quando non c'è movimento, invece a me accade che si susseguono uno e zero.
#define sensore 7
#define led 13
int allarme = 0;
void setup() {
// put your setup code here, to run once:
Serial.begin (9600);
pinMode(led, OUTPUT);
pinMode(sensore, INPUT);
delay(2000);
}
void loop() {
// put your main code here, to run repeatedly:
allarme = digitalRead(sensore);
Serial.println (allarme);
}
Io ancora no, ho riprovato anche ad alimentare il sensore pir con un alimentatore 12 v, con la resistenza di pull up sia sui 12 v che sui v del pin di arduino.
Io ancora no, ho riprovato anche ad alimentare il sensore pir con un alimentatore 12 v, con la resistenza di pull up sia sui 12 v che sui v del pin di arduino.
Hai collegato il gnd di arduino con il gnd dell'alimentatore ?
La resistenza di pull up deve essere collegata ai 5v di arduino (da un capo) e dall'altro come da schema ,se la colleghi a 12v porti il pin analogico a 12v e non gli fa affatto bene.
Grazie mille, ho collegato il gnd dell'alimentatore al pin gnd di arduino e adesso funziona tutto correttamente. Potreste spiegarmi però a che cosa serve ?
Giacomo96:
Grazie mille, ho collegato il gnd dell'alimentatore al pin gnd di arduino e adesso funziona tutto correttamente. Potreste spiegarmi però a che cosa serve ?
Il GND è il riferimento di tensione, volgarmente parlando lo zero.
Non collegandoli tra di loro è come se volessi misurare l'altezza di due persone, una seduta per terra e l'altra sopra una sedia. Capirai che la misura viene alquanto problematica, se non completamente sballata.
Se invece fai mettere in piedi le due persone sullo stesso piano, allora potrai misurare la differenza di altezza agevolmente e con più precisione.
La misura dell'altezza, ovvero della tensione è quello che fa l'analogRead e senza lo stesso riferimento GND si incasina.
Per i 12V basta che ti procuri un alimentatore a tensione variabile, non costano tantissimo.
Oppure controlla la targhetta di qualche vecchio alimentatore, quelli dei router o dei vecchi cordless forse sono a 12v.
Grazie mille, ho collegato il gnd dell'alimentatore al pin gnd di arduino e adesso funziona tutto correttamente. Potreste spiegarmi però a che cosa serve ?
Il GND è il riferimento di tensione, volgarmente parlando lo zero.
Non collegandoli tra di loro è come se volessi misurare l'altezza di due persone, una seduta per terra e l'altra sopra una sedia. Capirai che la misura viene alquanto problematica, se non completamente sballata.
Se invece fai mettere in piedi le due persone sullo stesso piano, allora potrai misurare la differenza di altezza agevolmente e con più precisione.
La misura dell'altezza, ovvero della tensione è quello che fa l'analogRead e senza lo stesso riferimento GND si incasina.
Ciao guarda il link http://www.robot-italy.com/product_info.php?products_id=1558
il 12 volt lo prendi da un alimentatore ,il gnd lo colleghi insieme al gnd dell'arduino ed il filo dell'uscita sensore (segnale) ha bisogno della resistenza di pull up che va verso i +5v di arduino e va collegata ad un pin di ingresso analogico o digitale.
Giacomo96 ha usato un pin digitale quindi puoi farlo anche tu ,hai anche il codice
no, non ho ancora il codice vollevo solo sapere i contatti perché in futuro mi servirà...
solo una domanda... non capisco una cosa... la 12v la prendo da un trasformatore esterno..... la GND perché non va anche essa collegata al trasformatore? perché la colleghiamo a quella di arduino????
la pull-up se ho capito bene: divido un due il pin del sensore uno va al 5v di arduino(cn resistenza) e l'altro va a l mio pin di controllo digitale o analogico che sia....
ho capito bene
no, non ho ancora il codice vollevo solo sapere i contatti perché in futuro mi servirà...
solo una domanda... non capisco una cosa... la 12v la prendo da un trasformatore esterno..... la GND perché non va anche essa collegata al trasformatore? perché la colleghiamo a quella di arduino????
la pull-up se ho capito bene: divido un due il pin del sensore uno va al 5v di arduino(cn resistenza) e l'altro va a l mio pin di controllo digitale o analogico che sia....
ho capito bene
Il gnd è il punto zero di tensione
Il GND è il riferimento di tensione, volgarmente parlando lo zero.
Non collegandoli tra di loro è come se volessi misurare l'altezza di due persone, una seduta per terra e l'altra sopra una sedia. Capirai che la misura viene alquanto problematica, se non completamente sballata.
Se invece fai mettere in piedi le due persone sullo stesso piano, allora potrai misurare la differenza di altezza agevolmente e con più precisione.
La misura dell'altezza, ovvero della tensione è quello che fa l'analogRead e senza lo stesso riferimento GND si incasina.
come giustamente diceva anche PaoloP, quando usi due diversi valori di tensione come in questo caso, il punto ''zero'' (gnd) deve essere lo stesso ,devi collegare in pratica il gnd dell'alimentatore a 12v (che usi per alimentare il pir) con il gnd dell'arduino (che è a 5v) ,
per la resistenza di pull up hai capito bene, il sensore pir ha la sua uscita segnale costituita da un transistor a collettore aperto,quindi ha bisogno di una resistenza che va verso il positivo di arduino e dal collettore vai al pin di arduino. In questo modo ,quando il transistor è saturo porta il suo collettore a livello basso (verso gnd) trascinando con se il pin di arduino , di conseguenza se il transistor è interdetto sul suo collettore avrai invece un livello logico alto e,visto che arduino legge al massimo 5v, gli colleghi tramite la resistenza i 5v di arduino.
Ho cercato di farti capire il concetto ,se non ti è ben chiaro dimmi,ci riproviamo
il concetto e il funzionamento del pull-up o pull-down l'ho capito bene...
mi sfugge quello della groud... prerdonami se nn capisco bene ma ho voglia di imparare....
ti faccio un esempio papale papale e mi dici se è giusto...... ho un alimentatore 12v.... lo attacco alla presa di corrente.... l'alimentatore ha in uscita 2 fili uno +12v e GRD.... il +12 li vado a collegare ai miei sensori PIR, la GND la vado a collegare alla GND del mio arduino.... di conseguenza tutte le GND dei sensori li collego a questo filo che va dall'alimentatore alla gnu(arduino)...