Salve, dunque leggevo che non è possibile collegare al pin da 5V un sensore che assorbe 5V (al che mi chiedo a che serve il suddetto pin?).
Ora io ho un sensore con 3 connettori: +5V, GND, signal
Come lo alimento usando i gpio del RPi?
Grazie!
Usare un sensore da 5V con i GPIO
24 posts
- Posts: 29
- Joined: Sat May 19, 2012 2:01 pm
I gpio sono I/O digitali.
Se il tuo sensore è un analogico (ad esempio 0..20mA), non lo puoi connettere direttamente, in quanto il GPIO non saprebbe leggerlo.
Per interfacciare sensori analogici (temperatura, pressione, umidità, ecc) devi avere dei sensori con interfaccia I2C o SPI.
Detto questo, in generale puoi collegare il +5V e GND del RPI ad un circuito esterno per alimentarlo, a patto che la corrente assorbita non superi i 120mA (se non ricordo male).
saluti
Se il tuo sensore è un analogico (ad esempio 0..20mA), non lo puoi connettere direttamente, in quanto il GPIO non saprebbe leggerlo.
Per interfacciare sensori analogici (temperatura, pressione, umidità, ecc) devi avere dei sensori con interfaccia I2C o SPI.
Detto questo, in generale puoi collegare il +5V e GND del RPI ad un circuito esterno per alimentarlo, a patto che la corrente assorbita non superi i 120mA (se non ricordo male).
saluti
- Posts: 47
- Joined: Sun Dec 23, 2012 3:25 pm
Il sensore è questo -> http://www.robot-italy.com/it/pir-motion-sensor.html
(C'è scritto che va a 12V ma ho letto che lo si può alimentare anche a 5V e 7V [ho visto progettini dove lo implementano su arduino senza nessuna alimentazione strana, lo attaccano al 5V e via...] )
Mi pare che l'uscita del segnale sia digitale visto che dice "va a livello logico basso"... no?
Per quanto riguarda l'alimentazione mi spiace ma non ho capito; non sono molto bravo in elettronica, mi puoi spiegare bene cosa dovrei fare? Diciamo che ho a disposizione una breadboard e un pò di materiali come resistenze, ecc... Se manca qualcosa me lo procuro ma voglio capire le problematiche e cosa è necessario per far funzionare il tutto.
(Se volessi dargli 12V cosa dovrei fare?)
Grazie!
(C'è scritto che va a 12V ma ho letto che lo si può alimentare anche a 5V e 7V [ho visto progettini dove lo implementano su arduino senza nessuna alimentazione strana, lo attaccano al 5V e via...] )
Mi pare che l'uscita del segnale sia digitale visto che dice "va a livello logico basso"... no?
Per quanto riguarda l'alimentazione mi spiace ma non ho capito; non sono molto bravo in elettronica, mi puoi spiegare bene cosa dovrei fare? Diciamo che ho a disposizione una breadboard e un pò di materiali come resistenze, ecc... Se manca qualcosa me lo procuro ma voglio capire le problematiche e cosa è necessario per far funzionare il tutto.
(Se volessi dargli 12V cosa dovrei fare?)
Grazie!
- Posts: 29
- Joined: Sat May 19, 2012 2:01 pm
Ho visto il link, effettivamente è un sensore digitale.
La cosa è abbastanza semplice.
- Il filo di massa lo devi collegare al filo di massa del rpi.
- L'alimentazione del sensore è 7-12V, per cui non puoi usare i 5V dell'RPI, per cui ti dovrai procurare un alimentatore 9-12V, ne puoi trovare abbastanza facilmente di recupero, molte apparecchiature funzionano a 12V (es. vecchi mangianastri, rasoi elettrici, radio) , il positivo lo attacchi al pin di alimentazione del sensore, mentre il negativo lo puoi attaccare insieme con le due masse.
- Collega il filo dei 5V del rpi ad un terminale di una resistenza da 10K Ohm, mentre il secondo terminale va al pin "segnale" del sensore.
- Collega quindi il pin "segnale" del sensore ad un pin GPIO di tua scelta.
Quando il sensore non rileva alcun movimento, tra il pin "segnale" e GND dovresti misurare una tensione vicina ai 5V, mentre quando rileva movimento lo stesso pin dovrebbe avere una tensione vicina a 0V. Il pin GPIO che avrai collegato dovrebbe riportare lo stato del segnale.
Spero di essere stato chiaro.
Ciao
La cosa è abbastanza semplice.
- Il filo di massa lo devi collegare al filo di massa del rpi.
- L'alimentazione del sensore è 7-12V, per cui non puoi usare i 5V dell'RPI, per cui ti dovrai procurare un alimentatore 9-12V, ne puoi trovare abbastanza facilmente di recupero, molte apparecchiature funzionano a 12V (es. vecchi mangianastri, rasoi elettrici, radio) , il positivo lo attacchi al pin di alimentazione del sensore, mentre il negativo lo puoi attaccare insieme con le due masse.
- Collega il filo dei 5V del rpi ad un terminale di una resistenza da 10K Ohm, mentre il secondo terminale va al pin "segnale" del sensore.
- Collega quindi il pin "segnale" del sensore ad un pin GPIO di tua scelta.
Quando il sensore non rileva alcun movimento, tra il pin "segnale" e GND dovresti misurare una tensione vicina ai 5V, mentre quando rileva movimento lo stesso pin dovrebbe avere una tensione vicina a 0V. Il pin GPIO che avrai collegato dovrebbe riportare lo stato del segnale.
Spero di essere stato chiaro.
Ciao
- Posts: 47
- Joined: Sun Dec 23, 2012 3:25 pm
Ok! Mi pare di aver capito!
Appena riesco faccio un pò di prove
Un'ultima cosa, dato che non sono particolarmente esperto di elettronica, mi dici come stabilire che tipo di resistenza è necessaria?
Appena riesco faccio un pò di prove
Un'ultima cosa, dato che non sono particolarmente esperto di elettronica, mi dici come stabilire che tipo di resistenza è necessaria?
- Posts: 29
- Joined: Sat May 19, 2012 2:01 pm
Sono passati 35 anni da quando avevo studiato il codice dei colori, vedi
http://www.electronicprestige.it/codicea.htm
In pratica dovrebbe essere marrone (1), nero (0), arancio(x1000), argento/oro (+/-10-5%), coiè 10x1000 Ohm con 5/10% di tolleranza.
Per la potenza, basta 1/4W.
Ciao
http://www.electronicprestige.it/codicea.htm
In pratica dovrebbe essere marrone (1), nero (0), arancio(x1000), argento/oro (+/-10-5%), coiè 10x1000 Ohm con 5/10% di tolleranza.
Per la potenza, basta 1/4W.
Ciao
- Posts: 47
- Joined: Sun Dec 23, 2012 3:25 pm
No, scusa, intendevo come decidi il valore della resistenza da usare; cioè come decidi che devi usare una resistenza da 10KOhm piuttosto che una da 1KOhm?. Il codice colori lo conoscevo già 
- Posts: 29
- Joined: Sat May 19, 2012 2:01 pm
blue_tech wrote:No, scusa, intendevo come decidi il valore della resistenza da usare; cioè come decidi che devi usare una resistenza da 10KOhm piuttosto che una da 1KOhm?. Il codice colori lo conoscevo già
Sta scritto nel link che mi avevi postato sul sensore da collegare...
http://www.robot-italy.com/it/pir-motion-sensor.html
Ciao
- Posts: 47
- Joined: Sun Dec 23, 2012 3:25 pm
scusate se mi intrometto, ma ho letto una cosa che non mi convince fino in fondo...
occhio che collegare un segnale da 5V a un pin GPIO IN (che e' fatto per andare a 3.3V) rischia di friggerti la RPi.
In caso mettici un partitore di tensione che ti abbassa la tensione sul pin, es.
segnale sensore -> R1(1KR) -> GPIO -> R2(2.2KR) -> GROUND
se ho scritto una cavolata pero' insultatemi pure
Luigi
- Collega quindi il pin "segnale" del sensore ad un pin GPIO di tua scelta.
Quando il sensore non rileva alcun movimento, tra il pin "segnale" e GND dovresti misurare una tensione vicina ai 5V, mentre quando rileva movimento lo stesso pin dovrebbe avere una tensione vicina a 0V. Il pin GPIO che avrai collegato dovrebbe riportare lo stato del segnale.
occhio che collegare un segnale da 5V a un pin GPIO IN (che e' fatto per andare a 3.3V) rischia di friggerti la RPi.
In caso mettici un partitore di tensione che ti abbassa la tensione sul pin, es.
segnale sensore -> R1(1KR) -> GPIO -> R2(2.2KR) -> GROUND
se ho scritto una cavolata pero' insultatemi pure
Luigi
Raspberry Pi Mod.B Rev.1 256Mb Ram
Raspberry Pi Mod.B Rev.2 512Mb Ram
Raspberry Pi Mod.B Rev.2 512Mb Ram
- Posts: 34
- Joined: Sat Sep 01, 2012 2:20 pm
Ma invece di collegare il segnale a una linea a +5V non faccio prima a collegarlo ad una a +3.3V sempre con la resistenza di mezzo? Eviterei i rischi e non avrei bisogno di aggiungere componenti per ridurre la tensione sul segnale... no? 
Nel caso la resistenza da 10KOhm andrebbe sempre bene?
Nel caso la resistenza da 10KOhm andrebbe sempre bene?
- Posts: 29
- Joined: Sat May 19, 2012 2:01 pm
bella domanda... a occhio direi di si, ma bisognerebbe capire come e' fatto il sensore internamente
Raspberry Pi Mod.B Rev.1 256Mb Ram
Raspberry Pi Mod.B Rev.2 512Mb Ram
Raspberry Pi Mod.B Rev.2 512Mb Ram
- Posts: 34
- Joined: Sat Sep 01, 2012 2:20 pm
Scusate, ma mi sembra che la fate + difficile di quello che è.
La resistenza serve solo per limitare la corrente massima a 0.5mA quando il segnale è in bassa impedenza (segnale basso).
Credo che si possa tranquillamente attaccare la resistenza ai 3.3V invece che ai 5V, magari cambiando la resistenza a 6.6KOhm, ma non ne vedo il motivo.
La resistenza serve solo per limitare la corrente massima a 0.5mA quando il segnale è in bassa impedenza (segnale basso).
Credo che si possa tranquillamente attaccare la resistenza ai 3.3V invece che ai 5V, magari cambiando la resistenza a 6.6KOhm, ma non ne vedo il motivo.
- Posts: 47
- Joined: Sun Dec 23, 2012 3:25 pm
Quindi ricapitolando, io seguo lo schema di questo disegno:

Solo che il capo della resistenza che va a +5V invece la attacco al +3.3V del RPi; giusto?
Così se ho capito bene: finchè il sensore non rileva nulla, sul GPIO del segnale avrò un segnale logico alto (i +3.3V), se rileva qualcosa, invece invierà un segnale logico basso (0V)?
A GND collego solo il pin GND del sensore e nient'altro giusto?

Solo che il capo della resistenza che va a +5V invece la attacco al +3.3V del RPi; giusto?
Così se ho capito bene: finchè il sensore non rileva nulla, sul GPIO del segnale avrò un segnale logico alto (i +3.3V), se rileva qualcosa, invece invierà un segnale logico basso (0V)?
A GND collego solo il pin GND del sensore e nient'altro giusto?
- Posts: 29
- Joined: Sat May 19, 2012 2:01 pm
Tra l'altro come GND uso il GND del RPi o uso direttamente il polo negativo del trasformatore?
Avevo pensato di usare i due poli del trasformatore per +12V e GND e dal RPi usare solo il pin dei +3.3V e il pin GPIO. Dite che è giusto?
Avevo pensato di usare i due poli del trasformatore per +12V e GND e dal RPi usare solo il pin dei +3.3V e il pin GPIO. Dite che è giusto?
- Posts: 29
- Joined: Sat May 19, 2012 2:01 pm
3-4-Fun, m'hai convinto 
mi sembrava abbastanza probabile che fosse cosi', ma volevo evitare di sparare cavolate
mi sembrava abbastanza probabile che fosse cosi', ma volevo evitare di sparare cavolate
Raspberry Pi Mod.B Rev.1 256Mb Ram
Raspberry Pi Mod.B Rev.2 512Mb Ram
Raspberry Pi Mod.B Rev.2 512Mb Ram
- Posts: 34
- Joined: Sat Sep 01, 2012 2:20 pm
blue_tech wrote:Tra l'altro come GND uso il GND del RPi o uso direttamente il polo negativo del trasformatore?
Avevo pensato di usare i due poli del trasformatore per +12V e GND e dal RPi usare solo il pin dei +3.3V e il pin GPIO. Dite che è giusto?
Io collegherei tutti i GND insieme, in modo da avere lo stesso riferimento sia sul rpi che sull'alimentatore del sensore.
Saluti
- Posts: 47
- Joined: Sun Dec 23, 2012 3:25 pm
blue_tech wrote:Quindi ricapitolando, io seguo lo schema di questo disegno:
Solo che il capo della resistenza che va a +5V invece la attacco al +3.3V del RPi; giusto?![]()
Così se ho capito bene: finchè il sensore non rileva nulla, sul GPIO del segnale avrò un segnale logico alto (i +3.3V), se rileva qualcosa, invece invierà un segnale logico basso (0V)?
A GND collego solo il pin GND del sensore e nient'altro giusto?
Devi fare come consiglia ldellaquila, devi mettere due resistenze, e prendere il segnale da in mezzo le due.
Se colleghi come nello schema postato mandi i 5V al GPIO e lo friggi.
- Posts: 4
- Joined: Sat Oct 06, 2012 12:52 am
richard_77 wrote:Devi fare come consiglia ldellaquila, devi mettere due resistenze, e prendere il segnale da in mezzo le due.
Se colleghi come nello schema postato mandi i 5V al GPIO e lo friggi.
k allora lui dice
occhio che collegare un segnale da 5V a un pin GPIO IN (che e' fatto per andare a 3.3V) rischia di friggerti la RPi.
In caso mettici un partitore di tensione che ti abbassa la tensione sul pin, es.
segnale sensore -> R1(1KR) -> GPIO -> R2(2.2KR) -> GROUND
nel disegno c'è 5V -> R1(10KOhm) -> signal -> GPIO, io però pensavo di usare invece di 5V il pin da 3.3V da collegare al signal che va al GPIO così in teoria nel peggiore dei casi arriverebbe 3.3V al pin GPIO a cui collego il signal. no? avrei 3.3V -> R1(10KOhm) -> signal -> GPIO... non va bene?
- Posts: 29
- Joined: Sat May 19, 2012 2:01 pm
blue_tech wrote:nel disegno c'è 5V -> R1(10KOhm) -> signal -> GPIO, io però pensavo di usare invece di 5V il pin da 3.3V da collegare al signal che va al GPIO così in teoria nel peggiore dei casi arriverebbe 3.3V al pin GPIO a cui collego il signal. no? avrei 3.3V -> R1(10KOhm) -> signal -> GPIO... non va bene?
In teoria sì, però tieni conto che quando il PIR vede movimento, il sensore mette in corto il segnale con il GND, la resistenza serve proprio per limitare la corrente.
Se il GPIO è settato correttamente come input nessun problema, però se per caso è settato come output per sbaglio andrebbe in corto, bruciandosi.
Tieni conto se output/input sotto settati via software, per cui basta un attimo per sbagliarsi e far danni.
Per cui sarebbe meglio avere una resistenza che protegga il GPIO.
Così:
3.3V -> R1 -> signal -> R2 -> GPIO
Per i valori, dovrebbero andare bene R1=10kOhm, R2= 1 KOhm (sembra che i GPIO possano fornire fino a 16mA).
Uso il condizionale perché non sono sicurissimo dei valori e non mi prendo responsabilità
- Posts: 4
- Joined: Sat Oct 06, 2012 12:52 am
richard_77 wrote:blue_tech wrote:nel disegno c'è 5V -> R1(10KOhm) -> signal -> GPIO, io però pensavo di usare invece di 5V il pin da 3.3V da collegare al signal che va al GPIO così in teoria nel peggiore dei casi arriverebbe 3.3V al pin GPIO a cui collego il signal. no? avrei 3.3V -> R1(10KOhm) -> signal -> GPIO... non va bene?
In teoria sì, però tieni conto che quando il PIR vede movimento, il sensore mette in corto il segnale con il GND, la resistenza serve proprio per limitare la corrente.
Se il GPIO è settato correttamente come input nessun problema, però se per caso è settato come output per sbaglio andrebbe in corto, bruciandosi.
Tieni conto se output/input sotto settati via software, per cui basta un attimo per sbagliarsi e far danni.
Per cui sarebbe meglio avere una resistenza che protegga il GPIO.
Così:
3.3V -> R1 -> signal -> R2 -> GPIO
Per i valori, dovrebbero andare bene R1=10kOhm, R2= 1 KOhm (sembra che i GPIO possano fornire fino a 16mA).
Uso il condizionale perché non sono sicurissimo dei valori e non mi prendo responsabilità
Ok ho capito, sulla corrente massima per i GPIO non ho ancora capito al 100% se sono 16mA o 50mA
- Posts: 29
- Joined: Sat May 19, 2012 2:01 pm
Dunque ho provato dandogli +5V come alimentazione e il +3.3V per il signal con le resistenze consigliate sopra perchè ho visto qui -> http://bildr.org/2011/06/pir_arduino/ che lo usano anche a +5V
Funzionare più o meno funziona ma ci sono un sacco di falsi positivi. Ora provo a dargli il +12V per vedere se migliora.
Come codice ho usato questo per le prove:
Sul GPIO 18 ho messo un led di riscontro visivo.
Ho aggiunto uno sleep di 2sec prima del ciclo perchè c'è scritto che all'avvio il sensore ha bisogno di 2 secondi per fare la "fotografia" della stanza e anche nel link mette uno sleep di 2sec dopo ogni rilevazione per lo stesso motivo.
Pur non essendoci nessuno nella stanza, ogni tanto mi manda fuori l'allarme...
Funzionare più o meno funziona ma ci sono un sacco di falsi positivi. Ora provo a dargli il +12V per vedere se migliora.
Come codice ho usato questo per le prove:
- Code: Select all
import RPi.GPIO as GPIO, time
#disabilito i warning
#GPIO.setwarnings(False)
#dice che la numerazione dei pin e' quella fisica sulla scheda
#e non quella logica
GPIO.setmode(GPIO.BOARD)
GPIO.setup(18, GPIO.OUT)
GPIO.setup(11, GPIO.IN)
time.sleep(2)
while 1:
if GPIO.input(11): #true = HIGH quindi no allarme!
GPIO.output(18, False)
#print "no "
else:
GPIO.output(18, True)
print "allarme "
time.sleep(2)
Sul GPIO 18 ho messo un led di riscontro visivo.
Ho aggiunto uno sleep di 2sec prima del ciclo perchè c'è scritto che all'avvio il sensore ha bisogno di 2 secondi per fare la "fotografia" della stanza e anche nel link mette uno sleep di 2sec dopo ogni rilevazione per lo stesso motivo.
Pur non essendoci nessuno nella stanza, ogni tanto mi manda fuori l'allarme...
- Posts: 29
- Joined: Sat May 19, 2012 2:01 pm
Ho provato anche col 12V non sono convintissimo che il tutto sia perfettamente funzionante ogni tanto ho visto un paio di falsi positivi (o almeno così sembravano). Mi sa che finisce che prendo anche un arduino, uso quello per le rilevazioni (visto che con arduino posso farle real-time) e poi faccio comunicare arduino col rpi per rilevare il movimento...
Leggendo online sembra banale il collegamento e funzionamento, io sto provando e ci sto ragionando da qualche gg e non ho ancora un risultato certo XD
Voi che ne pensate?
Leggendo online sembra banale il collegamento e funzionamento, io sto provando e ci sto ragionando da qualche gg e non ho ancora un risultato certo XD
Voi che ne pensate?
- Posts: 29
- Joined: Sat May 19, 2012 2:01 pm
Ciao,
anche io sto tentando di far funzionare questo sensore, ma non vedo luce.
Non riesco a capire se possa essere rotto o meno.
Ho messo l'immagine di come ho messo i collegamenti, ma il led associato (non messo nel disegno, a +5v) non segnala nulla.
Dove sbaglio?
anche io sto tentando di far funzionare questo sensore, ma non vedo luce.
Non riesco a capire se possa essere rotto o meno.
Ho messo l'immagine di come ho messo i collegamenti, ma il led associato (non messo nel disegno, a +5v) non segnala nulla.
Dove sbaglio?
- Attachments
-
- Pir.jpg (43.62 KiB) Viewed 461 times
- Posts: 11
- Joined: Tue Jan 22, 2013 1:42 pm
non e' da spostare il jumper ragazzi?pure io devo accingermi appena arrivano i pir...
http://www.ladyada.net/wiki/tutorials/l ... s/pir.html
mi riferisco al prob dei falsi positivi e funzionamento ballerino.tentar non nuoce agendo sul jumper del retrigger e fare altri test
http://www.ladyada.net/wiki/tutorials/l ... s/pir.html
mi riferisco al prob dei falsi positivi e funzionamento ballerino.tentar non nuoce agendo sul jumper del retrigger e fare altri test
- Posts: 12
- Joined: Wed Feb 27, 2013 5:53 am