Forum: Mikrocontroller und Digitale Elektronik NS Impuls im Haus löst Pi Pico aus wie einkreisen?


von Marco (meow88)


Lesenswert?

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

von Norbert (der_norbert)


Lesenswert?

An den Pins fünf und elf ist die äußere Beschaltung nicht korrekt.
Die zweite Unterfunktion von links liefert einen falschen Rückgabewert.

von Harald K. (kirnbichler)


Lesenswert?

Norbert schrieb:
> Die zweite Unterfunktion von links liefert einen falschen Rückgabewert.

Das liegt an der Variablendeklaration in Zeile 42.

von Ralf X. (ralf0815)


Lesenswert?

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.

von H. H. (Gast)


Lesenswert?

Marco schrieb:
> Schaltung mit einem Pi Pico.

Zeigen! Schaltplan und Aufbau.

von Andreas M. (elektronenbremser)


Lesenswert?

In Zeile 42 sind 2 Fehler, die hat er versucht in Zeile 84 zu 
korrigieren!

von Peter D. (peda)


Lesenswert?

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.

von Jens M. (schuchkleisser)


Lesenswert?

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.

von Norbert (der_norbert)


Lesenswert?

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

von Michael B. (laberkopp)


Lesenswert?

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.

von Michi S. (mista_s)


Lesenswert?

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.

von Marco (meow88)


Angehängte Dateien:

Lesenswert?

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
von Norbert (der_norbert)


Lesenswert?

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…

von Marco (meow88)


Angehängte Dateien:

Lesenswert?

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)

von Marco (meow88)


Lesenswert?

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

von Flip B. (frickelfreak)


Lesenswert?

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"?

von Rainer W. (rawi)


Lesenswert?

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?

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


Lesenswert?

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.

von Norbert (der_norbert)


Lesenswert?

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')

von Peter D. (peda)


Lesenswert?

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.

von Norbert (der_norbert)


Lesenswert?

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

von Peter D. (peda)


Lesenswert?

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
von Marco (meow88)


Lesenswert?

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.

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


Lesenswert?

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
Noch kein Account? Hier anmelden.