Ich poste das mal hier und nicht an der vermeintlich richtigen Stelle, weil ich für die richtige Stelle keinen Accout habe und das Thema dort schon uralt ist...
Also, ich habe ein Pluviometer an einem ESP32 angeschlossen, sieht genauso aus wie hier: https://www.letscontrolit.com/forum/viewtopic.php?t=4799
Ein Draht hängt auf Masse, der 2. Draht geht auf einen GPIO, der zusätzlich noch einen 5k5-Pullup gegen 3V3 hat.
Auf den ersten Blick scheint alles richtig zu funktionieren, wenn ich die Wippe bewege zählt der Impuls 1x hoch.
Nach einigem Herumpspielen habe ich es dann stehen gelassen und mich anderen Dingen gewidmet, in den Plots habe ich dann aber "Geisterimpulse" festgestellt, die ich einfach nicht wegbekomme. Ich habe schon unterschiedliche GPIOs ausprobiert und auch versucht nicht gegen Masse sondern gegen 3V3 zu schalten (also 1 Draht auf 3V3, der 2. zum GPIO und 5k5-Pulldown), aber die "Geisterimpulse" gehen nicht weg.
Ein paar Tage lang habe ich gedacht eine gewisse Systematik zu erkennen, aber irgendwie komme ich nicht dahinter.
Irgendwelche Ideen?
An dem ESP32 (DevKitC) hängen zusätzlich noch 2 Port-Expander über I2C, 2 DHT22 sowie 2 Analogsensoren an 2 ADCs. Versorgt wird der ESP32 über die Pinleiste und nicht über den USB-Anschluss, die 5V kommen von einem Handyladegerät.
Ich habe das Problem aber auch an einem ESP8266 gesehen, wo 1 Analogsensor und 1 SR-04 sowie 2 Relais angeschlossen waren, Versorgung über USB-Anschluss.
Was ich ausschließen kann:
zeitlicher Zusammenhang mit Reboots
Zusammenhang mit Schaltvorgängen an anderen GPIOs
...was ist in dem Pluviometer....Reed-Kontakt ?
LG
Papa Romeo
Zitat von: Papa Romeo am 02 Dezember 2020, 16:49:28
...was ist in dem Pluviometer....Reed-Kontakt ?
Sorry, Ja.
...gibt das Ding nur einen Impuls ab (Wischerschalter) oder bleibt der Kontakt solange geschlossen, bis die andere Wipp-Lage wieder eingenommen wurde?
Wischer.
Ich habe gerade mal mit einem Magneten die Pegel gemessen...
Wenn ich gegen Masse schalte, liegen am GPIO (Pullup auf 3V3) 3V3 an, wenn ich den Reed-Kontakt mittels Magnet permanent auslöse sind's stabil 0V.
Wenn ich gegen 3V3 schalte, liegen am GPIO (Pulldown auf Masse) 0V4 an, wenn ich den Reed-Kontakt mittels Magnet permanent auslöse sind's stabil 3V3.
Ich habe den Impulszähler auf "Rising" konfiguriert, beim Bewegen der Wippe zählt er stabil hoch.
Wenn ich gegen Masse schalte und auf "Low" konfiguriere, würde ich erwarten, dass er auch zählt, was er aber nicht tut. Möglicherweise ist der Kontakt zu kurz geschlossen, um wirklich 0V zu erreichen?
Ich hatte eine vage Vermutung, dass die "Geisterimpulse" in Zusammenhang mit irgendeinem anderen Gerät (Lampe, Monitor), was dann ein- oder ausgeschaltet wird, stehen. Vorhin gab's aber einen Impuls wo zu 100% nichts anderes ein- oder ausgeschaltet wurde und auch die Wippe nicht bewegt wurde.
wenn die beiden Leitungen des Reed´s sauber getrennt sind und keinen "Schluss" machen können, bleibt nur der Reed. Vielleicht sind die Kontakte zu eng beieinander und er reagiert zu empfindlich gegen z.B. Erschütterungen.
Dass er bei "Schalten gegen Low" nicht zählt ist aber schon etwas seltsam. So kurz kann ein Impuls gar nicht sein, dass ein GPIO davon nicht´s mitbekommt.
Hast du zufällig ein Oszi ... kannst das kontrollieren ?
LG
Papa Romeo
Zitat von: Papa Romeo am 02 Dezember 2020, 21:47:52
wenn die beiden Leitungen des Reed´s sauber getrennt sind und keinen "Schluss" machen können, bleibt nur der Reed. Vielleicht sind die Kontakte zu eng beieinander und er reagiert zu empfindlich gegen z.B. Erschütterungen.
Die Teile sind prototypisch auf meinem Schreibtisch zusammengeschlossen, teilweise mit Jumperkabeln und teilweise mit Wago-Klemmen. Ohne Berührung sind "Schlüsse" oder "Wackler" ausgeschlossen. Die Wippe selbst steht nochmal auf einer leeren Schachtel, die gegen Erschütterungen im Umfeld dämpfend wirken würde.
Aber wie gesagt, vorhin hatte ich nachweislich eine Aufzeichnung in FHEM, wo die Kinder schlafend im Bett am anderen Ende des Hauses und meine Frau und ich in der Küche am anderen Ende des EGs waren, keiner hat sich merklich bewegt oder irgendwelche Geräte ein- oder ausgeschaltet.
Zitat von: Papa Romeo am 02 Dezember 2020, 21:47:52
Dass er bei "Schalten gegen Low" nicht zählt ist aber schon etwas seltsam. So kurz kann ein Impuls gar nicht sein, dass ein GPIO davon nicht´s mitbekommt.
Hast du zufällig ein Oszi ... kannst das kontrollieren ?
Leider nicht... würde der ADC (oder ein externer ADS1015) rasch genug reagieren und auch rasch genug an FHEM senden? Dann könnt' ich den Impuls zusätzlich analog erfassen. Vermutlich nicht, weil das Intervall nicht kleiner als 1s eingestellt werden kann :-(
Ich habe jetzt nochmal auf "LOW" umgestellt und mit dem Magneten mehrere Sekunden geschaltet, habe sogar das Klicken in der Schaltung gehört. Da tut sich gar nix, der Zähler ist festgenagelt. "Rising" oder "Falling" funktioniert zuverlässig.
...kommst du da irgendwie ran...könnte man einen zweiten Reed oder nen Hallsensor dazuhängen ?
Die Frage ist warum funktioniert es nicht. Liegt es an der Schaltung im Pluviometer? Hat das einfach einen Schaden? Dann tausche ich das Teil einfach aus, ist ein Billigprodukt vom Chinesen, bevor ich da jetzt zusätzliche Bauteile besorgen und umbauen muss...
Ich habe gerade wieder einen "Geisterimpuls" gesehen, den ich nicht erklären kann. Und wieder scheint es zeitlich verdächtig mit dem Schalten eines Stromverbrauchers zusammenzuhängen:
Habe mein PC-System mittels Schalter an der Steckdosenleiste eingeschaltet und kurze Zeit später beim Aktualisieren vom Plot sehe ich den Peak. Das konnte ich nun 1x vermeintlich reproduzieren, beim 2. Versuch ging's nicht.
Auch das simple Aus- und Einschalten vom Monitor, der ca. 15cm vom Reedkontakt entfernt ist, konnte es nicht reproduzieren, ebenso wenig wie das Einschalten der Schreibtischlampe, die doch schon recht weit vom Reedkontakt entfernt wäre.
Ich habe jetzt einfach mal das Jumperkabel vom Pluviometer am GPIO abgezogen, jetzt ist der GPIO einfach nur mit dem Pullup auf 3V3 gezogen.
Wenn in den nächsten 24 Stunden keine "Geisterimpulse" zu sehen sind, liegt's wohl nicht am ESP32, sondern am Pluviometer. Kann das Teil so sensibel sein, dass durch das Schalten eines Stromverbrauchers ein elektromagnetisches Feld den Kontakt auslöst? Klingt irgendwie nicht sehr plausibel. (Das Anschlusskabel ist ca. 3m und derzeit mittels Kabelbinder zusammengerollt, aber das kann doch auch nicht wie eine Spule wirken.
Abgesehen davon erklärt es nicht, warum der Impuls nicht bei "LOW" gezählt wird.
Nachtrag:
Das Pluviometer is wohl nicht Schuld, es gab schon wieder einen "Geisterimpuls".
Ich habe jetzt mehrfach an der Leitung gewackelt, in die ich den PullUp prototypisch eingesetzt habe. (Einfach zwischen 2 Jumperkabeln gesteckt, die Verbindung scheint auch fest zu sein.) Tatsächlich konnte ich dabei 1x einen weiteren Impuls auslösen.
Bleibt also zu hoffen, dass das nur ein Problem des prototypischen Aufbaus war und sich dann löst, wenn ich alles verlöte.
Auch wenn es den fehlenden "LOW"-Impuls immer noch nicht erklärt...
...wird nur nicht gezählt wenn der Sensor auf "LOW" geht oder auch nicht wenn du den GPIO von "Hand" auf "LOW" legst?
Sollte nur das Erstere zutreffen, kannst du den Impuls durch einen parallelen C zu deinem Sensor etwas verlängern.
Stichwort: Integrier-Glied: tau = R * C -->> tau = Pullup * C
LG
Papa Romeo
...was mir gerade noch einfällt. Hast du mal die Endzustände des Reed´s gemessen. Hat er 0 Ohm bei "geschlossen" und unendlich bei "geöffnet".
Es gibt Reed´s die haben einen Reihenwiderstand verbaut. (Kurzschlußsicherung)
Da ist es dann durchaus möglich, dass wenn der Pullup zu klein gewählt wird, der "LOW-Pegel" nicht erreicht wird.
LG
Papa Romeo
Ich habe nur ein einfaches Multimeter zur Hand, aber ich habe damit folgendes gemessen:
Offen: >2000 kOhm
geschlossen und über die ca. 3m Kabel plus Wago-Klemmen ergibt am Ende der Jumperkabeln: 3,5 Ohm
Ich habe jetzt noch von "Hand" auf Masse gezogen, auch da wird nicht geschaltet.
Im Endeffekt brauche ich die "LOW"-Auslösung ja nicht, wenn es mit "RISING" oder "FALLING" robust funktioniert. Ich hätte nur erwartet, dass ich Fehlauslösungen durch etwaige kleinere Spannungseinbrüche damit wegfiltern kann.
Zitat von: TheTrumpeter am 03 Dezember 2020, 12:54:05
Ich habe jetzt noch von "Hand" auf Masse gezogen, auch da wird nicht geschaltet.
ok....dann liegt´s nicht am Sensor sondern an der Software, dass Diese dies nicht auswertet.
Aber ist schon so, dass "High-aktiv" störanfälliger gegen Sörspannungen ist, egal jetzt welcher Art, wie "Low-aktiv", da dem Pin nicht wirklich ein fester
Ruhespannungpegel z.B. über einen Pulldown zugewiesen wird.
LG
Papa Romeo
Zitat von: Papa Romeo am 03 Dezember 2020, 13:36:21
Aber ist schon so, dass "High-aktiv" störanfälliger gegen Sörspannungen ist, egal jetzt welcher Art, wie "Low-aktiv", da dem Pin nicht wirklich ein fester
Ruhespannungpegel z.B. über einen Pulldown zugewiesen wird.
Dann habe ich mit Schaltung gegen Masse und Pullup des GPIO auf 3V3 ja eh die robustere Variante gewählt.
Wenn das Schalten bei LOW in der SW auch noch funktionieren würde, wär's maximal robust. Mit der aktuellen SW-Einstellung (steigende oder fallende Flanke) ist offen bei welchen Pegelschwankungen das schon auslöst und daher etwaige Störpegel fehlerhaft als Impuls gewertet werden.
Tip:
Optimal wäre es natürlich, wenn der GPIO ständig einen definierten LOW-Pegel bekäme und nur für den Moment des Impulses vom Sensor freigeben wird.
In der Schaltung im Anhang z.B. haben "Störimpulse" keine Chance, da der Transistor am GPIO ständig ein "LOW" erzeugt und nur für die Zeit des Impulses
am GPIO ein "HIGH" zulässt.
Mit einem optionalen Kondensator parallel zum Reed (gestrichelt) könnte man den Impuls auch etwas verlängern.
LG
Papa Romeo
Womit versorgst DU das Teil momentan?
Falls über Netzteil - versuche es mal über Batterie
Zitat von: Papa Romeo am 03 Dezember 2020, 17:06:47
In der Schaltung im Anhang z.B. haben "Störimpulse" keine Chance, da der Transistor am GPIO ständig ein "LOW" erzeugt und nur für die Zeit des Impulses
am GPIO ein "HIGH" zulässt.
EDIT: ...dann ist es auch unerheblich auf welche Flanke der ESP reagiert
Ich habe bzgl. des "LOW"-Problems mal den Code nachgelesen, da konnte ich keinen Fehler entdecken. Dann habe ich die Arduino-Referenz konsultiert und bin der Meinung, dass es ohnehin keinen Unterschied macht ob ich im konkreten Anwendungsfall auf "RISING", "FALLING" oder "LOW" triggere:
Zitat
LOW Interrupt wird getriggert, wenn der Pin LOW ist,
CHANGE Interrupt wird getriggert, wenn der Pin den Wert ändert
RISING Interrupt wird getriggert, wenn der Pin von LOW auf HIGH wechselt,
FALLING Interrupt wird getriggert, wenn der Pin von HIGH auf LOW wechselt.
Und weiter:
ZitatHIGH
Die Bedeutung von HIGH (In Bezug auf den Pin) ist unterschiedlich, je nachdem, ob der Pin als INPUT oder OUTPUT definiert ist. Wenn ein Pin als INPUT mit pinMode() definiert wird und mit digitalRead() gelesen wird, gibt der Arduino (ATmega) HIGH zurück, wenn:
eine Spannung größer als 3,0V an dem Pin anliegt (5V-Boards)
eine Spannung größer als 2,0V an dem Pin anliegt (3,3V-Boards)
LOW
Die Bedeutung von LOW (In Bezug auf den Pin) ist ebenfalls unterschiedlich, je nachdem, ob der Pin als INPUT oder OUTPUT definiert ist. Wenn ein Pin als INPUT mit pinMode() definiert wird und mit digitalRead() gelesen wird, gibt der Arduino (ATmega) LOW zurück, wenn:
eine Spannung kleiner als 1,5V an dem Pin anliegt (5V-Boards)
eine Spannung kleiner als 1,0V (circa) an dem Pin anliegt (3,3V-Boards)
Offen habe ich 3V3 anliegen, angenommen es kommt ein Störimpuls und die Spannung am GPIO sinkt ab.
Habe ich LOW gewählt, dann zählt der Impuls sobald die Spannung unter ca. 1V sinkt, beim Wiederherstellen der 3V3 passiert nichts mehr.
Habe ich RISING gewählt, dann muss die Spannung ebenfalls unter ca. 1V sinken, beim Wiederherstellen der 3V3 wird dann gezählt.
Habe ich FALLING gewählt, dann zählt der Impuls sobald die Spannung unter ca. 1V sinkt, beim Wiederherstellen der 3V3 passiert nichts mehr.
Da durch die Wippe der Reed-Kontakt nur kurz schliesst, ist es völlig unerheblich ob der Impuls beim Schliessen oder beim gleich darauffolgenden Öffnen gezählt wird.
Und Einbrüche von 3V3 auf 1V bei Versorgung über ausreichend dimensioniertes 5V-Netzteil für ESP32 und Sensoren/Aktuatoren? Kann ich mir irgendwie nicht vorstellen.
Zitat von: Papa Romeo am 03 Dezember 2020, 17:11:50
EDIT: ...dann ist es auch unerheblich auf welche Flanke der ESP reagiert
Handynetzteil auf die Pinleiste, im fertigen Ausbau dann statt dem Handynetzteil ein kleines PCB-Netzteil, entweder von 24V AC oder wahrscheinlicher von 220V AC auf 5V DC.
Zitat von: Papa Romeo am 03 Dezember 2020, 17:06:47
In der Schaltung im Anhang z.B. haben "Störimpulse" keine Chance, da der Transistor am GPIO ständig ein "LOW" erzeugt und nur für die Zeit des Impulses
am GPIO ein "HIGH" zulässt.
vielleicht falsch verstanden...
Meine Aussagen über "LOW" oder "HIGH" bezogen sich jetzt nicht auf die Rückgabewerte es ESP und ist auch unerheblich
ob der GPIO durch die Software jetzt als Aus- oder Eingang definiert ist.
Aber ich denke wir reden hier eigentlich über einen Sensor-
Eingang --> "LOW" --> GPIO hat etwa den gleichen Pegel wie Gnd also ca. 0 Volt
--> "HIGH" --> GPIO hat annähernd den gleichen Pegel wie die Betriebsspannung
Wenn ein GPIO auf Gnd gelegt wird, also sozusagen mit Gnd kurzgeschlossen ist, dann kann eine Störspannung an dem Pin
"Purzelbäume" schlagen und das wird Diesen nicht im geringsten interessieren.
LG
Papa Romeo
Leider habe ich mich zu früh gefreut, meine Schaltung ist immer noch äusserst anfällig.
Hatte ich mehrere Tage ohne angeschlossenes Pluviometer nun keine Fehlauslösungen mehr, geht's nach dem erneuten Anschluss erneut unmotiviert "nach oben". Wackler sind diesmal wirklich ausgeschlossen, ich habe auch das Pluviometer weiter weg gestellt, sodass das Kabel nicht mehr zusammengerollt ist.
Was mich irritiert: Wie kann das bloße An- und Abstecken vom Reed-Kontakt Fehlauslösungen verursachen? Der GPIO ist mittels PullUp auf 3V3 gelegt, da muss es doch völlig unerheblich sein, dass ich an denselben Pin zusätzlich ein Kabel, das zu einem offenen Reed-Kontakt (der mit Masse verbunden ist) geht, an- oder abstecke? (Das An- und Abstecken vom Kabel führt sicher nicht zu Erschütterungen am Reed-Kontakt.)
Entsprechend denke ich nun doch über die kleine Zusatzschaltung nach. Von links gesehen bis zum Transistor ist mir alles klar, aber dann beginnen die Fragezeichen in meinem Kopf. Auf der Zeichnung sieht es so aus als ob der GPIO sowohl mit Masse als auch 3V3 verbunden ist.
Ein Versuch der Erklärung:
Bei offenen Reed-Kontakt fliesst der Strom über den 4k7 durch die Basis zum Emitter, daher fliesst auch Strom über den Pullup vom Kollektor zum Emitter, die Spannung fällt am Pullup ab und daher "sieht" der GPIO durch den Kurzschluss mit Masse keine Spannung, obwohl er auch mit 3V3 verbunden ist?
Bei geschlossenem Reed-Kontakt fliesst kein Strom von der Basis zum Emitter, weil der über den 4k7 kommende Strom über den Reed-Kontakt mit Masse verbunden wird. Dadurch sperrt der Transistor, sodass der Strom von 3V3 direkt über den GPIO zu Masse fliesst?
Wenn der Reed-Kontakt geschlossen bleibt, habe ich dann aber einen dauerhaften Kurzschluss?
Zitat von: TheTrumpeter am 09 Dezember 2020, 17:16:10
Auf der Zeichnung sieht es so aus als ob der GPIO sowohl mit Masse als auch 3V3 verbunden ist.
Der GPIO kann nur einen Zustand haben. Entweder er hat "Gnd-Pegel" also 0 Volt oder er hat den Pegel der Betriebsspannung als 3.3 Volt.
Deine Erklärungen sind teilweise richtig, aber ich versuch´s auch mal zu erklären.
Wir gehen mal davon aus, dass der GPIO einen sehr,sehr hohen Eingangswiderstand hat.
Wenn der Reed offen (hochohmig) ist, kann über den 4k7 ein Basisstrom fließen und der Transistor steuert durch.
D.h. der Kollektor des Transistor hat dann in etwa den Pegel wie der Emitter und der GPIO hat somit den gleichen Pegel.
Man sagt, der GPIO liegt auf "LOW" (Gnd, Masse) und die ganze Spannung fällt über dem Pullup ab, was aber keine Auswirkung hat, ausser dass er, sagen wir mal
"Strom" verbraucht.
Schließt nun der Reed (niederohmig), wird dem Transistor die Basisspannung genommen, der Basisstrom wird somit 0 und der Transitor sperrt.
Das wiederum heißt, da wir von einem sehr hohen Einganswiderstand des GPIO ausgehen, durch den Pullup kann kein Strom mehr fließen.
Da in einem Stromkreis in dem kein Strom fließt, an einem Widerstand keine Spannung abfallen kann, ist die Spannung an allen Punkten gleich und wir messen somit an beiden Seiten des Pullup´s die Betriebsspannung.
Der GPIO liegt auf +Ub (HIGH).
Ich hoffe es ist so verständlich.
LG
Papa Romeo
Zitat von: Papa Romeo am 09 Dezember 2020, 18:35:22
Ich hoffe es ist so verständlich.
Danke, jetzt habe ich es verstanden.
Als Transistor kann ich vmtl. jeden x-beliebiges Modell nehmen, solange es ein npn-Typ ist, oder?
Und für den PullUp sollte ein Wert deutlich über den 4k7 gewählt werden, richtig?
Ja, gängige Typen sind z.B. der BC546, BC547, BC548 oder der BC337
Gängige Werte für die Pullup´s liegen zwischen 4.7 und 10 kOhm.
Ist also unkritisch ... solange du die Impulse nicht verlängern must und ein Kondensator zum Einsatz kommt.
Da ist es dann schon gefordert, dass man mit dem Pullupwert und dem C auf die entsprechenden Zeiten kommt.
LG
Papa Romeo
Ok, die Widerstände habe ich da, Transistor werde ich nächste Woche besorgen und das dann mal zusammenstecken.
Danke für die Hilfe.
Zitat von: TheTrumpeter am 10 Dezember 2020, 11:42:48
Danke für die Hilfe.
...kein Problem ... zu dem gibt´s ein Forum ...
LG
Papa Romeo
Ich würde mal die Spannung am GPIO dauerhaft messen und aufzeichnen. Vielleicht kann hier zumindest erkennen das ein kurzer Impuls anliegt. Ich verwende hier diese Messegerät:
Messgerät PeakTech 2025 ==> https://amzn.to/37PVRHQ
Kostet ca. 55€. Hier könnt Ihr die gemessenen Daten per USB an Euren PC senden und Grafisch darstellen.
Zitat von: michael.winkler am 11 Dezember 2020, 08:25:48
Ich würde mal die Spannung am GPIO dauerhaft messen und aufzeichnen. Vielleicht kann hier zumindest erkennen das ein kurzer Impuls anliegt.
Ich glaube, dass der Impuls anliegt, steht ausser Frage. Ohne angeschlossenes Pluviometer ist ja dauerhaft "Ruhe".
Offen ist eher woher der Impuls kommt bzw. wie er dauerhaft abgestellt werden kann. Zu letzterem hat Papa Romeo auch schon einen Vorschlag geliefert.
vielleicht schlecht gelötet, zb "kalte" lötstelle, im pluviometer?
einfach mal alle lötstellen nachlöten. dabei immer etwas neues lötzinn hinzufügen.
Zitat von: Papa Romeo am 03 Dezember 2020, 17:06:47
In der Schaltung im Anhang z.B. haben "Störimpulse" keine Chance, da der Transistor am GPIO ständig ein "LOW" erzeugt und nur für die Zeit des Impulses
am GPIO ein "HIGH" zulässt.
So, heute habe ich die Schaltung nachgebaut, nur ohne Erfolg. Nach langer Fehlersuche bin ich dann draufgekommen, dass ich offenbar pnp- statt npn-Transistoren "erwischt" habe, die müssen wohl falsch einsortiert gewesen sein.
Ich habe mich an folgende Anleitung zum Überprüfen gehalten (https://www.gutefrage.net/frage/wierum-wird-ein-transistor-eingebaut):
ZitatDas lässt sich aber leicht überprüfen mit einem Multimeter im Diodentest. Im Diodentest zeigt das Multimeter die Knickspannung in mV an:
1) Rot in die Mitte, schwarz muss an beiden anderen Beinchen um 700 anzeigen.
=> Es ist ein NPN Transistor mit C-B-E Belegung
2) Schwarz in die Mitte, Rot muss an beuden anderen Beinchen um 700 anzeigen.
=> Es ist ein PNP Transistor mit C-B-E Belegung
Bei mir zeigte der Test in 2) immer ca. 600 an, bei 1) war kein Durchgang :-(
Gibt's eine Möglichkeit die Schaltung auch mit einem pnp-Transistor zu realisieren?
Zitat von: TheTrumpeter am 28 Dezember 2020, 16:56:52
Gibt's eine Möglichkeit die Schaltung auch mit einem pnp-Transistor zu realisieren?
... kann aber sein, du must mit dem Pulldown etwas spielen, also eher kleiner halten, was aber natürlich den Ruhestromverbrauch erhöht.
LG
Papa Romeo
Zitat von: Papa Romeo am 28 Dezember 2020, 21:18:03
... kann aber sein, du must mit dem Pulldown etwas spielen, also eher kleiner halten, was aber natürlich den Ruhestromverbrauch erhöht.
Danke, das werde ich morgen gleich ausprobieren.
So, das läuft nun mal, ob es störungsfrei ist, kann ich noch nicht sagen.
Allerdings funktioniert es nur, wenn ich den GPIO nicht mit Masse und Ubat verbinde wie am Bild im Anhang dargestellt. Stelle ich die Verbindungen her, geht nix mehr.
Das hat mich an der Schaltung ja immer schon gestört, möglicherweise ist das auch nur ein Missverständnis meinerseits und die Verbindungen gehören da nicht hin.
Bei meiner Schaltung geht nun also der GPIO nur an den Ausgang des Kollektors, der mit 1k8 mit Masse verbunden ist.
Zeitweise habe ich das Gefühl, dass der Impuls nicht zuverlässig übertragen wird, aber jetzt warte ich erstmal, ob es zu Fehlimpulsen kommt oder nicht.
Zitat von: TheTrumpeter am 29 Dezember 2020, 15:03:34
Allerdings funktioniert es nur, wenn ich den GPIO nicht mit Masse und Ubat verbinde wie am Bild im Anhang dargestellt.
...ist eine falsche Interpretierung meiner Zeichnung. Die Linien zwischen Ubatt - GPIO und Masse sind keine elektrischen Verbindungen.
Sollen vielmehr nur den ESP mit den Anschlüssen UBatt, GPIO und Masse darstellen ...
LG
Alles klar, Danke.
Ich sag's auch nur ungern, aber trotz der Schaltung habe ich "Geisterimpulse".
..schließ mal den Reed-Kontakt kurz und kontrolliere ob immer noch Geisterimpulse da sind.
LG
Papa Romeo
Zitat von: Papa Romeo am 29 Dezember 2020, 20:18:06
..schließ mal den Reed-Kontakt kurz und kontrolliere ob immer noch Geisterimpulse da sind.
Ja, Widerstand über die gesamte Leitungslänge beträgt 2,3 Ohm. Die Impulse sind da, wieder scheint es mit dem Ein- oder Ausschalten von elektrischen Verbrauchern zusammenzuhängen.
...wie lang ist die Leitung vom Reed bis zum Sensoreingang?
Aktuell ca. 3m, am Ende dann ca. 8m.
Habe die Schaltung aktuell auf einem Prototypen-Board gesteckt, wenn ich an den Bauteilen wackle, tut sich gar nichts.
Und derzeit läuft es auf einem ESP8266, weil der grad am Prototypenboard drauf ist. Der ESP32, mit dem ich die Probleme ursprünglich beobachtet habe, ist auch noch verfügbar. Scheint aber definitiv unabhängig vom uC zu sein.
...ist natürlich schon ne Länge, wo sich einiges an "Elektrosmog" ansammeln kann.
Ist die Leitung geschirmt (z.B. Koaxialleitung) oder eine Doppellitze?
Ist einfach nur eine Doppellitze, noch original wie es drauf war. Nur den RJ11 habe ich abgeschnitten. Habe schon ein verdrilltes Kabel mit 8m vorbereitet, das könnte ich tauschen.
Aber mit der Original-Wetterstation wären auch nur die 3m Doppellitze ohne irgendwelche weitere Maßnahmen. Oder verwenden die ev. deutlich höhere Spannungen, damit das Problem nicht auftritt?
Zitat von: TheTrumpeter am 31 Dezember 2020, 10:03:17
Oder verwenden die ev. deutlich höhere Spannungen, damit das Problem nicht auftritt?
...das weiß ich nicht, aber da dort noch einiges an "Analogtechnik" im Einsatz ist, könnte ich mir gut vorstellen daß das Signal über einen Schmitt-Trigger ausgewertet wird.
Ich würde mal ein abgeschirmtes Kabel versuchen oder den Transistoraufbau so nah wie möglich am Sensor anbringen.
Nachteil beim zweiten Punkt ... du benötigst ein 3-adriges Kabel (z.B. von einer 3.5mm Klinkenverlängerung --> siehe Anhang)
... und ... besorg dir NPN-Transistoren. (z.B. BC546, 547, 548 oder BC 337)
LG
Papa Romeo
Wäre es mit der npn Schaltungsvariante denn stabiler?
Was könnte ich noch versuchen? Macht es Sinn auf 5V zu gehen und vor dem GPIO noch einen Spannungsteiler anzubringen?
Grundsätzlich hatte ich ein 3-adriges Kabel (Fernmeldeleitung) vorgesehen, weil ich für alle anderen Sensoren 3 Adern brauche, das hätte ich dann gleich verwendet, weil genug übrig bleibt.
Geschirmte Kabel habe ich aktuell nicht in der nötigen Länge hier, nur das erwähnte verdrillte Kabel.
Es kommt jetzt darauf an, wie "kurz" Deine Impulse sind. Hatte mal (vor 20 Jahren) So etwas debugt, in dem ich über ein Relais gegangen bin. Das ist
1. Träger
2. Braucht es mehr "Strom" zum schalten
Dieses kann man aber auch über eine Transi-Schaltung erreichen.
Was ich jetzt nicht gelesen habe (oder Überlesen): Wie "lang" sind deine Impulse?
Zitat von: Wernieman am 31 Dezember 2020, 10:33:57
Was ich jetzt nicht gelesen habe (oder Überlesen): Wie "lang" sind deine Impulse?
Das weiss ich nicht, aber ich kann es testhalber mal über ein Relais schleifen und schauen ob das schaltet, werde dann berichten.
Zitat von: TheTrumpeter am 31 Dezember 2020, 10:42:46
Das weiss ich nicht, aber ich kann es testhalber mal über ein Relais schleifen und schauen ob das schaltet, werde dann berichten.
Das Relais schaltet, werde es jetzt mit dem GPIO verbinden und schauen ob es dann immer noch "Geisterimpulse" gibt. Zusätzlich höre ich jetzt, wenn es unerwartet zählt (wenn ich grad in der Nähe bin oder daneben sitz').
Nachtrag:
Relais ist mit dem GPIO verbunden, NC auf Masse. Oder soll ich NO auf Masse und zusätzlich den GPIO mit einem Pullup versehen?
Hinweis: Das Relais hat andere gravierende Nachteile, würde es jetzt wirklich "nur" zur Erkenntnisfindung verwenden!
Da ich von Elektronik nun gar keine Ahnung habe, ist mein Vorschlag eventuell völlig daneben...
Als ich meine Fenster/Türen mit Reed-Kontakten ausstattete und an einen Arduino anschließ, freute ich mich wie Bolle über die funktionierende Alarmanlage. Zumindestens solange, bis jemand irgendeine Leuchtstofflampe ausschaltete. Dann kam es immer zum Fehlalarm. Ein befreundeter Elektroniker hat mir aus meinen wenig vorhandenen Bauteilen eine Debouncerschaltung gebaut, welche bis heute störungsfrei läuft. Vielleicht hilft es bei deinem Problem.
Gruß Jens
Zitat von: Wernieman am 31 Dezember 2020, 11:02:11
Hinweis: Das Relais hat andere gravierende Nachteile, würde es jetzt wirklich "nur" zur Erkenntnisfindung verwenden!
Ich habe jetzt auch zusätzlich die Transistorschaltung von Papa Romeo beibehalten, d.h. einfach den Kollektorausgang als Relais-Trigger verwendet und das Relais auf low-level-Trigger umgeschaltet.
Welchen Nachteil hätte das Relais für mich noch?
Ich habe das Pluviometer noch nicht "ausgemessen", aber wenn die Angaben stimmen, ca. 0,3l/m². Lt. Wikipedia war die höchste Niederschlagsrate 38mm/min, das wären etwas mehr als 2 Impulse pro Sekunde. Habe es grad händisch so schnell wie möglich die Wippe bewegt, das geht problemlos.
Oder hast Du Bedenken wg. der Dauerhaltbarkeit?
...ein Relais prellt...
... die NPN-Schaltung ist vorzuziehen, da der Transistor ständig leitend ist und ein Störimpuls auf der Leitung den Transistor nicht noch leitender machen kann.
Nur das Anlegen der Masse an der Basis sperrt den Transistor und erzeugt am GPIO einen Impuls.
Bei der PNP-Schaltung ist der Transistor zwar auch ständig leitend, wird aber gesperrt durch Anlegen einer positiven Spannung.
Da die Basis über den Basiswiderstand gegen Masse "hoch liegt", können hier "Störimpulse" dann durchaus wirken.
@Jens: dein Vorschlag entspricht dem "C" den ich gestrichelt eingezeichnet habe.
LG
Papa Romeo
Zitat von: Papa Romeo am 31 Dezember 2020, 11:34:24
...ein Relais prellt...
Die Impulszählerfunktion der von mir verwendeten Firmware für den ESP32 hat eine einstellbare Entprellzeit, damit müsste sich ein Prellen doch abfangen lassen. Langsamer als die für die vorhin erwähnte höchste Niederschlagsrate nötigen ca. 0,4s zwischen den Impulsen wird das Relais kaum prellen, oder?
Zitat von: Papa Romeo am 31 Dezember 2020, 11:34:24
... die NPN-Schaltung ist vorzuziehen, da der Transistor ständig leitend ist und ein Störimpuls auf der Leitung den Transistor nicht noch leitender machen kann.
Nur das Anlegen der Masse an der Basis sperrt den Transistor und erzeugt am GPIO einen Impuls.
Bei der PNP-Schaltung ist der Transistor zwar auch ständig leitend, wird aber gesperrt durch Anlegen einer positiven Spannung.
OK, dann werde ich bei Gelegenheit auf npn umbauen.
Ist der ganze Spuk dann sicher weg? Dann spar' ich mir die weitere Fehlersuche und besorg' einfach einen npn-Transistor.
Zitat von: Papa Romeo am 31 Dezember 2020, 11:34:24
@Jens: dein Vorschlag entspricht dem "C" den ich gestrichelt eingezeichnet habe.
Ich dachte der ist zum Verlängern der Impulse und nicht zum Einfangen von kurzen Störimpulsen?
Zitat von: TheTrumpeter am 31 Dezember 2020, 11:44:22
Ich dachte der ist zum Verlängern der Impulse und nicht zum Einfangen von kurzen Störimpulsen?
...das ist dasselbe....wenn der REED schließt wird der C entladen. Öffnet der REED beginnt sich der C über den Widerstand der von + zur Basis führt geladen.
Die Ladezeit berechnet sich aus --> tau = R * C
Solange die Spannung über dem C nicht über 0.7 Volt angestiegen ist, bleibt der Transistor gesperrt und der Ausgang ist "HIGH".
Also kann ich über die Größe von R und C bestimmen wie lange der Transistor gesperrt bleibt.
Kommt während der Zeit in der die Spannung noch nicht die 0.7 Volt überschritten und den Transistor durchgesteuert hat, ein neuer Impuls (z.B. durch Prellen), wird der C wieder entladen
aber es wird kein neuer Impuls am Ausgang erzeugt. Der Ausgang bleibt also so lange "HIGH" bis die Spannung an der Basis die 0.7 Volt überschritten hat und den Transistor durchsteuert --> Ausgang ist "LOW".
Ich hoffe das ist so verständlich.
PS: Um Missverständnisse zu vermeiden. Die Ausführungen beziehen sich auf die NPN-Schaltung
LG
Papa Romeo
Also bisher herrscht mit der Schaltung über das Relais absolute Ruhe. Ich habe gerade die Wippe wieder händisch bewegt, um zu schauen ob es wirklich noch funktioniert.
Na ... dann passt´s doch ;) ... die Trägkeit des Relais zum Debouncen ausgenutzt....
LG
Papa Romeo
Außerdem braucht das Relais mehr "Leistung", als Induktiv raufkommt.
Würde trotzdem mittelfristig auf eine Transi-Schaltung ausweichen ....
ich würde mal das verdrillte kabel probieren.
falls mehr wie 2 adern vorhanden, genau schauen, welche pärchen verdrillt sind.
Zitat von: frank am 02 Januar 2021, 14:12:52
ich würde mal das verdrillte kabel probieren.
falls mehr wie 2 adern vorhanden, genau schauen, welche pärchen verdrillt sind.
... wenn bereits ein 3-adriges Kabel vorhanden ist, würde ich die Transistorstufe direkt am Sensor anbringen.
So, mal ein kurzer Zwischenstand...
Habe am Samstag auf die npn-Schaltung (µC-seitig) umgebaut, aber auch damit kommt es zu den "Geisterimpulsen".
Nun habe ich das vorhandene Kabel gegen ein 2-poliges verdrilltes Kabel getauscht, bereits in der Ziel-Länge von ca. 8m. Die npn-Transistorschaltung (µC-seitig) ist weiterhin dran.
Was mir nicht klar ist:
Wieso macht es einen Unterschied die Transistor-Schaltung beim Sensor anzubringen?
Wird es auf der "Rückleitung" zum GPIO nicht auch zu Störimpulsen kommen? (Die Rückleitung wäre nicht geschirmt und auch nicht mit einer anderen Leitung verdrillt.)
Oder werden die durch den Transistor sensorseitig gegen Masse "weggebügelt"?
Und noch eine Frage:
Würde es robuster weden, wenn ich statt aktuell 3V3 auf 5V gehe und den Eingang nochmal mittels Spannungsteiler auf 3V3 reduziere?
Zitat von: TheTrumpeter am 18 Januar 2021, 11:59:06
Wieso macht es einen Unterschied die Transistor-Schaltung beim Sensor anzubringen?
Weil Störimpulse an der Basis eines Transistors eher Wirkung haben als am Kollektor. Umso kürzer ich also die Leitung zu Basis halte umso weniger "Angriffsfläche" haben Störimpulse. Eine lange Leitung an der Basis kann wie eine Antenne wirken, was hier anscheinend auch irgendwie passiert, was aber wiederum nicht sein dürfte, da der Transistor bei nicht betätigtem REED an der Basis +Ub erhält und damit voll durchgesteuert ist und somit den Ausgang auf Masse zieht. Nur eine "Masse" an der Basis, die ja dann der REED bereitstellt oder unter großen Ausnahmen eventuell ein "
gewaltiger" negativer Impuls, veranlasst das "Sperren" des Transistors und somit eine Änderung am GPIO auf "HIGH".
Also macht es mich doch recht stutzig, dass du trotz der NPN-Schaltung "Geisterimpulse" hast.
Dein REED ist schon o.k. ?
Hast du mal
nur die "lange Leitung" an die Transistorschaltung gehängt
ohne REED ? Was passiert dann ?
LG
Papa Romeo
Zitat von: Papa Romeo am 18 Januar 2021, 13:54:32
Hast du mal nur die "lange Leitung" an die Transistorschaltung gehängt ohne REED ? Was passiert dann ?
Genau die Idee hatte ich vorhin beim Auslöten des bisherigen Anschlusskabels vom Sensor auch. Deshalb habe ich die Transistorschaltung nochmal aufgebaut und das offene Kabel dran angeschlossen. Das ist nun als 2. Counter an demselben µC konfiguriert.
Bin mal gespannt was am Abend passiert... ich schaffe es ja immer noch nicht die "Geisterimpulse" zu reproduzieren, wenngleich sie jeden Abend und jeden Morgen während der Zeit des "künstliche Lichts" auftreten.
Zitat"künstliche Lichts"
Hast Du noch "alte" Leuchtstoffröhren?
Wenn der Starter Altert oder die Zünddrossel schlecht entstöhrt ist, kann es zu Störimpulen führen ...
Zitat von: Wernieman am 18 Januar 2021, 15:21:06
Hast Du noch "alte" Leuchtstoffröhren?
Wenn der Starter Altert oder die Zünddrossel schlecht entstöhrt ist, kann es zu Störimpulen führen ...
1 einzige im Wohnraum, aber die hat auch schon ein EVG. Die habe ich auch schon öfter zu Reproduktionszweckenbetätigt, aber nie hat es die Störimpulse verursacht.
Update:
Die übrigen Hausbewohner sind vor ein paar Minuten unter Betätigung diverser Lampen nach Hause gekommen, seitdem ist der Zähler der "offenen Leitung" (altes Kabel vom Sensor) 2x inkrementiert worden. Die neue verdrillte Leitung zum Sensor steht noch auf 0.
Bei beiden Zählern ist µC-seitig die npn-Transistorschaltung von PapaRomeo davor, allerdings mit unterschiedlichen Transistoren und unterschiedlichen PullUps am Kollektor.
(Da wo jetzt die verdrillte Leitung dran ist, gab es heute Früh noch "Geisterimpulse" mit dem Original-Kabel vom Sensor.)
Beide Schaltungen sind an einem Prototyping-Board gesteckt und verwenden dieselbe Masse und Vcc.
...die Pullup´s am Kollektor sind nicht so kritisch und ich glaub auch nicht das die "Einstreuung" dort erfolgt, da am GPIO selber ja "Massepegel" herrscht.
Welche Widerstandswerte hast du an Basis gegen +Ub.
LG
Papa Romeo
Zitat von: Papa Romeo am 18 Januar 2021, 17:16:59
...die Pullup´s am Kollektor sind nicht so kritisch und ich glaub auch nicht das die "Einstreuung" dort erfolgt, da am GPIO selber ja "Massepegel" herrscht.
Welche Widerstandswerte hast du an Basis gegen +Ub.
Habe mich streng an Deinen Schaltplan gehalten, 4K7.
Übrigens habe ich auch schon Zähler mit der verdrillten Leitung :-(
Leider hatte ich bis vor ein paar Minuten das Logging am zusätzlichen "Dummy" (offene Leitung) noch nicht aktiviert, drum kann ich noch nicht sagen, ob es zu den Impulsen von der verdrillten Leitung auch gleichzeitig Impulse auf der nicht-verdrillten Leitung gibt.
Werde die Schaltung in den nächsten Tagen noch verlöten, um sicher keine Wackelkontakte zu haben, aber ich sitze den ganzen Tag neben der Schaltung und es bewegt sich nichts. Kaum werden Lampen in anderen Räumen zufällig geschaltet, kommen die Impulse. Wenn ich selbst aufsteh' und bewusst was ein- oder ausschalte, tut sich nix.
...könntest ja noch´n dritten Testaufbau machen ...
die NPN-Schaltung ohne REED über eine lange 3-adrige Leitung an nen GPIO hängen (simmuliert dann die Transistorschaltung direkt am REED) und schauen ob die
Impulse da auch kommen.
Was hast´n für ne Spannungsversorgung ?
LG
Papa Romeo
Zitat von: Papa Romeo am 18 Januar 2021, 19:01:54
...könntest ja noch´n dritten Testaufbau machen ...
die NPN-Schaltung ohne REED über eine lange 3-adrige Leitung an nen GPIO hängen (simmuliert dann die Transistorschaltung direkt am REED) und schauen ob die
Impulse da auch kommen.
Was hast´n für ne Spannungsversorgung ?
3. Testaufbau werde ich in den nächsten Tagen machen, ja.
Was ich bisher gesehen habe, scheint es zu jedem Impuls der verdrillten Leitung auch zeitgleich einen auf der unverdrillten zu geben. Umgekehrt ist das nicht der Fall. Bedeutet aber, dass Wackler eher ausgeschlossen sind.
Versorgung passiert aktuell über ein altes Steckernetzteil und ein abgeschnittenes altes USB1.1 Kabel auf die 5V vom ESP32. Die 3V3 für die Transistorschaltung greife ich auch vom ESP32 ab.
Mittelfristig kommt ein PCB Netzteil vom chinesischen Online-Händler zum Einsatz.
Als ich den Impulszähler am ESP8266 angeschlossen hatte, war der über ein anderes Steckernetzteil auf den Mini-USB-Anschluss versorgt.
Update:
Ich habe heute Früh endlich einen Weg gefunden die "Geisterimpulse" zu reproduzieren:
Beim Fahren der Rollo im Arbeitszimmer kommt es beim Ein- oder Ausschalten am oberen/unteren Anschlag zu zumindest 1 Impuls, sowohl bei der Fahrt runter als auch rauf.
Habe dann kurzerhand die Spannungsversorgung gegen eine Powerbank getauscht, weil damit Schwankungen auf der Sekundärseite durch etwaige Induktionseffekte auf der Primärseite ausgeschlossen sind, oder anders gesagt mit der Powerbank müssten die 5V völlig störungsfrei anliegen, egal was sich im Stromnetz meines Hauses auch tut.
Auch mit der Powerbank treten die "Geisterimpulse" beim Bewegen der Rollo sofort auf. Die Spannungsversorgung des ESP32 kann meiner Meinung daher nicht ursächlich sein. (Das hatte ich aber ohnehin nicht erwartet, denn die "Geisterimpulse" sind weg sobald die lange Leitung entfernt wird.)
Ergänzend: Beide Leitungen (verdrillt und unverdrillt) führen derzeit zu genau dem Fenster mit dessen Rollo ich die Impulse erzeugen kann. Mittlerweile sehe ich auch, dass das Ausschalten eines Raffstore-Motors in deutlicher Entfernung ebenfalls einen Impuls erzeugt.
Gestern Abend und heute Früh konnte ich einen Impuls mit hoher Wahrscheinlichkeit dem Licht am WC zuordnen, wenngleich alle Versuche dies zu reproduzieren bisher gescheitert sind.
zeig mal ein foto von deinem testaufbau.
hast du dort "fliegende" kabelverbindungen?
ein verdrilltes kabel mit abschirmung probieren.
dabei die abschirmung nur einseitig am esp auf masse legen. aber einen massepunkt nutzen, der dicht am netzteil liegt, damit störströme nicht durch die ganze schaltung fliessen müssen.
Zitat von: frank am 19 Januar 2021, 10:38:43
hast du dort "fliegende" kabelverbindungen?
Was meinst Du mit "fliegende" Kabelverbindungen?
Ich habe ein verdrilltes (nicht geschirmtes) Kabel am Pluviometer angelötet, am anderen Ende (ca. 8m) geht es dzt. in eine Wago-Klemme, von dort ein 10cm-Jumperkabel auf ein Prototyp-Board zum Stecken. Dort ist dann die Transistorschaltung gesteckt und mittels 30cm-Jumperkabel zum ESP32. Masse und 3V3 für die Transistorschaltung greife ich ebenfalls mittels 30cm Jumperkabel vom ESP32 ab.
Die zweite "offene" Leitung ist 2-adrig, nicht verdrillt und ungeschirmt, der Rest gleich.
Zitat von: frank am 19 Januar 2021, 10:38:43
ein verdrilltes kabel mit abschirmung probieren.
Das sollte passend sein, oder? https://www.hornbach.at/shop/Telefonleitung-JYSTY-2x2x0-6-mm-10-m-grau/3869906/artikel.html
Zitatvier Adern zum Sternvierer verseilt und abgeschirmt
Habe so ein Kabel gerade nicht verfügbar und könnte zwischenzeitig höchstens noch versuchen die Transistorschaltung wie vorgeschlagen statt µC-seitig sensorseitig anzubringen.
Zitat von: frank am 19 Januar 2021, 10:38:43
dabei die abschirmung nur einseitig am esp auf masse legen. aber einen massepunkt nutzen, der dicht am netzteil liegt, damit störströme nicht durch die ganze schaltung fliessen müssen.
Könnte ich dann ja gleich nach dem Netzteil anklemmen, wo die Verteilung zu allen Komponenten erfolgt.
Nachtrag: Insgesamt schockiert es mich schon ein bisschen, dass es offenbar durch Induktion in der Leitung zu solchen Effekten kommt. Die Leitungen liegen nicht parallel zu irgendwelchen 230V-Leitungen, aber ganz offenbar wird das Problem vorwiegend durch die Selbstinduktion beim Abschalten von Verbrauchern verursacht, oder?
Zitat von: frank am 19 Januar 2021, 10:38:43
ein verdrilltes kabel mit abschirmung probieren.
dabei die abschirmung nur einseitig am esp auf masse legen. aber einen massepunkt nutzen, der dicht am netzteil liegt, damit störströme nicht durch die ganze schaltung fliessen müssen.
nee...wenn er eine abgeschirmte Leitung mit zwei Adern hat, würde ich bei dieser Länge entweder nur eine Ader verwenden und Eine parallel zur Schirmung oder Beide parallel und die Abschirmung beidseitig anschließen.
LG
Papa Romeo
...kannst auch das mal versuchen.
Eventuell sogar R1 auf z.B. 1 kOhm verkleinern und R2 auf 10 kOhm erhöhen. Somit liegt die Basis nicht mehr direkt an der "Antenne".
Zitat von: Papa Romeo am 19 Januar 2021, 12:05:06
...kannst auch das mal versuchen.
Eventuell sogar R1 auf z.B. 1 kOhm verkleinern und R2 auf 10 kOhm erhöhen. Somit liegt die Basis nicht mehr direkt an der "Antenne".
Habe derzeit:
R1 = R2 = 4k7
Mit der Rollo konnte ich es schon mal nicht mehr reproduzieren, händische Betätigung der Wippe wird sauber gezählt. Lasse das Logging dran hängen, mal sehen ob später was auftritt.
Da die meistens "Störimpulse" Hochfrequentig sein dürften, wie wäre dann noch ein Entsörkondensator dazu?
Also einfach mal parallel zu Reed auf Transiseite ein 100nF o.Ä.?
Kann gerade nicht Malen ...
Zitat von: Wernieman am 19 Januar 2021, 14:08:11
Da die meistens "Störimpulse" Hochfrequentig sein dürften, wie wäre dann noch ein Entsörkondensator dazu?
Also einfach mal parallel zu Reed auf Transiseite ein 100nF o.Ä.?
...wenn dann in diesem Fall parallel zu R1. Parallel zum REED zieht der Störimpuls die Basis gegen Masse und erzeugt einen Ausgangsimpuls.
LG
Papa Romeo
Zitat von: Wernieman am 19 Januar 2021, 14:08:11
Da die meistens "Störimpulse" Hochfrequentig sein dürften, wie wäre dann noch ein Entsörkondensator dazu?
Also einfach mal parallel zu Reed auf Transiseite ein 100nF o.Ä.?
Du meinst vmtl. das, was PapaRomeo in seiner ursprünglichen Schaltung auch schon "strichliert" (optional) eingezeichnet hat? https://forum.fhem.de/index.php?action=dlattach;topic=116386.0;attach=143292;image
Kann ich einfach 100nF nehmen oder muss das zum Transistor passen?
Auf dem aktuell verwendeten steht "s0 25 C338", habe auch einen "t8 40 C338" sowie "BC5478", "C546B PH66", "78L 12AWC 8614" hier, irgendwann krieg' ich auch eine ganze Menge "BC546B".
Zitat von: TheTrumpeter am 19 Januar 2021, 15:01:49
Du meinst vmtl. das, was PapaRomeo in seiner ursprünglichen Schaltung auch schon "strichliert" (optional) eingezeichnet hat? https://forum.fhem.de/index.php?action=dlattach;topic=116386.0;attach=143292;image
... ist aber dort zur Entprellung (Debouncing) gedacht, kann sich allerdings zur Entstörung negativ auswirken ....
Zitat von: TheTrumpeter am 19 Januar 2021, 15:01:49
Kann ich einfach 100nF nehmen oder muss das zum Transistor passen?
Auf dem aktuell verwendeten steht "s0 25 C338", habe auch einen "t8 40 C338" sowie "BC5478", "C546B PH66", "78L 12AWC 8614" hier, irgendwann krieg' ich auch eine ganze Menge "BC546B".
Die Transistoren sind alles NPN-Typen die sich nur im
hfe(2) (Wechselspannungsverstärkungsfaktor) und im max.
Ic (Kollektorstrom) unterscheiden.
s0 25 C338 --> BC 338 - 25 --> hfe(2) = 160 - 400
t8 30 C338 --> BC 338 - 40 --> hfe(2) = 250 - 630
--> max. Ic = 800 mA
BC 5478 --> BC 547 B
C546 PH66 --> BC 546 A
--> max. Ic 100 mA
Der 78L 12AWC 8614 würde ich sagen ist ein 12V 100 mA Spannungsregler.
Bei den Kondensatoren muss nichts zu den Transistoren passen.
LG
Papa Romeo
D.h. zur Entstörung müsste es so aussehen wie im Anhang dargestellt?
Welche Kapazität soll der Kondensator haben?
100nF wie von Wernieman vorgeschlagen?
na...Enstoerung2.GIF ist keine so gute Idee. Ein Kondensator wirkt im "Einschaltmoment" wie ein satter Kurzschluß und somit bekommt die Basis des Transistors die
volle Ub ab, was er eigentlich nicht so gerne hat und dir wahrscheinlich sogar übel nehmen wird und sich in den Halbleiterhimmel verabschiedet.
Enstoerung.GIF kannst du mal mit nem 100nF C testen. Dort wirkt dann immer noch R2 als Basiswiderstand und begrenzt den Basisstrom.
LG
Papa Romeo
Sehe ich genauso ....
Danke, dann werde ich mal ein paar unterschiedliche Kondensatoren organisieren.
Übrigens herrscht immer noch "Stille", gestern hatte ich zwischen 16:00 und 20:00 5 "Geisterimpulse".
So, mal ein neuer Zwischenstand....
Mit den beiden Widerständen R1=R2=4k7 ist es vereinzelt auch zu Störimpulsen gekommen, aber deutlich weniger als mit der "einfacheren" Schaltung.
Habe dann einen Kondensator mit 100nF parallel zu R1 gehängt, damit fange ich noch 1-2 Störimpulse pro Tag ein (typischerweise zwischen 17:30 und 20:00 Uhr), die Quelle habe ich noch nicht identifiziert.
Macht es Sinn mit dem aktuellen Aufbau ("im Trockenen") weiter herumzuspielen (Widerstände ändern, Kondensator ändern) oder soll ich die Leitung erstmal an die richtige Stelle bringen?
Ich habe jetzt noch R1=2k und R2=9k9 umgesetzt, mal sehen.
Hallo,
ich hatte auch mal Versuch mit Reed und ESP am laufen. Bei mir lief alles über 1m nicht stabil. Ich konnte in dem Baum nichts lesen mit einer kurzen Kabellänge.
Warum eigendlich die 8 m?
Peter
Zitat von: Peteruser am 27 Januar 2021, 10:24:32
Warum eigendlich die 8 m?
Werden eher 7m werden, aber das macht auch keinen Unterschied.
Die "Wetterstation" (DHT22 & Pluviometer) kommen aufs äusserste Ende des Garagendachs, weil dort der Regen vom höheren Haus bei Wind sicher nicht mehr abgeschirmt wird.
Der ESP zur Auswertung der "Wetterstation" sowie weiterer Sensoren (3x Bodenfeuchte, ein weiterer DHT22) und Ansteuerung der Magnetventile ist wegen der Gegebenheiten in der Garage (bzw. dem Abstellraum dahinter) am Grundriss ca. 6m entfernt, bisschen Kabel vom ESP nach oben und bisschen Kabel vom Pluviometer nach unten macht in Summe ca. 7m.
Habe schon überlegt der Wetterstation einen zusätzlichen ESP8266 zu spendieren, aber der wäre dann draussen und ausserdem bin ich nicht sicher, ob die WLAN-Abdeckung bis dahin reicht.
Zitatoder soll ich die Leitung erstmal an die richtige Stelle bringen?
"geschmackssache" würde ich meinen.
letztendlich soll es ja an einer bestimmten position funktionieren.
vielleicht sind die störungen dort geringer.
oder noch heftiger. ;)
Zitat von: TheTrumpeter am 27 Januar 2021, 10:36:04
Habe schon überlegt der Wetterstation einen zusätzlichen ESP8266 zu spendieren, aber der wäre dann draussen und ausserdem bin ich nicht sicher, ob die WLAN-Abdeckung bis dahin reicht.
..schon mal über den Einsatz eines NRF24L01 nachgedacht. Höhere Reichweite und sehr geringer Stromverbrauch. Könnte sogar mit ner Solarzelle funktionieren.
Seit ich mein Projekt hier mal vorgestellt habe, mache ich es mit fast allen meinen Sensoren so. Ein Gateway sammelt die Daten aller Sensoren und sendet sie dann an FHEM
und nicht jeder Sensor braucht ne eigene IP.
LG
Papa Romeo
So, mal wieder ein Zwischenstand...
Mit der letzten Änderung auf R1=2k und R2=9k9 habe ich noch vereinzelt "Geisterimpulse" gesehen.
Habe dann am Wochenende kurzerhand auf ein geschirmtes Kabel gewechselt, weil ich zufällig was vom Baumarkt gebraucht habe.
Die Zusatzschaltung habe ich dann weggelassen, weil ich "Ruhe" erwartet habe, aber weit gefehlt. Auch das geschirmte Kabel schnappt die "Geisterimpulse" munter auf, ich konnte keine Verbesserung ggü. dem ungeschirmten Kabel feststellen.
Ich habe nun wieder die letzte Schaltung drangebaut, R1 habe ich noch auf 1k8 geändert.
Bisschen spiele ich noch herum, aber schön langsam glaube ich, dass ich ohne die Entprellung durch das Relais nicht ans Ziel kommen werde.
Und wie sieht es mit dem Test durch Kondensatoren aus?
Ich hätte da schon noch was, weiß aber nicht ob ich dir das zumuten kann. Hatte ich irgend wann mal bei einem ähnlichen Problem gemacht:
Dein REED startet ein Monoflop (muss allerdings mit kurzem Kabel ziemlich direkt am REED sitzen) dieses schaltet den Ausgang für eine definierte Zeit auf "HIGH".
Der ESP wertet dann diese Zeit aus. Alles was kürzer oder länger ist wird ignoriert.
Ich hatte das damals mit einem PIC 12F675 gemacht, geht aber auch ein NE555, CD4538 oder 74LS221 o.ä. .
Vorteil des PIC er braucht keine externen Bauteile für die Zeitbestimmung.
LG
Papa Romeo
Zitat von: Wernieman am 02 Februar 2021, 10:05:30
Und wie sieht es mit dem Test durch Kondensatoren aus?
Habe 100nF parallel zu R1 hängen so wie ich weiter oben in der Schaltung "Entstoerung.GIF" eingezeichnet habe. Andere Werte habe ich noch nicht probiert.
Zitat von: Papa Romeo am 02 Februar 2021, 10:17:17
Dein REED startet ein Monoflop (muss allerdings mit kurzem Kabel ziemlich direkt am REED sitzen) dieses schaltet den Ausgang für eine definierte Zeit auf "HIGH".
Der ESP wertet dann diese Zeit aus. Alles was kürzer oder länger ist wird ignoriert.
Ich glaube da bleib' ich dann doch bei der Relais-Entprellung. Damit spar' ich die ganze Transistor-Schaltung auch ein. Ein Relais habe ich an dem 8er Relais für die Magnetventile ohnehin noch frei.
... was du noch versuchen kannst. Hast aber ne Totzeit von fast ner Sekunde bis ein neuer Impuls erkannt wird.
LG
Papa Romeo
den 100nF würde ich aber drinlassen ....
Zitat von: Papa Romeo am 02 Februar 2021, 10:51:35
... was du noch versuchen kannst. Hast aber ne Totzeit von fast ner Sekunde bis ein neuer Impuls erkannt wird.
Wenn die Angabe zu dem Pluviometer stimmt, sollte ich nicht mehr als 0.5s Verzögerung haben, um bei starken Niederschlägen nicht mal einen Impuls zu übersehen.
Kann ich statt den 10k einfach 5k nehmen, um tau zu halbieren?
Oder lieber 50nF statt 100nF? (50nF habe ich nicht, aber ich hätte 2 100nF für eine Serienschaltung.)
Zitat von: TheTrumpeter am 02 Februar 2021, 11:29:14
Kann ich statt den 10k einfach 5k nehmen, um tau zu halbieren?
..ja klar, 2 x 10 kOhm parallel oder einen 4k7 um in der E12/24 Reihe zu bleiben.
Zitat von: TheTrumpeter am 02 Februar 2021, 11:29:14
Oder lieber 50nF statt 100nF? (50nF habe ich nicht, aber ich hätte 2 100nF für eine Serienschaltung.)
...must hinschauen...ist ein Elko ... also keine nF (nano) sondern uF (mikro), aber würde auch gehen. In diesem Fall dann 47 uF.
LG
Papa Romeo
Zitat von: Papa Romeo am 02 Februar 2021, 12:08:02
...must hinschauen...
Ist mir jetzt peinlich, ich hab' auch die Transistorschaltung mit 100µF statt 100nF aufgebaut.
Das kann dann ja wohl nix bringen. In meiner Bastelkiste habe ich 2 Elkos mit 22nF, der Rest ist 1µF oder größer.
Und dann sehe ich da noch 2, wo ich nicht weiss was es ist. Da steht "122k." drauf, der Punkt könnte eine "4" sein? In der 2. Zeile steht "X7R100". Könnte das ein 100nF sein?
Zitat von: TheTrumpeter am 02 Februar 2021, 12:59:19
Da steht "122k." drauf, der Punkt könnte eine "4" sein? In der 2. Zeile steht "X7R100". Könnte das ein 100nF sein?
X7R100 --> Bauform / Spannungsfestigkeit
122k --> 12 + 2 Nullen --> 1200pF oder 1,2 nF
LG
Papa Romeo
EDIT: die 22nF kannst auch anstatt den 100 nF nehmen oder 2 parallel.
Elkos haben eine große Kapaziztät, sind aber "relativ" Langsam. Der 100nf ist für die "schnellen" Störungen ... und Hauptsache da. Also besser ein 22nF als keiner,
(Sorry für die extreme Vereinfachung)
So, habe nun den 100µF gegen 22nF getauscht.
Und warum nicht beide drinlassen .. also parallel?
Zitat von: Wernieman am 02 Februar 2021, 16:02:30
Und warum nicht beide drinlassen .. also parallel?
Sag' Du es mir :D
Ich habe keine Ahnung von Entstörung.
Ich dachte bei Parallelschaltung von Kondensatoren ist die resultierende Kapazität die Summe der Einzelkapazitäten. Wenn ich also den 100µF auch drin lasse, habe ich in Summe 100,022µF und es ist praktisch genauso langsam wie mit dem 100µF alleine.
(Ich könnte die beiden 22nF, die ich habe, parallel schalten, dann komme ich auf 44nF und damit näher an den usprünglichen Vorschlag von 100nF.)
Oder verstehe ich was falsch?
Der niederkapazitive "Abblockkondensator" parallel zum höherpazitiven "Glättungskondensator" macht Sinn bei Spannungsversorgungen, wobei der Abblockkondensator nicht nur einfach zwischen Plus und Gnd sein sollte, sondern zudem auch so nah wie möglich am zu enstörenden Bauteil, sprich hier "ESP", damit er Wirkung zeigt.
Sieht man z.B. oft bei Platinen, wo auf der Lötseite klein gelbe Dinger zwischen zwei Pins von IC´s gelötet sind, also nicht mal auf der Platine sitzen. Das sind diese
Abblockkondensatoren. Hat was mit den Impedanzen der C´s zu tun. Da aber weiter´s darauf einzugehen, würde den Rahmen sprengen.
Das hat aber nicht´s mit dem zu tun, was wir hier am GPIO tun. Hier ist rein die Kapazität des Kondensator massgebend, da wir uns dessen Ladeeigenschaften zu nutze machen. Um so größer der C, umso länger braucht er zum Laden, umso länger kann ich störende Pegeländerungen am GPIO verhindern.
LG
Papa Romeo
Hm... schön langsam kenne ich mich nicht mehr aus.
Wenn ich mir die Schaltung "Entstoerung.gif" ohne Kondensator überlege,
- dann fliesst der Strom bei offenem Reed (und ohne Störungen) im Transistor von B nach E und damit auch von C nach E, weshalb der GPIO "low" sieht.
- Bei geschlossenem Reed (oder Störungen, die eine Potenzialabsenkung bei C verursachen) sperrt der Transistor, sodass sich bei C (und damit am GPIO) "high" einstellt.
Nur wie verhält sich jetzt der zusätzliche Kondensator?
- Beim Anlegen der Spannung lädt er sich auf, währenddessen fliesst der Strom über R1, sodass wie oben beschrieben bei offenem Reed im Transistor von B nach E und damit von C nach E fliesst, GPIO sieht "low".
- Nach dem Aufladen fliesst der Strom weiterhin über R1, sodass immer noch "low" am GPIO ist.
- Bei geschlossenem Reed entlädt sich der Kondensator, sodass während der Entladezeit noch immer Strom von B nach E und damit von C nach E fliessen kann? Der GPIO sieht immer noch "low".
- Erst wenn der Kondensator vollständig entladen ist, sperrt der Transistor, sodass am GPIO "high" anliegt.
Das führt dazu, dass ein ganz kurzes Schließen vom Reed (oder Störimpulse) den Transistor nicht zum Sperren bringen, korrekt?
Also macht es Sinn den Kondensator "so groß wie möglich" zu machen, um möglichst viele Störungen "wegzufiltern" aber umgekehrt so "klein wie nötig" zu machen, damit das kurze Schließen des Reed-Kontakts während der Wipp-Bewegung des Pluviometers noch zum vollständigen Entladen des Kondensators führt, sodass sich tatsächlich "low" an B einstellt und daher "high" am GPIO.
Nun habe ich durch das versehentliche Verwenden von 100µF statt 100nF gesehen, dass die Wipp-Bewegung des Pluviometers vom ESP korrekt erkannt wird, es aber trotzdem noch zu vereinzelten Störungen kommt.
Müsste die Kapazität denn dann nicht noch weiter erhöht werden anstatt sie zu verringern?
... am 19. Januar habe ich dir von Enstoerung2 abgeraten und auch begründet warum. Weiters hab ich geschrieben
Zitat von: Papa Romeo am 19 Januar 2021, 18:12:30
Enstoerung.GIF kannst du mal mit nem 100nF C testen. Dort wirkt dann immer noch R2 als Basiswiderstand und begrenzt den Basisstrom.
Ich hätte vielleicht das "testen" hervorheben sollen bzw. gleich sagen sollen, dass der C da oben drin wenig Sinn macht ... sorry mein Fehler!
Was passiert:
Einschaltmoment und REED offen: der C lädt sich auf (Ub-0.7V) / 2 = (3.3V -07V) / 2 = 1.3 Volt - der Transistor schaltet durch --> Ausgang LOW
REED geschlossen : der C lädt sich auf Ub = 3.3 Volt auf, die Basis erhält keine Spannung mehr, der Transistor sperrt --> Ausgang HIGH
REED öffnet: der C entlädt sich über R1 wieder auf die 1.3 Volt, die Basis erhält wieder Spannung und der Transistor steuert durch --> Ausgang LOW
Das einzige was er bewirken kann, größere Störimpulse auf der Sensorleitung gegen Masse, in diesem Fall Ub (wechselspannungsmäßig ist Gnd und Ub das Selbe)
zu führen.
LG
Papa Romeo
Ok, dann kann ich den Kondensator ja wieder rausschmeissen und höchstens noch R1 verringern, bin aktuell auf 2k oder 1k8.
Und wenn das auch nix ist, kann ich noch den Vorschlag von heute prüfen (mit dem 100µF und 4k7), ansonsten wird's wohl die Entstörung durch das Relais werden.
Zitat von: TheTrumpeter am 02 Februar 2021, 21:58:05
Ok, dann kann ich den Kondensator ja wieder rausschmeissen und höchstens noch R1 verringern, bin aktuell auf 2k oder 1k8.
Habe das dann gemacht und R1 auf 1k verringert, ohne Erfolg.
Zitat von: TheTrumpeter am 02 Februar 2021, 21:58:05
Und wenn das auch nix ist, kann ich noch den Vorschlag von heute prüfen (mit dem 100µF und 4k7), ansonsten wird's wohl die Entstörung durch das Relais werden.
So, habe das nun aufgebaut, statt dem Vorwiderstand mit R=100 habe ich ca. R=162. Da ich nix unter 400 finden konnte, habe ich ein paar parallel geschaltet und komme so auf die 162.
Mal wieder ein Update...
Mit der "Alternativschaltung" von zuletzt war das Problem leider auch nicht weg.
Ich habe der Vollständigkeit halber dann die Schaltung ans andere Ende der Leitung gepackt, also direkt beim Sensor.
Da ist mir dann aufgefallen, dass bei Störungen der Zähler nur 1 hochzählt, bei "echten" Impulsen aber 2. Zuerst dachte ich an ein "Prellen", da ich dzt. keinen echten Reed dran habe, sondern einfach zwei kurze Kabelenden, die ich zum Simulieren des Reed-Kontakts "zusammenhalte". Aber es werden immer 2 Impulse gezählt, egal wie sehr ich "wackle". (Wenn ich 2x kurz hintereinander kontaktiere, kommen trotzdem nur 2 Impulse (verwende R=10k und C=100µF um lange genug Zeit zu haben) und nicht etwa 3 oder 4.)
Ich gehe davon aus, dass das Verhalten auch so ist, wenn ich die Schaltung zum ESP packe; dort habe ich es nur nie so genau beobachtet.
Diesen Effekt kann ich nun ausnutzen, um Softwareseitig zwischen "Wackler" und "echtem Impuls" zu unterscheiden, wenngleich das nicht wirklich schön ist.
PS: Der Test mit sensorseitig platzierter Transistorschaltung steht noch aus, vielleicht löst sich das Problem ja damit. Ehrlich gesagt gehe ich aber nicht davon aus.
Zitat von: TheTrumpeter am 08 Februar 2021, 10:59:32
Da ist mir dann aufgefallen, dass bei Störungen der Zähler nur 1 hochzählt, bei "echten" Impulsen aber 2.
... stellt sich dar wie ein Monoflop-Verhalten, bei der sowohl die steigenden als auch die fallenden Flanken ausgewertet werden.
Da die "Entprellung" durch den 100 uF ja aber anscheinend tadellos funktioniert
Zitat von: TheTrumpeter am 08 Februar 2021, 10:59:32
... Wenn ich 2x kurz hintereinander kontaktiere, kommen trotzdem nur 2 Impulse
kann für diesen Effekt dann eigentlich nur noch die "softwareseitige" Auswertung der Impulse verantwortlich sein.
LG
Papa Romeo
Zitat von: Papa Romeo am 08 Februar 2021, 11:35:38
kann für diesen Effekt dann eigentlich nur noch die "softwareseitige" Auswertung der Impulse verantwortlich sein.
Tja, ich habe jetzt noch einen Versuch gemacht und glaube an gar nichts mehr.
Flankenauswertung war immer "rising".
SW-Debounce-Zeit auf 0ms => >50 Inkremente
SW-Debounce-Zeit auf 100ms => >2 Inkremente, bei erneuter Kontaktierung innerhalb 1s kommen noch mal >2 Inkremente
SW-Debounce-Zeit auf 500ms => 2 Inkremente
SW-Debounce-Zeit auf 5000ms => 1 Inkrement
Habe dann auf R=25k geändert, da kommt es bei SW-Debounce 500ms meist zu 3 Inkrementen bei kurzer Kontaktierung.
Wenn ich den Kontakt länger schließe, kommt es zu 1 Inkrement beim Schließen und nach dem Öffnen zu 2-3 weiteren Inkrementen.
Mit R=4k7 sind es bei 500ms Debounce 2 Inkremente bei kurzzeitiger Kontaktierung bzw. 1+1 beim langen Schließen und Öffnen.
Schmeisse ich den Kondensator raus, kommt es beim Schließen zu keiner Änderung und erst beim Öffnen kommt genau 1 Inkrement.
Eine Änderung des Vorwiderstands von R=162 auf R=400 brachte keine Änderung.
Schaut also so aus als ob es durch den Kondensator zu einem "Schwingen" nahe des High-Pegels (2V) kommt???
Nachdem ich unschlüssig war ob die Angabe "mSec" beim Debounce-Wert in ESPEasy auch wirklich Milli- und nicht etwa Microsekunden meint, habe ich das im Code nachgeschaut, aber das passt:
/*********************************************************************************************\
* Check Pulse Counters (called from irq handler)
\*********************************************************************************************/
void Plugin_003_pulsecheck(byte Index)
{
noInterrupts(); // s0170071: avoid nested interrups due to bouncing.
// s0170071: the following gives a glitch if millis() rolls over (every 50 days) and there is a bouncing to be avoided at the exact same
// time. Very rare.
// Alternatively there is timePassedSince(Plugin_003_pulseTimePrevious[Index]); but this is not in IRAM at this time, so do not use in a
// ISR!
const unsigned long PulseTime = millis() - Plugin_003_pulseTimePrevious[Index];
if (PulseTime > (unsigned long)Settings.TaskDevicePluginConfig[Index][0]) // check with debounce time for this task
{
Plugin_003_pulseCounter[Index]++;
Plugin_003_pulseTotalCounter[Index]++;
Plugin_003_pulseTime[Index] = PulseTime;
Plugin_003_pulseTimePrevious[Index] = millis();
}
interrupts(); // enable interrupts again.
}
Und aus der Arduino-Referenz:
Zitatmillis()
[Time]
Description
Returns the number of milliseconds passed since the Arduino board began running the current program. This number will overflow (go back to zero), after approximately 50 days.
Zitat von: TheTrumpeter am 08 Februar 2021, 12:58:50
Schmeisse ich den Kondensator raus, kommt es beim Schließen zu keiner Änderung und erst beim Öffnen kommt genau 1 Inkrement.
Dieses würde dem "Rising" entsprechen und wäre auch o.k. so ... aaaber ... der zum REED parallel liegende Elko wirkt dem entgegen, da er durch seine lange Ladekonstante kein richtiges "Rising" des Impulses zulässt. Da der Spannungsanstieg langsam den Schwellwert durchläuft, den der GPIO als HIGH erkennt und somit immer wieder neue Spannungswerte registriert, ist es durchaus möglich dass mehrere Impulse erkannt werden. Ist natürlich auch wieder von den Debounce-Einstellungen abhängig. Kleines oder kein Debounce --> viele Impulse, großes Debounce --> weniger Impulse.
Stell mal die Flankenauswertung auf "Falling".
LG
Papa Romeo
Zitat von: Papa Romeo am 08 Februar 2021, 13:48:08
Stell mal die Flankenauswertung auf "Falling".
R=4k7, C=100µF
SW-Debounce 0 => 1 Impuls beim Schließen & >30 Impulse nach dem Öffnen
SW-Debounce 100 => 1 Impuls beim Schließen & 2 Impulse nach dem Öffnen
SW-Debounce 200/300/400 => 1 & 1
SW-Debounce 450/500 => 1 & 1 bzw. 2 bei "Tippen"
SW-Deboucce 550/600/1000 => 1 & 1 bzw. 1 beim "Tippen"
Habe das dann nochmal mit "rising" wiederholt, exakt die gleichen Ergebnisse.
Das passt nun insofern in mein Bild, als gemäss R=4k7 und C=100µF die HW-Debounce-Zeit bei 470ms liegen sollte, bisschen Toleranz ist auf den Bauteilen sicher drauf bzw. ist das kurze "Tippen" ja auch nicht 0ms sondern ggf. ein paar ms. (Oder anders, danach müsste der Kondensator wieder voll geladen sein und ein stabiler Pegel wie vor dem Schliessen des Kontakts eingetreten sein.)
Beim kurzen Tippen wird das "Schwingen" durch den Kondensator offenbar durch das SW-Debouncing ausgeblendet, sobald dies in etwa so groß ist wie das HW-Debouncing.
Entsprechend könnte ich das Verhalten wohl tatsächlich zum Unterscheiden von Störungen und "echten Impulsen" verwenden, indem ich die SW-Debounce-Zeit knapp unter der HW-Debounce-Zeit wähle, z.B. 400ms.
So, nachdem auch die Transistorschaltung bei sensorseitiger Platzierung "Geisterimpulse" verursacht hat, habe ich vor einigen Tagen die "Kondensator-Schaltung" ESP-seitig platziert und das Verhalten eine Weile beobachtet. Jegliche Störung hat nur zu einem Impuls geführt. Diese Einzel-Impulse filtere ich SW-seitig weg.
Nun habe ich statt der "offenen Kabelenden" (2 Adern eines geschirmten Stern-Vierers) wieder das echte Pluviometer (ungeschirmte selbst ausgekreuzte 2 Adern) angeschlossen, um auch "echte Impulse" testen zu können. Damit fange ich zwar mehr "Geisterimpulse" ein, aber trotzdem wird jeder als Einzelimpuls erkannt und daher rausgefiltert.
Damit werde ich wohl bei der Schaltung bleiben, wobei sich nur noch ein Frage für mich stellt:
In dem Schaltungsentwurf ist ein Vorwiderstand R=100 vorgesehen, den ich dzt. mittels Parallelschaltung mehrerer Widerstände realisiert habe, ca. R=162. Bei einer vorübergehenden Änderung auf R=400 konnte ich kein geändertes Verhalten feststellen. Daher: Brauche ich den Vorwiderstand überhaupt und wenn ja kann ich auch R=400 verwenden?
Zitat von: TheTrumpeter am 18 Februar 2021, 10:40:56
Brauche ich den Vorwiderstand überhaupt und wenn ja kann ich auch R=400 verwenden?
...kannst auch 400 Ohm nehmen. Der Widerstand ist nur dazu da, um den Entladestrom des C´s über den Reed-Kontakt zu begrenzen und Diesen etwas zu schonen.
Du kannst ihn so groß machen, dass beim Schließen des Reed´s noch ein "LOW" erkannt wird.
LG
Papa Romeo