Forum: Mikrocontroller und Digitale Elektronik Minimalbeschaltung für Auswertung von S0-Impulsen


von Karol B. (johnpatcher)


Lesenswert?

Hallo,

da ich die S0-Impulse von ca. 20 Zählern auswerten möchte, bin ich an 
der absoluten Minimalbeschaltung interessiert, die zulässig ist bzw. 
zuverlässig funktioniert und sich im Rahmen der Spezifikation bewegt.

Letztendlich sollen die Daten bei einem Raspberry Pi landen, der sie 
dann kumuliert in eine Datenbank (Influx) schreibt und schöne Graphen 
darstellt (Grafana, volkszähler.org). Leider hat der Raspi nicht genug 
GPIO-Pins, um alles direkt anzuschließen, sodass ich wohl oder übel 
Umwege gehen muss.

Aktuell denke ich an ein AVR, der die Impulse entprellt und zählt und 
sie via UART, SPI oder I2C an den Raspberry übergibt. Software-technisch 
ist es prinzipiell kein Problem, allerdings habe ich hardware-seitig 
noch einige Fragen:

Die Zähler selbst implementieren laut Datenblatt DIN EN 62053-31, Klasse 
A und sind durch einen Optokoppler potenzialfrei. Sie vertragen bis zu 
27 V und 20 mA [0].

Nach ein wenig Recherche scheint es nicht unüblich zu sein die 
S0-Ausgänge direkt an VCC bzw. einen GPIO-Pin zu hängen (Raspberry Pi 
und/oder AVR) (siehe z.B. [1]):

Hierbei sehe ich aber mehrere Probleme:

- Spannung: Zumindest der Raspberry Pi arbeitet intern mit 3.3 Volt, die 
S0-Schnittstelle benötigt aber wohl mindestens 5 Volt (habe ich irgendwo 
gelesen, im Datenblatt steht hierzu leider nichts). Die stehen auf der 
GPIO-Leiste zwar auch zur Verfügung, letztendlich liegen dann am 
Eingangs-Pin aber 5V an. Man verlässt sich also auf die internen 
Schutzdioden, die im Falle vom Raspberry leider nur dürftig dokumentiert 
sind. Einen AVR hingegen kann man direkt mit 5 Volt betreiben bzw. sich 
auf die internen Schutzdioden verlassen (siehe AVR182, da liegt 
Netzspannung an).

- Strom: Ohne Vorwiderstand wird mit jedem Impuls doch der max. Strom 
überschritten. Funktionieren tut es wohl in den meisten Fällen trotzdem 
(laut diverser Blog- und Foren-Beiträgen, etc.). Verlässt man sich 
hierbei darauf, dass der Impuls kurz genug ist (ca. 30ms)? Wie sieht es 
bei vielen Impulsen pro Sekunde aus. Wird das dann auch noch zuverlässig 
funktionieren, oder geht hier irgendwann etwas kaputt? Zumindest ein 
Vorwiderstand in der Größenordnung 1kOhm erscheint mir sinnvoll? 
Vielleicht ist dieser aber bereits intern verbaut und ich verstehe das 
Datenblatt falsch. Dort heißt es nämlich:

> Impulsausgang S0 nach DIN EN 62053-31 - Kl. A
> potenzialfrei durch einen Optokoppler,
> max. 27V DC / 2OmA

Heißt das, dass bei 27V 20mA fließen, also ein interner Widerstand von ~ 
1350 kOhm dazwischen geschaltet ist, oder muss ich mit einem externen 
Widerstand sicherstellen, dass höchstens 20 mA fließen können?

Wieder andere Schaltungen arbeiten auch auf der Controller-Seite mit 
Optokopplern [2]. So auch der Wiki-Beitrag von mikrocontroller.net 
(siehe [2]). Das wiederum erscheint mir sehr viel Overhead zu sein, 
immerhin ist ja der Zähler selbst schon potenzialfrei durch den internen 
Optokoppler. Wird der zweite Optokoppler (auf Seiten des 
Mikrocontrollers) nur dafür benötigt, um die anliegenden 24 Volt 
"umzuwandeln", oder soll das ein zusätzlicher Schutzmechanismus sein?

Vielen Dank!

