Salve a tutti,
ho 2 cantatori Eastron SDM120A (non mod-bus) con uscita S0 che vorrei leggere con raspberry.
Ho dei problemi a collegare il contatore al raspebby perche dalle specifiche del contatore, questo ha bisogno di alimentazione esterna compresa tra 5-27V ma il raspberry non puo leggere tensioni piu alte di 3,3
questo è il link del foglietto illustrativo che era nelle scatole dei contatori:
https://checkwatt.se/pdf/Eastron%20SDM120D.pdf
Io al momento ho collegato in questo modo ma non è quello giusto visto che sotto la tensione minima richiesta.
Ho collegato S- al pin massa del raspberry e il S+ al gpio 4 sempre del raspberry con una resistenza da 220ohn in serie, poi ho collegato una resistenza da 10kohm tra il pin 3,3V e sempre il pin 4 gpio per fornire pull up.
collegando in questo modo riesco tramite programmino python a leggere gli impulsi solo che a volte invece di leggere un impulso me ne legge 4/5 in sequenza.
qualcuno puo darmi una mano a collegare questo contatore al raspberry, alimentandolo a 5v e tirando fuori un impulso di soli 3.3v?
Questo tipo di collegamento l'ho trovato in rete per un contatore simile ma per il quale non sono riuscito a trovare il datasheet. ho provato anche ad dare i 3,3 a S+ e S- al pin gpio 4 con resistenza di pull down verso massa sempre al pin 4 ma collegato in questo modo sembra avere piu disturbi
Grazie
Lettura impulsi S0 contatore energia
Moderatori: g.schgor, BrunoValente, carloc, IsidoroKZ
15 messaggi
• Pagina 1 di 2 • 1, 2
0
voti
calida82 ha scritto:collegando in questo modo riesco tramite programmino python a leggere gli impulsi solo che a volte invece di leggere un impulso me ne legge 4/5 in sequenza
In questi casi per chiarire se si tratta di un problema software o hardware un oscilloscopio aiuterebbe molto.
Se la transizione è pulita ed i livelli sono a posto, hai un problema software, diversamente bisogna trovare un modo per ripulire / adattare l'impulso
0
voti
da esperienza passata ricordo che i pin del raspberry sono mooolto(ma mooolto) sensibili e le letture multiple che vedi potrebbero essere degli spyke. ricordo che il mio contava anche quando accendevo/spegnevo la luce in ufficio, risolsi con dei filtri rc sugli input. Vedo se ritrovo lo schema. prova a vedere se è anche il tuo caso
0
voti
prova con uno schema del genere, inoltre potresti aggiungere lato software un ritardo sui 50us che ti fa da debounce(anche se in questo caso non hai uno switch meccanico ma un transistor)
https://www.raspberrypi.org/forums/down ... b8e84c056e
https://www.raspberrypi.org/forums/down ... b8e84c056e
0
voti
questo è lo script che uso per leggere gli impulsi.
ho pensato anche ad un problema software ed infatti ho anche provato ad inserire un tempo di attesa di un secondo al posto di GPIO.wait_for_edge(pin_gpio,GPIO.RISING)
ma senza risultato, anzi con dei peggioramenti. tra un impulso e l'altro passava meno di un sencondo.
ora provero anche ad utilizzare lo schema fornito da peppe85.
il fatto che il contatore riede alimentazione 5v e ne do 3,3 puo essere un problema?
- Codice: Seleziona tutto
#!/usr/bin/python
import time
import RPi.GPIO as GPIO
pin_gpio = 4
GPIO.setmode(GPIO.BCM)
GPIO.setup(pin_gpio, GPIO.IN,pull_up_down = GPIO.PUD_UP)
energy = 0
tpulse0 =0
while True:
GPIO.wait_for_edge(pin_gpio, GPIO.FALLING)
tpulse1 = time.time()
deltat = tpulse1 - tpulse0
energy = energy + 1
power = 3600/deltat
print power, energy
GPIO.wait_for_edge(pin_gpio,GPIO.RISING)
GPIO.cleanup()
ho pensato anche ad un problema software ed infatti ho anche provato ad inserire un tempo di attesa di un secondo al posto di GPIO.wait_for_edge(pin_gpio,GPIO.RISING)
ma senza risultato, anzi con dei peggioramenti. tra un impulso e l'altro passava meno di un sencondo.
ora provero anche ad utilizzare lo schema fornito da peppe85.
il fatto che il contatore riede alimentazione 5v e ne do 3,3 puo essere un problema?
0
voti
Ciao Calida82,
non so se ho capito bene cosa fa l'uscita del contatore che vuoi leggere, ma se fosse diciamo un "on/off" (tipo relè nc o no oppure un transistors o un fotoaccoppiatore) potresti provare un circuito di questo tipo:
Il Vi potrebbe essere un 5 volt con R1=200 Ohm e R2=360 Ohm: quando il contatore chiude fra s+ e s- hai al massimo 25 mA assorbiti e un segnale fra s+ e s- di 0 volt o molto vicino a 0 volt, quando apre (sempre fra s+ e s-) avrai 3,2 volt (circa) tensione corretta per il raspberry.
Si potrebbe fare anche con altri valori di tensione, ma vanno ricalcolate le resistenze.
Potresti anche mettere il Vi uguale a 3,3 volt R1=150 Ohm e R2 direi 2200 Ohm (qui però saresti fuori dalle tensioni consigliate dal costruttore del contatore quindi potrebbe anche non funzionare).
Consiglio: se hai un tester o un oscilloscopio, prima di collegare il raspberry, ti conviene fare una misura per vedere se i valori di tensione sono corretti.
MIBE
non so se ho capito bene cosa fa l'uscita del contatore che vuoi leggere, ma se fosse diciamo un "on/off" (tipo relè nc o no oppure un transistors o un fotoaccoppiatore) potresti provare un circuito di questo tipo:
Il Vi potrebbe essere un 5 volt con R1=200 Ohm e R2=360 Ohm: quando il contatore chiude fra s+ e s- hai al massimo 25 mA assorbiti e un segnale fra s+ e s- di 0 volt o molto vicino a 0 volt, quando apre (sempre fra s+ e s-) avrai 3,2 volt (circa) tensione corretta per il raspberry.
Si potrebbe fare anche con altri valori di tensione, ma vanno ricalcolate le resistenze.
Potresti anche mettere il Vi uguale a 3,3 volt R1=150 Ohm e R2 direi 2200 Ohm (qui però saresti fuori dalle tensioni consigliate dal costruttore del contatore quindi potrebbe anche non funzionare).
Consiglio: se hai un tester o un oscilloscopio, prima di collegare il raspberry, ti conviene fare una misura per vedere se i valori di tensione sono corretti.
MIBE
Ultima modifica di edgar il 26 feb 2020, 21:04, modificato 1 volta in totale.
Motivazione: Sistemato TAG Fidocad
Motivazione: Sistemato TAG Fidocad
0
voti
Ciao mibe,
ma V1 è una fonte di alimentazione giusto?
posso usare anche il 5v del raspberry?
intanto ho provato ad inserire un condensatore come suggerito sopra, registro tutte le lettura in un file e domani mattina controllo come è andata
ma V1 è una fonte di alimentazione giusto?
posso usare anche il 5v del raspberry?
intanto ho provato ad inserire un condensatore come suggerito sopra, registro tutte le lettura in un file e domani mattina controllo come è andata
0
voti
mibe, stavo riguardando il tuo schema, ma non lo capisco, S+ e GPIO 4 sono collegati insieme, se la tensione passa per R1 immagino si abbassi e se lo fara non avrp + 5v su S+ poi GPIO 4 non puo essere piu di 3,3 e visto ma dato che sono collegati insieme anche s+ sara 3.3
0
voti
Si certo puoi usare il 5 volt del raspberry, purché la massa sia in comune con il contatore come è disegnato nello schema.
Se ho capito bene tu leggi il contatore dall' ingresso gpio4 che configurerai come ingresso.
Quando il transistor del contatore è aperto sulle due resistenze circolerà una corrente imposta dai 5 volt, ai capi di s+ e s- ci sarà una tensione pari alla corrente x la R2 è sarà di 3,2 volt (livello logico alto che leggerai con il raspberry). Quando il transistor del contatore è chiuso la R2 sarà in corto e ai capi di s+ e s- ci sarà una tensione molto vicina a 0 volt (livello logico basso).
Ripeto che prima di collegarti con il raspberry ti conviene testare i due livelli logici con un tester o meglio un oscilloscopio.
Una cosa simile la puoi fare se con il raspberry programmi l'ingresso gpio4 con una resist di pullup in modo che quando il transistor chiude leggerai 0 logico e quando apre avrai 1 logico del pullup cioè 3,3 volt.
Facendo cosi non servono neanche le due resistenze.
Però agisci con i 3,3 volt, ma il manuale del contatore indica come minimo valore da utilizzare 5 volt, quindi potrebbe non funzionare o funzionare male.
MIBE
Se ho capito bene tu leggi il contatore dall' ingresso gpio4 che configurerai come ingresso.
Quando il transistor del contatore è aperto sulle due resistenze circolerà una corrente imposta dai 5 volt, ai capi di s+ e s- ci sarà una tensione pari alla corrente x la R2 è sarà di 3,2 volt (livello logico alto che leggerai con il raspberry). Quando il transistor del contatore è chiuso la R2 sarà in corto e ai capi di s+ e s- ci sarà una tensione molto vicina a 0 volt (livello logico basso).
Ripeto che prima di collegarti con il raspberry ti conviene testare i due livelli logici con un tester o meglio un oscilloscopio.
Una cosa simile la puoi fare se con il raspberry programmi l'ingresso gpio4 con una resist di pullup in modo che quando il transistor chiude leggerai 0 logico e quando apre avrai 1 logico del pullup cioè 3,3 volt.
Facendo cosi non servono neanche le due resistenze.
Però agisci con i 3,3 volt, ma il manuale del contatore indica come minimo valore da utilizzare 5 volt, quindi potrebbe non funzionare o funzionare male.
MIBE
0
voti
Ciao Mibe, scusami ma non riesco ancora a capire lo schema. Mettiamo che V1 sia 5v e sappiamo che il Raspberry può leggere max 3,3 però dallo schema vedo che il pin del Raspberry e l S+ sono collegati insieme senza nessuna resistenza tra di loro, così facendo se ho 5v sul S+ li ho anche su gpio4 e se invece ho 3,3 su gpio la stessa sarà anche su S+ visto che il collegamento é diretto
- Allegati
-
- e40c5c3a35aeb164004f381a27382aa50934e031_3_650~3.png (6.1 KiB) Osservato 10855 volte
15 messaggi
• Pagina 1 di 2 • 1, 2
Chi c’è in linea
Visitano il forum: Nessuno e 72 ospiti