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?
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.
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
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...
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.
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.
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.
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.
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.
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).
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...
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.
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ß.