[0]: http://bg-etech.de/download/manual/DRS155DCV3.pdf
[1]: 
https://blog.webernetz.net/2014/10/13/stromzahler-mit-s0-schnittstelle-vom-raspberry-pi-auswerten/
[2]: https://www.mikrocontroller.net/articles/S0-Schnittstelle

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Karol B. schrieb:
> Letztendlich sollen die Daten bei einem Raspberry Pi landen, der sie
> dann kumuliert in eine Datenbank (Influx) schreibt und schöne Graphen
> darstellt (Grafana, volkszähler.org). Leider hat der Raspi nicht genug
> GPIO-Pins, um alles direkt anzuschließen, sodass ich wohl oder übel
> Umwege gehen muss.
Wie wäre es, die Eingänge des Rechenboliden mit einem simplen 
Schieberegister zu erweitern?

> Aktuell denke ich an ein AVR, der die Impulse entprellt und zählt und
> sie via UART, SPI oder I2C an den Raspberry übergibt.
Ein Multicontrollersystem. Sowas würde ich aus Sicht der langfristigen 
Softwarepflege solange als irgend möglich verhindern...

> Heißt das, dass bei 27V 20mA fließen, also ein interner Widerstand von ~
> 1350 kOhm dazwischen geschaltet ist
Das sind die Daten, die der Ausgang MAXIMAL verträgt.

> oder muss ich mit einem externen
> Widerstand sicherstellen, dass höchstens 20 mA fließen können?
Ja. Und im Idealfall bleibst du weit weg von den MAXIMALWERTEN!

: Bearbeitet durch Moderator
von Klaus (Gast)


Lesenswert?

Lothar M. schrieb:
>> Heißt das, dass bei 27V 20mA fließen, also ein interner Widerstand von ~
>> 1350 kOhm dazwischen geschaltet ist
> Das sind die Daten, die der Ausgang MAXIMAL verträgt.

Nicht ganz. Das ist im Prinzip eine auf zwei digitale Werte reduzierte 
0-20mA Stromschleife. Zum Auswerten braucht man einfach einen 
Bürdewiderstand.

MfG Klaus

von Karol B. (johnpatcher)


Lesenswert?

Hallo,

Lothar M. schrieb:
> Wie wäre es, die Eingänge des Rechenboliden mit einem simplen
> Schieberegister zu erweitern?

Ja, das ist natürlich auch denkbar. Wobei es dann mit dem Entprellen 
(sofern überhaupt notwendig) schwieriger wird, da zeitkritisches 
Programmieren mit dem Raspberry ja eher schwierig ist. Müsste man mal 
gucken, wie gut sich das über SPI lösen lässt.

> Das sind die Daten, die der Ausgang MAXIMAL verträgt.
> Ja. Und im Idealfall bleibst du weit weg von den MAXIMALWERTEN!

Das wollte ich hören ;). Das heißt ja, dass ich mich mit 5 Volt im 
sicheren Bereich bewege und es zumindest zu keinen Beschädigungen kommen 
kann und ich auf die externen Widerstände verzichten kann. Schade, dass 
ein AVR keine Pull-Down Widerstände eingebaut hat :'(.

Mit freundlichen Grüßen,
Karol Babioch

: Bearbeitet durch User
von temp (Gast)


Lesenswert?

Lothar M. schrieb:
> Wie wäre es, die Eingänge des Rechenboliden mit einem simplen
> Schieberegister zu erweitern?
>
>> Aktuell denke ich an ein AVR, der die Impulse entprellt und zählt und
>> sie via UART, SPI oder I2C an den Raspberry übergibt.
> Ein Multicontrollersystem. Sowas würde ich aus Sicht der langfristigen
> Softwarepflege solange als irgend möglich verhindern...

So unterschiedlich können die Meinungen sein. Für diese Aufgabe würde 
ich nie etwas anderes in Erwägung ziehen. Hier geht es darum Impulse zu 
zählen und zwar alle. Die Zählerstände müssen auch gesichert werden wenn 
der Strom ausfällt. Ob interes EEPROM oder Fram über i2c, irgendetwas in 
der Art wird wohl nötig sein um das sicher zu stellen. Für einen µC eine 
überschaubare Aufgabe die nach kurzer Zeit fertig entwickelt ist. Anders 
als beim Raspi, der alle Tage neue Updates braucht oder mal 10ms oder 
mehr irgendwo hängt und dadurch die Impulse verschläft. Ganz schlaue 
kämem jetzt auf die Idee ein Kernel-Modul dafür zu bauen... Als 
Verbindung kämen bei mir nur Ethernet, RS485 oder CAN in Frage. 
Vorzugsweise CAN, da kann der µC seine Messwerte alle Nase lang auf den 
Bus senden und fertig. Ob da dann ein Raspi die Messwerte verarbeitet 
oder ein anderer Rechner(Task auf einem sowieso laufenden NAS) spielt 
dann überhaupt keine Rolle mehr. Als CAN-Interface für den Raspie und 
jeden anderen Windows-, Linux- oder OSX-Rechner würde ich das USBtin 
http://www.fischl.de/usbtin/ verwenden. Das spart die Bastelei am Raspi.

