Forum: Analoge Elektronik und Schaltungstechnik Ferraris Stromzähler für SmartHome erfassen


von Olli Z. (z80freak)



Lesenswert?

Meine erste Datenerfassung für mein Smart-Home Projekt war es das 
Drehrad eines Ferraris Stromzählers zu erfassen um die Impulse dann in 
kWh umzurechnen und mit einem ESPHome WiFi-Node zu meinem Home-Assistant 
Raspi zu schicken.

Hierzu hatte ich mir ein günstiges Linienfolger/Näherungssensor-Shield 
mit IR Sende/Empfangsdiode (Variante mit OpAmp) besorgt. Nach einigem 
rumprobieren konnte ich die Abtastung deutlich verbessern indem ich die 
Plastikkappe des TRC5000 abgenommen und auf die Dioden zwei Stücke 
Schlauch aufgesteckt hatte. Jetzt wurde der rote Streifen auf dem 
Zählrad erkannt.

Leider hatte ich komplett falsche Zahlen und das lag an dem 
Prellverhalten. Inspiriert durch diesen Beitrag 
Beitrag "LM393 - mal wieder Hysterese" habe ich dann auch versucht 
einen Schmitt-Trigger nachzuschalten. Da ich die Schaltung jedoch mit 
3,3V betreiben wollte musste ich den TTL-Schmitt-Trigger 7414 gegen eine 
CMOS-Variant CD4093 tauschen. Damit hatte ich dann endlich saubere 
Signale.
Erst viel später habe ich gesehen das es auch solche IR-Lichtschranken 
mit integriertem Schmitt-Trigger (wenn auch nur der TTL-Variante) 
anstelle OpAmp gibt.

Trotzdem ist das immer noch nicht präzise, meine Zählung hinkt dem 
tatsächlichen Wert immer hinterher, nach wenigen Tagen um mehrere 10 
kWh. Das würde ja bedeuten das mein Sensor Erkennungen auslässt.

Nun habe ich mir einen "eQ-3 ES-Fer" zugelegt. Der wird von vielen 
vertrieben (auch ELV), sollte also ja funktionieren. Das Prinzip ist 
dasselbe, einziger der IR-Koppler ein anderer. Dieser nutzt einen 
TCND5000 und das Gehäuse ist so gebaut das es möglichst wenig Streulicht 
zulässt.

Habe mir dann mal die Mühe gemacht und die Platine nachgemessen und 
einen Schaltplan dazu erstellt (vielleicht kann das ausser mir ja mal 
jemand brauchen).

Soweit mir bekannt wird das System mit 4,4V gespeist. Ohne 
Schmitt-Trigger wird das sicher auch nicht funktionieren. Ob ich es auch 
mit 3,3V ans laufen bekomme ist wohl eine Frage der 
Bauteildimensionierung. Der Durchlassstrom der IR-Sendediode sollte 50mA 
betragen. Bei 3,3V wären es wohl nur noch 25mA, da muss ich den 56 Ohm 
Widerstand verkleinern.
Wenn ich von einem Uce von 0,7V ausgehe und einer Uf der IR-Diode von 
1,2V (laut Datenblatt) müsste das dann eher ein 28 Ohm sein, also 
nochmal einen 56 Ohm parallel oben drauf.

Die Empfangsschaltung gibt bei 4,4V Betriebsspannung ca. 2,6V am Emitter 
des Transistors T1 ab. Bei 3,3V Betriebsspannung sind es noch ca. 1,6V. 
Leider liegt das gerade an der Grenze eines SN74VCG1G14 (1-Fach 
invertierender Schmitt-Trigger im SOT-23 Gehäuse der eine Vcc von 
1.6-5.5V kann) wenn ich ihn mit 3,3V betreibe. Ich brauche also etwas 
mehr Spannung beim Volldurchgang von T1.

Die 1,6V am Emitter von T1 verstehe ich nicht ganz. Dieser erzeugt beim 
schließen ja einen Spannungsteiler mit R2 und R7 von 1k:10k und da 
müsste ich am Emitter doch eigentlich 2,3V messen, oder?

von Peter D. (peda)


Lesenswert?

Olli Z. schrieb:
> Da ich die Schaltung jedoch mit
> 3,3V betreiben wollte musste ich den TTL-Schmitt-Trigger 7414 gegen eine
> CMOS-Variant CD4093 tauschen.

Die 74HC14 gehen von 2..6V.

Der Schaltplan sieht gefährlich aus, die BE-Diode des T2 schließt den 
Ausgang des MC auf 0,7V kurz.
Die Schaltung mit T1 kann nicht funktionieren. Eine Fotodiode betreibt 
man entweder als Stromquelle an einem Transimpedanzverstärker oder in 
Sperrrichtung als Widerstand.
Wo hast Du diese komische Schaltung bloß her?

