guten Tag zusammen. ich möchte mit esp8266, einem Impulsgeber (Impulslänge = 200ms) an einer Wasseruhr den Wasserverbrauch beobachten, es sollte einen Impuls pro Liter bzw pro Umdrehung des Magnets geben, das hat der Multimeter auch bestätigt, aber ich bekomme leider zu viele Impulse bzw einsen ( s.Bild). pot = ADC(0) while True: try: pot_value = pot.read() print(pot_value) time.sleep(0.15) client.publish('testclient', str(pot_value)) except : client.disconnect() sys.exit() hat jemand Ahnung woran es liegen könnte?
:
Bearbeitet durch User
Guck dir mal den Spannungsverlauf am ADC Eingang an. Vielleicht passt der Bereich nicht, vielleicht ist der Impuls lang, wer weiß.
Vermutlich am sogenannten Prellen. Da Dein Geber wohl keine Versorgungsspannung benötigt, handelt es sich um um einen mechanischen Kontakt. Die schliessen nicht und bleiben zu, wie man es sich idealerweise wünschen würde, vielmehr hüpfen sie unter Umständen noch mehrmals, bevor dann Ruhe einkehrt. Das passiert viel zu schnell für Dein Multimeter, aber der ESP ist schnell genug, um das als einzelne Pulse zu zählen. Das gesuchte Zauberwort heißt : "Entprellung", kann man auch in Software erledigen.
Einen Kontakt liest man digital ein und nicht mit dem ADC. Und natürlich ist ein Pullup nötig (kann intern programmiert werden). Entprellen muß man auch, wenn man die Flanken zählen will.
PM +m Kommunikationsmodul Reed-kontakt Äquivalent, Passiver, Impulsgeber, Open Drain. https://www.allmess.de/fileadmin/multimedia/alle_Dateien/MA/MA_12715-AC%20MA%20BM+m%20PM+m_TS0921.pdf
FOp schrieb: > Das gesuchte Zauberwort heißt : "Entprellung", kann man auch in Software > erledigen. hast Du bitte einen Hinweis? meinst du vlt bounctime funktion?
FOp schrieb: > Das gesuchte Zauberwort heißt : "Entprellung" Neuling A. schrieb: > Reed-kontakt Äquivalent, Passiver, Impulsgeber, Open Drain. Der Impulsgeber besitzt eine Elektronik. Er gibt einen 200ms-Impuls aus. Da kein mechanischer Kontakt vorliegt, schließe ich Prellen aus. Mario P.
Mario P. schrieb: > FOp schrieb: >> Das gesuchte Zauberwort heißt : "Entprellung" > > Neuling A. schrieb: >> Reed-kontakt Äquivalent, Passiver, Impulsgeber, Open Drain. > > Der Impulsgeber besitzt eine Elektronik. Er gibt einen 200ms-Impuls aus. > Da kein mechanischer Kontakt vorliegt, schließe ich Prellen aus. > > Mario P. was kann dann dabei helfen, die Impulse richtig zu erfassen?
Peter D. schrieb: > Und natürlich ist ein Pullup nötig (kann intern programmiert werden). Je nach Leitungslänge empfiehlt es sich jedoch, einen niederohmigeren externen Pullup-Widerstand zu verwenden, um die Störempfindlichkeit zu verringern.
Mario P. schrieb: > Da kein mechanischer Kontakt vorliegt, schließe ich Prellen aus. Dann meint "Reed-kontakt Äquivalent" wohl Optokoppler. Trotzdem kann Entprellen nie schaden. Es unterdrückt auch Störungen, je nach Leitungslänge, Größe des Pullup und durch starke Verbraucher (Motoren) in der Nähe.
Neuling A. schrieb:
> ich bekomme leider zu viele Impulse bzw einsen
Der Impulsgeber liefert einen 200ms-Impuls, in Deinem Programm wartest
Du aber nur 150ms. Da wirst Du den selben Impuls wohl (öfter) 2x
erfassen.
Bei open Drain am Impulsgeber ist die Abfrage über den ADC eher
ungünstig, da ich nur 2 Potentiale habe. Ich würde hier eher einen
"normalen" Eingangspin wählen und bei Potentialänderung am Pin einen
Interrupt auslösen lassen (geht vielleicht auch für eine Flanke - ich
kenne die Möglichkeiten des ESP nicht. Da können hier sicher Andere
helfen).
Mario P.
Neuling A. schrieb: > was kann dann dabei helfen, die Impulse richtig zu erfassen? Erstmal würde ich ein Messwerkzeug bemühen, um beurteilen zu können, ob die Eingangssignal wie erwartet aussehen, i.e. ein Oszi.
Peter D. schrieb: > Dann meint "Reed-kontakt Äquivalent" wohl Optokoppler. aus dem Datenblatt: Impuls-Charakteristik : Reed-Kontakt Äquivalent, Passiver Impulsgeber, Open Drain Maximale Abfragespannung : 30 V Maximale Strombelastung : 25 mA kann Optokoppler sein oder auch einfach Transistor/Fet Wolfgang schrieb: > Je nach Leitungslänge empfiehlt es sich jedoch, einen niederohmigeren > externen Pullup-Widerstand zu verwenden, um die Störempfindlichkeit zu > verringern. ACK Mario P.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.