von temp (Gast)


Lesenswert?

Karol B. schrieb:
> Das wollte ich hören ;). Das heißt ja, dass ich mich mit 5 Volt im
> sicheren Bereich bewege und es zumindest zu keinen Beschädigungen kommen
> kann und ich auf die externen Widerstände verzichten kann. Schade, dass
> ein AVR keine Pull-Down Widerstände eingebaut hat :'(.

Was soll den der Quark bedeuten? Die S0-Ausgänge sind potentialfreie 
Optokoppler-Ausgänge. Die kannst du zwischen GND und AVR-Eingang 
schalten und den Pull-Up an. Damit ist kein weiterer Widerstand nötig. 
Jedenfalls vom Prinzip her. Ob lange Leitungen zu den Zählern 
ungeschützt am Port ausreichend sind hängt von deinen Gegebenheiten ab. 
Ich würd's nicht machen.

von H.Joachim S. (crazyhorse)


Lesenswert?

temp schrieb:
> Was soll den der Quark bedeuten? Die S0-Ausgänge sind potentialfreie
> Optokoppler-Ausgänge.

Ganz so einfach ist es nicht.

von Karol B. (johnpatcher)


Lesenswert?

Hallo,

temp schrieb:
> Die kannst du zwischen GND und AVR-Eingang
> schalten und den Pull-Up an. Damit ist kein weiterer Widerstand nötig.

Stimmt, ich wollte das anders herum machen, aber so herum macht das mit 
den internen Pull-Ups natürlich viel mehr Sinn ;).

H.Joachim S. schrieb:
> Ganz so einfach ist es nicht.

Warum nicht :-)? Was für Bedenken hast du?

von Fred R. (fredylich)


Lesenswert?

Die S0-Impulse von ca. 20 Zählern auswerten ist kein Hardwareproblem.
S0 Schnittstellen bezieht sich auf ein Standart und somit indirekt auf 
den Impulsausgang der Zähler. Kannst nichts falsch machen wenn Du von 
deiner Hardware GND -> S0 abfragst.

Ja mit ATMega 644p und 8 x I2C Expander PCF8574 schon getestet (64 
Zähler).
Weiterleitung mit UART. Da die Eingangspin mit Impuls vom Zähler auf GND 
gezogen werden, muss VCC nicht TTL sein.
Die Eingänge müssen ein Pullup habe. Mehr ist nicht nötig.

Gruß

von H.Joachim S. (crazyhorse)


Lesenswert?

Karol B. schrieb:
> Warum nicht :-)? Was für Bedenken hast du?

Kann funktionieren, muss aber nicht (oder nicht immer)
Manche S0-Geber verwenden ein life-zero-Signal, um Kabelbruch erkennen 
zu können. Einige haben auch mit nur 5V Versorgung und etwas längeren 
Leitungen ihre Probleme.
Die Norm sagt: <2mA bzw >10mA sind korrekte Zustände.
Man kann vieles anders machen als vorgesehen, man kann es aber auch 
richtig machen.

von Karol B. (johnpatcher)


Lesenswert?

H.Joachim S. schrieb:
> Die Norm sagt: <2mA bzw >10mA sind korrekte Zustände.

Soweit klar.

> Man kann vieles anders machen als vorgesehen, man kann es aber auch
> richtig machen.

Ok, was schlägst du dann vor? Höhere Spannungen? Externe Widerstände? 
Welche Werte (ca.)?

Mit freundlichen Grüßen,
Karol Babioch

von Loran (Gast)


Lesenswert?

Das Live-Zero-Blabla würde ich mal schlicht vergessen!
Ist so ein modernes Märchen, wie die "Spinne in der Yucca-
Palme (R)", die mit der S0-Schnittstellendefinition eben
mal NICHT definiert ist.

