Hallo zusammen, bei uns funktionieren viele (Licht) Taster im Haus mit Niederspannung. Gelegentlich und nicht planbar löst der Schaltvorgang (vermtl. vom Eltako) eine Steuerungsfunktion aus von einer Schaltung mit einem Pi Pico. (Ozongenerator) Ich vermute der Störimpuls streut über das Netz ins USB Netzteil der Schaltung. Kurioserweise wird genau eine bestimmte Funktion im Pico ausgelöst und nicht eine der anderen... Das Gerät rund um den Pico wird mit 230V betrieben. Innen ist ein zweckentfremdetes Handy Schaltnetzteil (die üblichen Samsung Dinger) das den Pico und Peripherie wie Relaisplatine usw. speist. Ich hab mir schon überlegt ob ich mich mal mit dem Oszi auf die Lauer lege, d.h. die Netzspannung monitore und dann auf den Impuls triggere (also quasi Single)..allerdings bin ich mir nicht ganz sicher ob das geht weil ich keinen Plan habe auf welchen Impulslevel ich triggern soll. Rising Edge ist klar und Eingangskopplung AC. Ist halt auch blöd weil der Impuls ja nicht immer auftritt. Ich dachte eigentlich die Netzteile sind etwas entstört aber irgendwie kommt der Impuls durch. Das das über die Luft einstreut kann ich mir schwer vorstellen. Hat dazu jemand ne Anregung wie ich dem auf den Grund gehen kann oder wie ich das Gerät entstöre bevor ich da jetzt ewig Ursachenforschung betreibe. Danke
An den Pins fünf und elf ist die äußere Beschaltung nicht korrekt. Die zweite Unterfunktion von links liefert einen falschen Rückgabewert.
Norbert schrieb: > Die zweite Unterfunktion von links liefert einen falschen Rückgabewert. Das liegt an der Variablendeklaration in Zeile 42.
Harald K. schrieb: > Norbert schrieb: >> Die zweite Unterfunktion von links liefert einen falschen Rückgabewert. > > Das liegt an der Variablendeklaration in Zeile 42. Zeile 42 ist wie eine Sicherung zu sehen, also dort immer zuerst nachsehen.
In Zeile 42 sind 2 Fehler, die hat er versucht in Zeile 84 zu korrigieren!
Alle Eingänge sollte man im Timerinterrupt (systick) entprellen (Filter mit Mehrfachabfrage). Einen Interruptpin zu nehmen, ist in der Regel ein ganz böses Foul.
Umfrickeln: - Ausgang macht lauten Piepser an - "Niemand bewegt sich!!!!" - In Ruhe jede Klickerfunktion ausprobieren bis es hupt. - Du hast den Schuldigen. Vermutlich was derb induktives. - Entstöre alle Eingänge in Hard- und Software. - Noch hundertmal den Schuldigen drücken - Hupt es immer noch -> zurück zum start - Ansonsten: Du hast was über Schaltungsdesign und EMV gelernt.
Peter D. schrieb: > Alle Eingänge sollte man im Timerinterrupt (systick) entprellen (Filter > mit Mehrfachabfrage). > Einen Interruptpin zu nehmen, ist in der Regel ein ganz böses Foul. Obschon der Pi Pico Schmitt-Trigger Eingänge mit ca. 0.2V Hysterese auf halber Betriebsspannung hat. Da darf man bei Bequemlichkeit auch mal zu einem Ko greifen. Dann ersäuft man auch nicht in IRQs. (Nicht das diese Lösung besonders schön wäre.)
Marco schrieb: > Hat dazu jemand ne Anregung Daher sollen kommerzielle Produkte durch die EMV Prüfung und Robustheit gegen EMI wird in Schulungen vermittelt. Ist halt nicht alles easy peasy.
Marco schrieb: > bei uns funktionieren viele (Licht) Taster im Haus mit > Niederspannung. Das ist ja soweit ohnehin Standard, oder hat schon irgendjemand mal eine Elektroinstallation gesehen, die dafür Hochspannung verwendet? Oder meintest Du vielleicht Kleinspannung? Marco schrieb: > Gelegentlich und nicht planbar löst der Schaltvorgang > (vermtl. vom Eltako) eine Steuerungsfunktion aus Läßt sich das Problem wenigstens etwas eingrenzen, also ist es immer derselbe Eltako (oder sogar derselbe Taster) bei dem die gelegentliche Fehlauslösung passiert? > von einer Schaltung mit einem Pi Pico. (Ozongenerator) Falls der Pico noch 'nen freien Pin hat, dann würde ich da mal einen lauten (möglichst von überall hörbar) Schallgeber (Piezo-Summer, Hupe, ...) dranhängen, den Du gemeinsam mit dem Ozongenerator aktivierst, damit Du jede Fehlaktivierung sicher mitbekommst; vielleicht läßt sich dann ein Muster erkennen. Marco schrieb: > Kurioserweise wird genau eine bestimmte Funktion im Pico > ausgelöst und nicht eine der anderen... Auf welchem Weg wird diese Funktion regulär ausgelöst? Direkt über ein Signal an einem Eingangspin des Pico? Dann ist es eher wahrscheinlich daß Deine 'Antenne', die die Störung einfängt, eben an diesem Pin hängt. > Das Gerät rund um den Pico wird mit 230V betrieben. Innen ist ein > zweckentfremdetes Handy Schaltnetzteil > (die üblichen Samsung Dinger) das den Pico und Peripherie Versuch einfach mal den Pico statt über das Netzteil aus einem Akku, einer Powerbank oder Batterie zu speisen. Wenn das Problem damit gelöst ist, kennst Du zumindest den Schuldigen und kannst ggf. andere Netzteile versuchen; vielleicht hast Du ja nur eines mit schlechter bzw. defekter Entstörung erwischt. Wenn das Problem weiterbesteht, kannst Du eine Einkopplung der Störung über das Netz dagegen ausschließen. Marco schrieb: > wie ich das Gerät entstöre bevor ich da jetzt ewig > Ursachenforschung betreibe. Dein Gerät vor jeder denkbaren EM-Störung zu schützen ist halt leider recht aufwendig, insofern wird Dir dieser Ansatz vermutlich nicht die schnelle, günstige Lösung bringen, die Du Dir davon erhoffst. aber machbar ist es natürlich: Pack Dein ganzes Gerät in einen Farraday-Käfig, der schirmt zuverlässig jegliche bei Dir rumschwirrende EM-Wellen von dem Gerät ab. Störungen können dann definitiv nur mehr über die Leitungen, die in den Käfig reinführen, kommen. Um auch dafür noch Tipps zu geben, wäre es halt hilfreich zu wissen um welche Leitungen es sich handelt und welche Ströme und Signalformen sie auch dann noch durchleiten sollen.
So, ich kam beruflich erst jetzt dazu die notwendigen Dinge anzuhängen. Schaltplan habe ich nicht, wenn eher Verdrahtungsplan. Vom Netz kommend sieht es so aus: (Handy) 5V Steckernetzteil -> Pi Pico Am Pico hängt eine RGB Led (s.programm) weiterhin ein einem GPIO ein Bewegungsmelder modul (passiv) an einem weiteren GPIO ein Relaismodul (s.Bild) das den Ozongenerator schaltet. Ein Taster an einem GPIO. Funktionsweise Programm: Im Main-loop bis Taster gedrückt wird. Dann im Warteloop bis der PIR meldet das keiner mehr im Raum ist. Dann wird der Lüfter und der Ozongenerator für ein paar Sek geschaltet, dann ein Warteloop von wenigen Minuten und dann wieder in den Main Loop. Der mutmaßliche Impuls bringt den Pico dazu zu glauben es sei der Taster gedrückt worden denn (Raum ist ja unbesetzte in dem Moment) er ist dann sofort im Warteloop (PIR=neg) und schaltet folglich den O3gen. an. Die Kabel Taster<>Pico sind so kurz wie möglich. Der Impuls kommt m.E. durch das Handy Schaltnetzteil... kann ich das ein oder ausgangsseitig noch filtern gegen Störimpulse? Grüße PS: mit IRQs arbeite ich nicht (mehr) weil das vorher Kacke war und noch störanfälliger.
:
Bearbeitet durch User
Du verlässt dich also in einer Stör-verseuchten Umgebung auf die integrierten 50kΩ … 80kΩ Pull-up Widerstände? Ambitioniert! Mach' mal externe mit 330Ω gegen die 3.3V Versorgung dran. Die 10mA bei Betätigung kann der Regler, der schafft das…
Norbert schrieb: > Du verlässt dich also in einer Stör-verseuchten Umgebung auf die > integrierten 50kΩ … 80kΩ Pull-up Widerstände? > Ambitioniert! > > Mach' mal externe mit 330Ω gegen die 3.3V Versorgung dran. > Die 10mA bei Betätigung kann der Regler, der schafft das… So oder? (attach)
Michi S. schrieb: > Marco schrieb: >> bei uns funktionieren viele (Licht) Taster im Haus mit >> Niederspannung. > > Das ist ja soweit ohnehin Standard, oder hat schon irgendjemand mal eine > Elektroinstallation gesehen, die dafür Hochspannung verwendet? Oder > meintest Du vielleicht Kleinspannung? Nein war schon korrekt von dir. > > Marco schrieb: >> Gelegentlich und nicht planbar löst der Schaltvorgang >> (vermtl. vom Eltako) eine Steuerungsfunktion aus > > Läßt sich das Problem wenigstens etwas eingrenzen, also ist es immer > derselbe Eltako (oder sogar derselbe Taster) bei dem die gelegentliche > Fehlauslösung passiert? > Im Flur sind 3 Taster die alle den selben Eltako triggern. >> von einer Schaltung mit einem Pi Pico. (Ozongenerator) > > Falls der Pico noch 'nen freien Pin hat, dann würde ich da mal einen > lauten (möglichst von überall hörbar) Schallgeber (Piezo-Summer, Hupe, > ...) dranhängen, den Du gemeinsam mit dem Ozongenerator aktivierst, > damit Du jede Fehlaktivierung sicher mitbekommst; vielleicht läßt sich > dann ein Muster erkennen. > Den Lüfter hört man sofort, Hupe nicht nötig. Ist wie gesagt selten und unregelmäßig. > Marco schrieb: >> Kurioserweise wird genau eine bestimmte Funktion im Pico >> ausgelöst und nicht eine der anderen... > > Auf welchem Weg wird diese Funktion regulär ausgelöst? > Direkt über ein Signal an einem Eingangspin des Pico? Dann ist es eher > wahrscheinlich daß Deine 'Antenne', die die Störung einfängt, eben an > diesem Pin hängt. > Dachte mir das vielleicht der Taster (Taster am pico) sich das "einfängt" und hab ihn mal gegen ein anderes kleines Modell getauscht. Nix gebracht. >> Das Gerät rund um den Pico wird mit 230V betrieben. Innen ist ein >> zweckentfremdetes Handy Schaltnetzteil >> (die üblichen Samsung Dinger) das den Pico und Peripherie > > Versuch einfach mal den Pico statt über das Netzteil aus einem Akku, > einer Powerbank oder Batterie zu speisen. > Wenn das Problem damit gelöst ist, kennst Du zumindest den Schuldigen > und kannst ggf. andere Netzteile versuchen; vielleicht hast Du ja nur > eines mit schlechter bzw. defekter Entstörung erwischt. > Wenn das Problem weiterbesteht, kannst Du eine Einkopplung der Störung > über das Netz dagegen ausschließen. > Stimmt, das sollte ich mal probieren. Logisch.! > Marco schrieb: >> wie ich das Gerät entstöre bevor ich da jetzt ewig >> Ursachenforschung betreibe. > > Dein Gerät vor jeder denkbaren EM-Störung zu schützen ist halt leider > recht aufwendig, insofern wird Dir dieser Ansatz vermutlich nicht die > schnelle, günstige Lösung bringen, die Du Dir davon erhoffst. aber > machbar ist es natürlich: > Pack Dein ganzes Gerät in einen Farraday-Käfig, der schirmt zuverlässig > jegliche bei Dir rumschwirrende EM-Wellen von dem Gerät ab. Störungen > können dann definitiv nur mehr über die Leitungen, die in den Käfig > reinführen, kommen. > Um auch dafür noch Tipps zu geben, wäre es halt hilfreich zu wissen um > welche Leitungen es sich handelt und welche Ströme und Signalformen sie > auch dann noch durchleiten sollen. Ok wenns das Netzteil nicht ist pack ich den Kram in Alufolie. Die Steuerungseinheit ist ja räumlich vom O3 Gen. getrennt. Danke
Ja, so. Und noch einen 100nF Kondensator über den schalter, das ist auch gut für die Kontakte Ich frage mich: wird im Forum "Tiefpass am Schalteingang" das neue "LED nur mit Vorwiderstand"?
Marco schrieb: > Hat dazu jemand ne Anregung wie ich dem auf den Grund gehen kann oder > wie ich das Gerät entstöre bevor ich da jetzt ewig Ursachenforschung > betreibe. Ursachenforschung ist aber der sinnvollere Weg. Bevor du alle möglichen Geräte auf Verdacht mit einem überdimensionierten Filter gegen Alles nachrüstest, ist es weniger Aufwand, beim Störenfried Eindämmungsmaßnahmen zu ergreifen. EMV lebt davon, dass man sich auf sinnvolle Grenzwerte einigt und beide Seiten darauf ausgelegt werden. Marco schrieb: > relais.jpg Soll das ein schlechter Witz sein?
Marco schrieb: > Schaltplan habe ich nicht Das ist der erste Schritt in Richtung "Probleme". > wenn eher Verdrahtungsplan. Na dann eben den. Und ein Foto vom Gesamtaufbau.
Marco schrieb: > So oder? So sieht's recht gut aus. Dann vielleicht über einen etwas ›selbsterklärenderen‹ Sourcecode nachdenken. Insbesondere wenn ›0‹ aktiv und ›1‹ inaktiv bedeutet. Micropython hat dafür ›Switch‹ um Logik eventuell zu drehen. (Ja, kann man auch direkt in der Funktion machen, schon klar) In eine ›enclosure‹ gepackt sieht's dann nochmal schöner aus.
1 | #!/usr/bin/python3
|
2 | # -*- coding: UTF-8 -*-
|
3 | |
4 | from time import sleep_ms |
5 | from machine import Pin, Signal |
6 | |
7 | def switch(gpio_num): |
8 | button = Signal(Pin(gpio_num, Pin.IN, Pin.PULL_UP), invert=True) |
9 | def state(): |
10 | return button.value() == 1 # liefert True oder False |
11 | return state # liefert zu Beginn das Objekt der eingebetteten Funktion |
12 | |
13 | lightswitch = switch(24) |
14 | |
15 | while True: |
16 | sleep_ms(100) |
17 | |
18 | # ---entweder---
|
19 | # if lightswitch():
|
20 | # print('ON')
|
21 | # else:
|
22 | # print('OFF')
|
23 | |
24 | # ---oder---
|
25 | print('ON' if lightswitch() else 'OFF') |
Marco schrieb: > Im Main-loop bis Taster gedrückt wird. Wenn die Mainloop nichts weiter macht, ist das kaum besser als Interrupts. Die Loop dürfte deutlich <1µs brauchen. Nimm eine Mehrfachabfrage im Timer und das Main fragt nur das Ereignisflag ab. Bequemer Weise liefert das Flag gleich die Flanke, d.h. man muß nicht erst noch auf Taste losgelassen warten. Will man aber unbedingt einen Kondensator nehmen, muß man darauf achten, daß er direkt am MC sitzt. Jeder Leiterzug ist eine Spule, d.h. schon wenige cm Leiterbahn können eine Störspannung induzieren.
Den wollte ich noch nachreichen…
1 | #!/usr/bin/python3
|
2 | # -*- coding: UTF-8 -*-
|
3 | def ScanSwitch(gpio_num): |
4 | button = Signal(Pin(gpio_num, Pin.IN, Pin.PULL_UP), invert=True) |
5 | def state(): |
6 | scanstate = True |
7 | for _ in range(10): |
8 | scanstate = scanstate and (button.value() == 1) |
9 | sleep_ms(1) |
10 | return scanstate # liefert True oder False |
11 | return state # liefert zu Beginn das Objekt der eingebetteten Funktion |
Rainer W. schrieb: > Ursachenforschung ist aber der sinnvollere Weg. Jeder darf natürlich sein Fahrrad nochmal erfinden. Man könnte aber auch einfach eine bewährte Entprelllib übernehmen und gut. Die Ursachen sind ja schon ad nauseam untersucht worden. Leider werden unbeirrt in viele Geräte Stümperlösungen programmiert, die den Benutzer zur Weißglut bringen.
:
Bearbeitet durch User
Puh eine Menge guter Input. Ich muss aber Stück für Stück umsetzen, nicht an allen Reglern gleichzeitig drehen. Ich fange mit der HW an und ziehe dann das Programm nach. Nach den Entprellibs muss ich mal schauen. Ist ja generell hilfreich.
Marco schrieb: > Ich fange mit der HW an Richtig, denn dort ist die Ursache des Problems zu finden. > und ziehe dann das Programm nach. Und dort findest du die Auswirkungen. Wenn du den ersten Schritt, deine Hardware, nicht absolut "bulletproof" hinbekommst, dann musst du im zweiten Schritt in der Software dafür sorgen, dass sich die verbleibenden Störungen nicht auf das Verhalten der Steuerung auswirken. Und wenn du deine Hardware "wirklich stabil" hast, dann schadet es nicht, in der Software die "üblichen" Fehler (kurze ESD- oder sonstige Störimpulse, Taster- und Kontaktprellen) trotzdem vorsorglich abzufangen.
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.