Ich würde den ganzen Analogkram weglassen und den Sensor einfach über 
den ADC einlesen. Dann kann man die Schwellen und die Hysterese bequem 
in Software machen bzw. besser adaptiv ermitteln lassen.
Als Sensor würde ich einen normalen Fototransistor nehmen, da hier kein 
super high speed nötig ist. Dann muß man die LED auch nicht so quälen, 
10mA sollten dicke reichen.
Gegen Fremdlicht kann man die LED auch tasten und synchron dazu den ADC 
einlesen, d.h. den Modulationshub auswerten und nicht den absoluten 
Pegel.

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


Lesenswert?

Peter D. schrieb:
> Ich würde den ganzen Analogkram weglassen und den Sensor einfach über
> den ADC einlesen.
So geht das. Denn im Grunde kann man am Analogsignal ganz leicht 
erkennen, ob grade high oder low ist. Das "Gezappel" kann man über ein 
Timeout leicht ausfilern.

> Wo hast Du diese komische Schaltung bloß her?
Das wird wohl abgezeichnet von diesem ES-Fer sein:
https://de.elv.com/elv-homematic-zaehlersensor-ferraris-zaehler-es-fer-140795

von Olli Z. (z80freak)


Lesenswert?

Wie gesagt, das ist was ich aus der Platine rückwärts ermittelt habe.

Ich habe die Schaltung um T1 so verstanden:
Im Ausgangszustand ohne IR-Licht ist die Diode praktisch nicht leitfähig 
und es gilt der Pegel des Spannungsteilers R3+R4 welcher die Basis von 
T1 durchsteuert. Das wäre also praktisch der Fall wenn der rote, nicht 
reflektierende Teil des Zählrades vor dem Reflexkoppler steht.
Bewegt er sich weiter reflektiert das silberne Rad und mit zunehmendem 
Lichteinfall wird die Fotodiode leitfähiger. Das sorgt dann dafür das 
die B eher gegen GND gezogen wird. Da die Fotodiode laut Datenblatt 
einen Spannungsabfall von ca. 1V erzeugt kann von Kurzschluss doch keine 
Rede sein?
Jedenfalls dürfte das den T1 nicht mehr leiten lassen, der Ausgang ist 
dann nur noch mit R7 gegen GND gezogen.

Ich finde das passt alles, auch wenn man es grundsätzlich besser machen 
könnte, ja. Ich würde auch eher eine Stromquelle für die IR-Sendediode 
vorsehen, dann wäre die Betriebsspannung nämlich quasi egal. Aber gut, 
da hat man den Transistor zum ein/ausschalten genutzt, was ich nicht so 
ganz nachvollziehen kann wozu man das braucht, aber auch egal ich 
steuere den immer ganz durch.

Was mir auffällt ist das die Schaltung manchmal in der Hysterese des von 
mir verwendeten SN74VCG1G14 "stecken" bleibt. Es wird ein Pegel erkannt, 
aber der andere nicht mehr. Der Emitter von T1 regelt zwischen 0,8 und 
2,5V.
Vielleicht ist das auch genau das Problem welches ich mit meiner 
aktuellen Lösung und dem CD4093 habe?

Alle Varianten das Signal analog einzulesen sind gescheitert, das klappt 
alles nicht zuverlässig. Man erhält ein "Feuerwerk" von Impulsen, das 
mit dem Schmitt-Trigger ist noch die sauberste Lösung. Wenn ich den 
Pegelunterschied aber nicht sicher hinbekomme müsste ich über einen 
Schmitt-Trigger mit einstellbarer Hysterese nachdenken...

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

Olli Z. schrieb:
> Im Ausgangszustand ohne IR-Licht ist die Diode praktisch nicht leitfähig

Dazu mußt Du sie aber in Sperrrichtung schalten.
In Deiner Schaltung klemmt sie die Basis des T1 auf 0,7V, d.h. er bleibt 
gesperrt. Eine Fotodiode leitet wie eine normale Diode ab 0,7V.

von J. S. (jojos)


Lesenswert?

ich habe so einen TCRT5000 und dieses Gehäuse gedruckt:
https://www.thingiverse.com/thing:2668168

Den TCRT nach einem Tipp im FHEM Forum etwas modifiziert und eine 
Debounce Time von 1s eingestellt (im ESPEasy). Damit funktioniert es 
einigermassen, 2-3 mal pro Tag hauen Preller von ein paar kWh rein.

Für den Gaszähler teste ich gerade einen Hallsensor und für die 
Hysterese habe ich einen ICL7665 genommen.
Aber ich brauche sowie einen neuen Stromzähler und will da nicht mehr 
viel basteln.

: Bearbeitet durch User
von Peter D. (peda)


Angehängte Dateien:

Lesenswert?

Olli Z. schrieb:
> Alle Varianten das Signal analog einzulesen sind gescheitert, das klappt
> alles nicht zuverlässig.

Dann machst Du was falsch.
Ich benutze für eine Sicherheitslichtschranke eine Fotodiode mit 
Transimpedanzverstärker am ADC.
Die Sendediode wird mit einer Pseudozufallszahl getaktet und synchron 
dazu der ADC gestartet (kurz vor dem Umschalten der Sendediode). Die 
ADC-Werte (Differenz LED_an-LED_aus) werden dann über einen gleitenden 
Mittelwert geglättet und ausgewertet.