Wichtig ist: ON-Time >= 30 ms und OFF-Time >= 30 ms.
Damit ist die Entprellung gut definiert: Abstände
von gleichsinnigen Flanken < 50 ms sind Störpulse.

Wenn du dem Standard PullUp deines Lieblings-µC den
passenden Kondensator gen Masse für tau ~= 10 ms
spendierst, sollte die hoffentlich vorhanden Schmitt-Trigger-
Funktion deines Lieblings-µCs für saubere Pulse sorgen.

So ein Zähler hat seine Ober- und Untergrenze, was er erfassen
kann - und der Konstrukteur sorgt dafür, dass bei konstruktiv
erlaubten Werten die Pulszeiten passen.

Die Relation Pulse / Messeinheit ist beim Zähler fest
vorgegeben und kann ermittelt, oder nachgelesen werden.

Die Spannung 15 V / 27 V ist der Wert, ab dem der S0-Ausgang
zerstört werden kann. Mit 3,3 V, oder 5 V geht da nix kaputt.

von ... (Gast)


Lesenswert?

Lothar M. schrieb:
> Das sind die Daten, die der Ausgang MAXIMAL verträgt.

Nein, das sind die Werte die die DIN EN verlangt. Die 
Optokoppler-Ausgänge der S0-Quellen vertragen weit mehr.

> Die Spannung 15 V / 27 V ist der Wert, ab dem der S0-Ausgang
> zerstört werden kann. Mit 3,3 V, oder 5 V geht da nix kaputt.

Typisch. Einer plappert was falsches vor und alle springen drauf an.

Lest die DIN EN 62053-31 bevor ihr hier Quatsch verbreitet. Das gilt 
auch für Moderatoren.

Mit 3,3V arbeitet überhaupt kein Zähler-Ausgang und mit 5V sehr wenige. 
Abgesehen von dem beschissenen Störabstand, der schon durch Störimpulse 
beim Einschalten von Licht überschritten wird und zu Fehlzählungen 
führt.

von RP6conrad (Gast)


Lesenswert?

Ich habe 3 S0 Zaehler in Einsatz an meine Raspberry 2, einfach direct 
auf den GPIO mit Pullup (3.3 V). Functioniert einwandfrei. Es geht um 
diese Zaehler : http://bg-etech.de/os/product_info.php?products_id=173
Auch eine C ist nicht verbaut. Die Zaehler wirden in ein Python sketch 
gepollt.

von Lutz (Gast)


Lesenswert?

... schrieb:
> Mit 3,3V arbeitet überhaupt kein Zähler-Ausgang und mit 5V sehr wenige.

Erzähl doch mal, was das mit einem potentialfreien Ausgang zu tun hat. 
Du bist nach eigenen Angaben ja sehr belesen und kannst das daher 
sicherlich anschaulich darlegen.

von ... (Gast)


Lesenswert?

RP6conrad schrieb:
> ch habe 3 S0 Zaehler in Einsatz an meine Raspberry 2, einfach direct
> auf den GPIO mit Pullup (3.3 V). Functioniert einwandfrei. Es geht um
> diese Zaehler : http://bg-etech.de/os/product_info.php?products_id=173
> Auch eine C ist nicht verbaut. Die Zaehler wirden in ein Python sketch
> gepollt.

Auch der BG-Zähler arbeitet nicht mit 3,3V.
Drei Zähler am Raspberry durch pollen der Eingänge abfragen?
Sorry, aber du erzählst Mist.

von ... (Gast)


Lesenswert?

Lutz schrieb:
> ... schrieb:
>> Mit 3,3V arbeitet überhaupt kein Zähler-Ausgang und mit 5V sehr wenige.
>
> Erzähl doch mal, was das mit einem potentialfreien Ausgang zu tun hat.

Zum Erfassen der Impulse musst du ja wieder einen Bezugspunkt 
herstellen.
Meine Aussage, die du zitierst bezieht sich auf Ausgänge von Zählern. 
Die haben i.d.R. einen Optokoppler als S0-Ausgang verbaut.

Bei einem Reed-Kontakt, der häufig bei Gas-Zähler und Wasserzähler 
verbaut ist, funktioniert es natürlich mit 3,3V oder 5V, wobei aber auch 
immer noch der Störabstand sehr schlecht ist.

von Fred R. (fredylich)


Lesenswert?

