Page 1 of 2

Usare un sensore da 5V con i GPIO

Posted: Thu Jan 03, 2013 3:50 pm
by blue_tech
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!

Re: Usare un sensore da 5V con i GPIO

Posted: Thu Jan 03, 2013 6:14 pm
by 3-4-Fun
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

Re: Usare un sensore da 5V con i GPIO

Posted: Thu Jan 03, 2013 7:03 pm
by blue_tech
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!

Re: Usare un sensore da 5V con i GPIO

Posted: Thu Jan 03, 2013 10:23 pm
by 3-4-Fun
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

Re: Usare un sensore da 5V con i GPIO

Posted: Sat Jan 05, 2013 1:05 pm
by blue_tech
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?

Re: Usare un sensore da 5V con i GPIO

Posted: Sat Jan 05, 2013 1:34 pm
by 3-4-Fun
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

Re: Usare un sensore da 5V con i GPIO

Posted: Sat Jan 05, 2013 1:55 pm
by blue_tech
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à :P

Re: Usare un sensore da 5V con i GPIO

Posted: Sat Jan 05, 2013 6:19 pm
by 3-4-Fun
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à :P
Sta scritto nel link che mi avevi postato sul sensore da collegare...

http://www.robot-italy.com/it/pir-motion-sensor.html

Ciao

Re: Usare un sensore da 5V con i GPIO

Posted: Sun Jan 06, 2013 11:35 am
by ldellaquila
scusate se mi intrometto, ma ho letto una cosa che non mi convince fino in fondo...
- 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

Re: Usare un sensore da 5V con i GPIO

Posted: Sun Jan 06, 2013 5:21 pm
by blue_tech
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?

Re: Usare un sensore da 5V con i GPIO

Posted: Sun Jan 06, 2013 8:18 pm
by ldellaquila
bella domanda... a occhio direi di si, ma bisognerebbe capire come e' fatto il sensore internamente

Re: Usare un sensore da 5V con i GPIO

Posted: Sun Jan 06, 2013 8:58 pm
by 3-4-Fun
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.

Re: Usare un sensore da 5V con i GPIO

Posted: Sun Jan 06, 2013 11:32 pm
by blue_tech
Quindi ricapitolando, io seguo lo schema di questo disegno:

Image

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?

Re: Usare un sensore da 5V con i GPIO

Posted: Mon Jan 07, 2013 11:28 am
by blue_tech
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?

Re: Usare un sensore da 5V con i GPIO

Posted: Mon Jan 07, 2013 2:51 pm
by ldellaquila
3-4-Fun, m'hai convinto :)
mi sembrava abbastanza probabile che fosse cosi', ma volevo evitare di sparare cavolate ;)

Re: Usare un sensore da 5V con i GPIO

Posted: Mon Jan 07, 2013 7:32 pm
by 3-4-Fun
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

Re: Usare un sensore da 5V con i GPIO

Posted: Mon Jan 07, 2013 8:48 pm
by richard_77
blue_tech wrote:Quindi ricapitolando, io seguo lo schema di questo disegno:

Image

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.

Re: Usare un sensore da 5V con i GPIO

Posted: Mon Jan 07, 2013 9:02 pm
by blue_tech
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?

Re: Usare un sensore da 5V con i GPIO

Posted: Tue Jan 08, 2013 7:04 pm
by richard_77
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à :evil:

Re: Usare un sensore da 5V con i GPIO

Posted: Wed Jan 09, 2013 10:42 am
by blue_tech
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à :evil:
Ok ho capito, sulla corrente massima per i GPIO non ho ancora capito al 100% se sono 16mA o 50mA :?

Re: Usare un sensore da 5V con i GPIO

Posted: Wed Jan 09, 2013 4:30 pm
by blue_tech
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:

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... :?

Re: Usare un sensore da 5V con i GPIO

Posted: Wed Jan 09, 2013 4:49 pm
by blue_tech
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?

Re: Usare un sensore da 5V con i GPIO

Posted: Sun Feb 03, 2013 10:58 am
by stefanet
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?

Re: Usare un sensore da 5V con i GPIO

Posted: Wed Feb 27, 2013 6:32 am
by sert00
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

Re: Usare un sensore da 5V con i GPIO

Posted: Fri Jul 03, 2015 7:14 am
by andrea.p
Una domanda ragazzi.
Secondo voi è possibile collegare un sensore di questo tipo ad una distanza di 15/20mt?
https://www.futurashop.it/sensore-pir-2846-pirmod

Se sì, con quale cavo?
Grazie!