Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Lettura impulsi S0 contatore energia

Elettronica lineare e digitale: didattica ed applicazioni

Moderatori: Foto UtenteDirtyDeeds, Foto UtenteIsidoroKZ, Foto UtenteBrunoValente, Foto Utentecarloc, Foto Utenteg.schgor

0
voti

[1] Lettura impulsi S0 contatore energia

Messaggioda Foto Utentecalida82 » 26 feb 2020, 12:26

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
Avatar utente
Foto Utentecalida82
20 4
New entry
New entry
 
Messaggi: 61
Iscritto il: 11 set 2013, 14:52

0
voti

[2] Re: Lettura impulsi S0 contatore energia

Messaggioda Foto Utenteedgar » 26 feb 2020, 12:42

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
Avatar utente
Foto Utenteedgar
6.347 3 5 8
Master
Master
 
Messaggi: 3198
Iscritto il: 15 set 2012, 22:59

0
voti

[3] Re: Lettura impulsi S0 contatore energia

Messaggioda Foto Utentepeppe85 » 26 feb 2020, 13:17

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
Avatar utente
Foto Utentepeppe85
105 1 3 6
Stabilizzato
Stabilizzato
 
Messaggi: 318
Iscritto il: 12 mag 2006, 16:47

0
voti

[4] Re: Lettura impulsi S0 contatore energia

Messaggioda Foto Utentepeppe85 » 26 feb 2020, 13:52

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
Avatar utente
Foto Utentepeppe85
105 1 3 6
Stabilizzato
Stabilizzato
 
Messaggi: 318
Iscritto il: 12 mag 2006, 16:47

0
voti

[5] Re: Lettura impulsi S0 contatore energia

Messaggioda Foto Utentecalida82 » 26 feb 2020, 15:03

questo è lo script che uso per leggere gli impulsi.

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?
Avatar utente
Foto Utentecalida82
20 4
New entry
New entry
 
Messaggi: 61
Iscritto il: 11 set 2013, 14:52

0
voti

[6] Re: Lettura impulsi S0 contatore energia

Messaggioda Foto Utentemibe » 26 feb 2020, 19:26

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
Ultima modifica di Foto Utenteedgar il 26 feb 2020, 21:04, modificato 1 volta in totale.
Motivazione: Sistemato TAG Fidocad
Avatar utente
Foto Utentemibe
10 3
 
Messaggi: 18
Iscritto il: 6 nov 2013, 13:54

0
voti

[7] Re: Lettura impulsi S0 contatore energia

Messaggioda Foto Utentecalida82 » 26 feb 2020, 23:47

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
Avatar utente
Foto Utentecalida82
20 4
New entry
New entry
 
Messaggi: 61
Iscritto il: 11 set 2013, 14:52

0
voti

[8] Re: Lettura impulsi S0 contatore energia

Messaggioda Foto Utentecalida82 » 27 feb 2020, 0:14

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
Avatar utente
Foto Utentecalida82
20 4
New entry
New entry
 
Messaggi: 61
Iscritto il: 11 set 2013, 14:52

0
voti

[9] Re: Lettura impulsi S0 contatore energia

Messaggioda Foto Utentemibe » 27 feb 2020, 1:37

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
Avatar utente
Foto Utentemibe
10 3
 
Messaggi: 18
Iscritto il: 6 nov 2013, 13:54

0
voti

[10] Re: Lettura impulsi S0 contatore energia

Messaggioda Foto Utentecalida82 » 27 feb 2020, 11:58

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
e40c5c3a35aeb164004f381a27382aa50934e031_3_650~3.png (6.1 KiB) Osservato 2783 volte
Avatar utente
Foto Utentecalida82
20 4
New entry
New entry
 
Messaggi: 61
Iscritto il: 11 set 2013, 14:52

Prossimo

Torna a Elettronica generale

Chi c’è in linea

Visitano il forum: Nessuno e 28 ospiti