von Olli Z. (z80freak)


Lesenswert?

Peter D. schrieb:
> Olli Z. schrieb:
>> Im Ausgangszustand ohne IR-Licht ist die Diode praktisch nicht leitfähig
>
> Dazu mußt Du sie aber in Sperrrichtung schalten.
> In Deiner Schaltung klemmt sie die Basis des T1 auf 0,7V, d.h. er bleibt
> gesperrt. Eine Fotodiode leitet wie eine normale Diode ab 0,7V.
Dann würde aber doch keine Funktion erkennbar sein?

Hier ist es genauso gemacht, nur mit nem OpAmp halt anstelle einem 
Schmitt-Trigger (ist vielleicht die bessere Wahl, wenn man einen sehr 
schnellen OpAmp nehmen würde):

https://www.researchgate.net/profile/Eduardo-Freire-2/publication/4256490/figure/fig8/AS:668544006123538@1536404720695/Circuit-used-to-characterize-the-TCND5000-sensor.ppm

von Olli Z. (z80freak)


Lesenswert?

J. S. schrieb:
> Für den Gaszähler teste ich gerade einen Hallsensor und für die
> Hysterese habe ich einen ICL7665 genommen.
> Aber ich brauche sowie einen neuen Stromzähler und will da nicht mehr
> viel basteln.
Das habe ich alles schon durch, kann man vergessen. Hier ist am besten 
der gute alte Reed-Kontakt, habe ich nun auch gemacht und funktioniert 
absolut störungsfrei seit Monaten, ohne auch nur eine zehntel m³ 
Differenz.

von Olli Z. (z80freak)


Lesenswert?

J. S. schrieb:
> ich habe so einen TCRT5000 und dieses Gehäuse gedruckt:
> https://www.thingiverse.com/thing:2668168
> Den TCRT nach einem Tipp im FHEM Forum etwas modifiziert und eine
> Debounce Time von 1s eingestellt (im ESPEasy). Damit funktioniert es
> einigermassen, 2-3 mal pro Tag hauen Preller von ein paar kWh rein.
Das hatte ich auch schon im Visier aber mangels 3D-Drucker nicht 
umgesetzt. Meine Lösung ist ja praktisch gleich nur das ich mittels 
Schläuchen das Streulicht eingrenze. Das Problem hier ist nicht die 
Optik sondern der träge OpAmp, der zudem noch falsch beschaltet ist. Ihm 
fehlt ein Rückkopplungswiderstand. Was da raus kommt kannst Du ganz oben 
in den Oszi-Bildern von mir sehen.

von Olli Z. (z80freak)


Lesenswert?

Peter D. schrieb:
> Olli Z. schrieb:
>> Alle Varianten das Signal analog einzulesen sind gescheitert, das klappt
>> alles nicht zuverlässig.
> Dann machst Du was falsch.
Ja, wenn man das so alles tutti kompletti selbst macht ist das sicher 
möglich, was ich meinte ist mit vorhandenen, verfügbaren Bordmitteln. 
Also einem fertigen Sensor und einem fertigen ESPHome (Wemos D1 Shield).

von Olli Z. (z80freak)


Lesenswert?

Peter D. schrieb:
> Die Sendediode wird mit einer Pseudozufallszahl getaktet und synchron
> dazu der ADC gestartet (kurz vor dem Umschalten der Sendediode). Die
> ADC-Werte (Differenz LED_an-LED_aus) werden dann über einen gleitenden
> Mittelwert geglättet und ausgewertet.

Ich denke genau so wie Du wird es wohl die ELV Steuerung für diesen 
Sensor machen und das ist dann auch der Grund warum die Sende-LED über 
einen Transistor geschaltet ist...

von Peter D. (peda)


Lesenswert?

Olli Z. schrieb:
> Ja, wenn man das so alles tutti kompletti selbst macht ist das sicher
> möglich

Das stimmt natürlich. Ich hab alles selbst geschrieben, sind immerhin 
6kB Code geworden (ATmega168). Über die UART können Kommandos gelesen 
werden (sscanf) zur Ausgabe der Min-/Max-Werte und zum Schreiben der 
Schwellwerte in den EEPROM.

Olli Z. schrieb:
> Also einem fertigen Sensor und einem fertigen ESPHome (Wemos D1 Shield).

Ich hab mich damit noch nicht beschäftigt, ob man den ADC auslesen kann 
und eigene C-Programme reinladen.

von Peter D. (peda)


Lesenswert?

Olli Z. schrieb:
> Hier ist es genauso gemacht, nur mit nem OpAmp

Nö, die Diode ist in Sperrrichtung, Kathode an VCC.
Bei Dir ist aber die Kathode an GND, also die Diode auf Durchlaß.

von Purzel H. (hacky)


Lesenswert?

Ich wuerd den stromzehrenden Mist in die Tonne kloppen und mir auf der 
Basis eines ADE7758 oder aehnlich etwas bauen.

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.