... schrieb:
> Nein, das sind die Werte die die DIN EN verlangt. Die
> Optokoppler-Ausgänge der S0-Quellen vertragen weit mehr.
>
>> Die Spannung 15 V / 27 V ist der Wert, ab dem der S0-Ausgang
>> zerstört werden kann. Mit 3,3 V, oder 5 V geht da nix kaputt.
>
> Typisch. Einer plappert was falsches vor und alle springen drauf an.
>
> Lest die DIN EN 62053-31 bevor ihr hier Quatsch verbreitet.

Kann ich nur bestätigen.
S0 ist ein Datenübertragungsstandard und wird auch so bei allen mir 
bekannte Stromzähler so bezeichnet die diese Schnittstelle haben. Somit 
erkennt man schon mal die Belastbarkeit.
Sind aber immer potentialfreie Schalter(meist Optokoppler).
Also ist die Spannung VccPin des „Empfänger“ Wurst wenn der Schalter 
diese auf GND zieht.
Somit sind wohl auch die Störungen nicht das Hauptthema. Kenne keinen 
Funken oder was auch immer der/das Signal GND liefert.
Hatte ich aber am 20.06.2017 schon grob beschrieben.

Gruß

von RP6conrad (Gast)


Angehängte Dateien:

Lesenswert?

... schrieb:
> Auch der BG-Zähler arbeitet nicht mit 3,3V.
> Drei Zähler am Raspberry durch pollen der Eingänge abfragen?
> Sorry, aber du erzählst Mist.
Ich kann nur sagen das es functioniert, lauft seit 2 Jahren so. Den 
Pulslaenge ist minimal 30 ms, so mit pollen kann die Flanke problemlos 
erfasst werden. Wo ist dan den Mist ?

von RP6conrad (Gast)


Lesenswert?

RP6conrad schrieb:
> Ich habe 3 S0 Zaehler in Einsatz an meine Raspberry 2, einfach direct
> auf den GPIO mit Pullup (3.3 V).

Kleine correction, es ist ein PullDown verbaut !! Den Optocoupler 
schaltet naturlich die +3.3 V durch !!

von ... (Gast)


Lesenswert?

RP6conrad schrieb:
> so mit pollen kann die Flanke problemlos
> erfasst werden.

Du kennst den Unterschied zwischen: "auf eine Flanke pollen" und "eine 
Flanke per Interrupt erfassen"?

von Karol B. (johnpatcher)


Lesenswert?

RP6conrad schrieb:
> Den
> Pulslaenge ist minimal 30 ms, so mit pollen kann die Flanke problemlos
> erfasst werden. Wo ist dan den Mist ?

Mit welcher Frequenz pollst du das Ganze denn?

Ich habe diesbezüglich mal mit dem Support von bg-etech korrespondiert 
und folgende Antwort erhalten:

> die funktion der S0 Schnittstelle wird auch mit 5V sichergestellt bei 3,3V 
können wir keine aussage treffen,
> die Strombelastbarkeit wird durch den Optokopller festgelegt welcher mit maximal 
24mA belastet werden darf.

... schrieb:
> Du kennst den Unterschied zwischen: "auf eine Flanke pollen" und "eine
> Flanke per Interrupt erfassen"?

Worauf genau möchtest du hinaus? Die Problematik mit geprellten Signalen 
bei Interrupts?

Mit freundlichen Grüßen,
Karol Babioch

von RP6conrad (Gast)


Lesenswert?

In mein Verstandniss ist pollen nicht anderes als in der Ablaufschleife 
die Eingangen abfragen. Wenn du eine Flanke sucht, speicheren sie die 
forherige Zustand und vergleichen sie das. Forauszetsung : die Pulsdauer 
muss langer sein dan die Schleife durchlaufzeit, oder du verpasst die 
Flanke. Ein Interrupt ist etwas anders : In hardware wird eine Aenderung 
erfasst, dan wird sofort in eine Interrupt Handler gesprungen. Hier 
macht den durchlaufzeit von die Hauptschleife nichts aus, oder die Puls 
gesehen werd ist nur noch abhangig von Hardware.

von RP6conrad (Gast)


Angehängte Dateien:

Lesenswert?

Karol B. schrieb:
> Mit welcher Frequenz pollst du das Ganze denn?

Diese Python Sktech hat nur 175 Linien, da braucht der PI einige ms 
(habe es nicht vermessen). Aber das Betriebssystem unterbricht den 
Python sketch regelmassig, kann bis zu 10 ms dauern das in Sketch nichts 
lauft ! Darum mussen diese Flanken minimal 10 ms Laenge haben !
Der Python sketch finden sie in Anhang.

von ... (Gast)


Lesenswert?

Karol B. schrieb:
> Worauf genau möchtest du hinaus? Die Problematik mit geprellten Signalen
> bei Interrupts?

"geprellte Signale" hahaben nichts mit Polling oder Interruptabfrage zu 
tun.
Wenn man auf eine Flanke pollt macht der Prozessor nichts anderes mehr 
und ist blockiert.
Was wenn die Flanke erst nach einer halben Stunde kommt?

von ... (Gast)


Lesenswert?

RP6conrad schrieb:
> In mein Verstandniss ist pollen nicht anderes als in der Ablaufschleife
> die Eingangen abfragen. Wenn du eine Flanke sucht, speicheren sie die
> forherige Zustand und vergleichen sie das. Forauszetsung : die Pulsdauer
> muss langer sein dan die Schleife durchlaufzeit, oder du verpasst die
> Flanke.

Ja, und wenn die Flanke erst nach einer halben Stunde kommt macht der 
Prozessor nichts mehr anderes.

von RP6conrad (Gast)


Lesenswert?

... schrieb:
> Ja, und wenn die Flanke erst nach einer halben Stunde kommt macht der
> Prozessor nichts mehr anderes.

Nein !!! So geht das nicht. Ein kleines Beispiel :


If ((GPIOx=HIGH) AND (Last_State=LOW)) Flank_Detection=HIGH;
Last_State=GPIOx;

Sobald eine steigende Flanke forliegt von GPIOx wird Flank_Detection 
"HIGH", aber nur für einen Durchlauf ! Da wird nichts gewartet, den 
Ablauf lauft einfach weiter. Aber diese Stelle muss naturlich innerhalb 
die Pulsdauer zweimal durchlaufen werden !! Sag ihre Hauptablauf dauert 
20 ms, muss die Pulslaenge minimal 20 ms sein, oder du verpasst die 
Flanke.

von Stefan (Gast)


Lesenswert?

weiss garnicht was ihr da für ein aufwand macht, hier mal mein python 
bastelei, klappt seit einigen jahren sehr gut.

import RPi.GPIO as GPIO
import time
# SoC als Pinreferenz waehlen
GPIO.setmode(GPIO.BCM)

# Pin 3 vom PI Input deklarieren und Pull-Down Widerstand aktivieren 
fuer Gas Sensor
GPIO.setup(2, GPIO.IN)

#InterruptGas
def InterruptGas(channel):
  global CounterGas
  global CounterHeuteGas
  CounterGas = CounterGas + 1
  CounterHeuteGas=CounterHeuteGas+1
  x=CounterGas*0.6

# Interrupt Event hinzufuegen. Pin 3 ( GPIO2 ), auf steigende Flanke 
reagieren und ISR "Interrupt" deklarieren
GPIO.add_event_detect(2, GPIO.RISING, callback = InterruptGas, 
bouncetime = 200)

while True:
  time.sleep(1)
  print "\033[14;44H"+str(CounterGas)+ "     "

von Jacko (Gast)


Lesenswert?

@  Loran (Gast)

Sowas ähnliches hab ich vor einigen Monaten zu einer ähnlichen
Frage auch schon mal geschrieben.

Aber Legenden sind schnell in die Welt gesetzt.
Sind die erst mal in der Welt, ist die "kollektive Einfalt"
stärker, als die "kollektive Intelligenz" je sein wird...

von Jan H. (jan_h74) Flattr this


Angehängte Dateien:

Lesenswert?

Ich habe mal diese S0-pulsen vermessen mit ein Oscilloscoop. Beschalting 
war gans einfach : +3.3V an S0-schnittstelle, ausgang S0 mit 6 k pull 
down an Eingangs pin von Raspberry. Ich habe zwei verschiedene S0 von 
BG-Etech, ein mit 1000 imp/kWh, eine andere mit 2000 imp/kWh. Den erste 
hat eine Pulslaenge von 70 ms, der andere von 30 ms. Spannungsabfall in 
optocoupler ist ca 600 mV, bleibt noch 2.7 V ubrig an Eingangspin. Das 
ist genug um der Puls sicher zu erkennen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.