Störsignale auf GPIO Leitungen von Taster und LCD Display (Messergebnisse)

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Fred: Wenn ich das richtig sehe, ist diese Schaltung ein Spannungsteiler im Verhältnis 2:10. Von 3,3 V kommen dann noch 2,75 V an. Das sollte zwar im Prinzip noch genügen, senkt aber den Pegel unnötig ab und begünstigt Störungen.

    Der 10 K gegen GND sollte rechts, vor dem 2 KOhm abzweigen und nicht links davon.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Störsignale auf GPIO Leitungen von Taster und LCD Display (Messergebnisse)? Schau mal ob du hier fündig wirst!

  • Andersrum. Je kleiner der Widerstand, desto stärker wird nach GND gezogen.

    Der Pulldown Widerstand hat aber auf das Prellverhalten gar keinen Einfluss. Wenn überhaupt, bringt ein großer Widerstand vor dem Eingang was, allerdings auch nur, wenn die Kapazität des GPIO-Eingangs nicht verschwindend gering ist, was aber nicht anzunehmen ist. Deshalb baut man ja in die Entprellerschaltung einen Kondensator. Wenn du den Kondensator groß genug wählst, ist das Prellen weg - aber die Flankensteilheit auch - was den Eingang wieder flattern lässt. Deshalb muss noch der Schmitt-Trigger dran.
    Bastelei hin oder her. Wenns nicht funktioniert, muss man es richtig machen. Natürlich gehört das RC-Glied eher in die Nähe des GPIO als an den meterweit entfernten Auslöser. Praktisch ist es aber eigentlich egal, an welchem Ende der Leitung die Spannungsspitzen gedämpft werden. Der Schmitt-Trigger allerdings wird nur was bringen, wenn er nah am Eingang ist.

    Ein Flankenwechsel von Low auf Low - das muss mir mal einer erklären...

    Hi GNOM

    Ja frag das mal meinen RASPI ich bin da auch etwas ratlos.

    Aber ich werde mal meinen PullDownWiderstand ändern nach der Erklärung von Fred (danke)

    lg

    Peter

  • Kurz und knapp würde ich sagen: Ja.

    Aber es kommt auch auf die Störimpulse, deren Dauer, Steilheit und mögliche Frequenz an.

    Wenn es nichts nutzt, hilft nur, wie Gnom hier schon geschrieben hat, eine bessere und aufwändigere Entprellung und letztlich noch Abschirmung:

    Störsignale auf GPIO Leitungen von Taster und LCD Display (Messergebnisse)

  • Schön dass sich hier durch meine Messergebnisse so eine rege konstruktive Diskussion entwickelt :)


    Ich hoffe das meine Probleme erledigt sind wenn ich das ganze auf einer Platine fest verlötet habe und den Raspi mit einem Gehäuse abschirme

    Ich will ja deine Hoffnung nicht schmälern, aber bei mir sind die Widerstände Transistoren etc. auf einer Lochrasterplatine verlötet. Jumperkabel kommen nur zum Einsatz um einen RFID Reader, ein LCD Display, die Lochrasterplatine, Relais (ja Freilaufdiode ist vorhanden ;)) und den Raspberry Pi selbst miteinander zu verbinden. Das ganze befindet sich alles in einem geerdeten Metallgehäuse montiert auf einer Kunststoffträgerplatte.

    Mit 47k hast du ja noch Luft nach unten, wenns bei 10k wäre, würde ich mir Sorgen machen.

    Hmm also ich verwende bei den oben veröffentlichten Messergebnisse 10k Ohm Pull up Widerstände

    Habt ihr es mal mit einer richtigen Hardwareentprellung versucht?

    Leider nein, aber du hast vollkommen recht. Aber auf das Thema bin ich erst durch die auftretenden Probleme gestoßen. Leider wird das in den "0815" Tutorials nicht erwähnt :no_sad:

    Was mich dazu interessieren würde, das mit Schmitt Trigger etc. ist ja gedacht für die Entprellung und Enstörung der Taster/Schalter. Was aber mache ich mit meinen Datenleitungen von Pi zum LCD Display?! Der wie von dir vorgeschlagene Logic Shifter (anderer Thread Kaffeekontrolle) brachte leider keine Verbesserung^^

  • @prg69: Widerstände beeinflussen den Strom, nicht die Spannung (so lange sie nicht als Spannungsteiler angeordnet sind oder mit Kondensatoren zusammen wirken. Mit einem Widerstand alleine (egal ob groß oder klein) wird man keine nennenswerte Wirkung erzielen.

    Das Low wird nicht lower, wenn ich den Pulldown kleiner mache. Am Widerstand fallen 3,3 Volt ab - es sei denn, er ist null - aber dann gibts kein High mehr.

    Den Low-Low Wechsel kann man softwareseitig abfangen, indem man prüft, ob der vorige Zustand high war. Ist das nicht der Fall, kann man den Impuls ignorieren.

    Hofei: Datenleitungen vom Pi zum Display sollten recht kurz sein - die Protokolle erlauben ohnehin oft nur wenige Zentimeter. Probleme resultieren da eher aus der Kabellänge. Ansonsten geschirmte Kabel verwenden. Eine Entprellung eines digitalen Signals im KHz-Bereich ist ja per se sinnlos. Das Signal selbst prellt ja eh nicht. Einstreuungen von Außen müssen natürlich vermieden werden. Manche Verbindungen setzen nicht auf eine feste Spannung, sondern sozusagen auf die Differenz zwischen zwei Pegeln auf. Kommt eine Störung rein, verändert sie beide Spannungen und das Resultat bleibt unverändert. Allerdings hab ich noch nicht gehört, dass da jemand nennenswerte Probleme hatte. Ggf. das Display gelegentlich auffrischen.

    Hast du wirklich Probleme mit Störimpulsen oder läuft einfach dein Display nicht ordentlich, weil das Kabel zu lang ist?

    fred: Störungen über Stromleitung? Was meinst du damit? Die Stromversorgung des Pi? Oder Störstrahlungen aus dem 230V Netz? Da haben wir mit den Störimpulsen von Schaltern und Neonröhren ja hinreichend Probleme. Di Spannungsspitze der zwei Straßen weiter anfahrenden U-Bahn sind da eher ein geringes Problem.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • @prg69: Widerstände beeinflussen den Strom, nicht die Spannung (so lange sie nicht als Spannungsteiler angeordnet sind oder mit Kondensatoren zusammen wirken. Mit einem Widerstand alleine (egal ob groß oder klein) wird man keine nennenswerte Wirkung erzielen.

    Das Low wird nicht lower, wenn ich den Pulldown kleiner mache. Am Widerstand fallen 3,3 Volt ab - es sei denn, er ist null - aber dann gibts kein High mehr.

    Genau das mache ich ja aus der NOT heraus.

  • Das wird nicht klappen - da kannst du Widerstände anschließen, so viel du willst. Das bewirkt gar nichts.

    Ohne Kondensator geht die Spannung bei einer Störung sofort rauf. Außerdem ist bei den Störungen nicht bekannt, wie hoch die Spannung ist. Die einzig funktionierende Lösung ist also, die Spannung nur langsam ansteigen zu lassen, indem man einen Widerstand vorbaut und dahinter einen Kondensator. Das versaut einem aber die Flankensteilheit - so dass der GPIO zu lange im undefinierten Bereich liegt. Um den Schmitt-Trigger kommt man dann nicht herum.

    Alternativ: Für die Tasterleitungen höhere Spannung verwenden und die Signale über Optokoppler nahe am Pi auswerten. Einstreuungen wirken sich bei höherer Spannung relativ geringer aus. Spitzen ggf, mit einem Kondensator glätten. Allerdings ist der Aufwand auch nicht viel kleiner als mit Entprellung.

    Was ist mit softwareseitiger Entprellung? Eindeutige Erkennung ist doch auch durch Nachprüfen (ggf. zwei-/dreimal) des Zustandes nach wenigen ms möglich. Kürzere Störimpulse kann man doch so ganz gut ausfiltern.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Wir sollten mal unterscheiden zwischen Entprellung und Entstörung. Störungen lösen Signale aus, auch ohne einen Schalter o.ä. zu bedienen. Die kann man sehr gut mit einem RC-Filter wie in #12 in den Griff bekommen. Ein Trigger ist grundsätzlich nicht nötig, da die Eingänge vom RasPi getriggert sind. Prellen kommt bei fast allen Schaltern vor, weil der RasPi einfach schneller ist, als die mechanischen Kontakte z.B. durch Unebenheiten oder Federwirkung schließen können. Das bekommt man gut softwaremäßig hin. Irgendwelche Widerstände unmotiviert irgendwo anzuschließen bringt seltenst was.

  • Was ist mit softwareseitiger Entprellung? Eindeutige Erkennung ist doch auch durch Nachprüfen (ggf. zwei-/dreimal) des Zustandes nach wenigen ms möglich. Kürzere Störimpulse kann man doch so ganz gut ausfiltern.

    HI

    Das ich ich ja auch. Wenn die Routine für den Flankenwechsel aufgerufen wird warte ich 0,2s und prüfe nochmal.....dann habe ich das korrekte Signal (LOW oder eben HIGH). Dieses Warten sollte aber nicht länger dauern als die eingestellte Bouncetime sonst wird die Routine ggfs. erneut aufgerufen bevor die erste fertig ist.

    Eine Alternative für mein Problem war der 230V-DETECTOR VOM NEUEINSTEIGER als Alternative zu meinem Relais (230VAC).

    Grüße

  • Das ist natürlich ein Argument, ich hatte den Schmitt-Trigger vor den Eingang eines Schieberegisters gesetzt. Plausibel, dass der Trigger beim Pi schon drin ist.

    Letztlich kommen Störungen und Prellen aber doch irgendwie aufs Gleiche raus... mehr oder minder kurze Signale sollen ignoriert werden, erst wenn ein Signal "dauerhaft" anliegt, soll darauf reagiert werden. Das RC-Glied filtert Prellen und Störungen gleichermaßen aus. Und softwareseitig kann man auch beides lösen. Oder liege ich da falsch?

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Störungen auf einem Bus, der Signale im KHz-Bereich oder mehr sendet, wirst du letztlich nur übers Protokoll eliminieren können (Paritätsbits, CRC und ähnliches). Da gehts ja auch sozusagen nicht um "Störsignale" sondern um die "Störung der Signale". Mit RC-Gliedern braucht man da nicht anfangen, das ist klar.

    Prellen ist eine physikalische Störung eines Tasters. Vergleichbare Störungen können aber auch bei langen Leitungen auftreten, wenn eben der ominöse Lichtschalter betätigt wird oder die U-Bahn anfährt. Praktisch macht das keinen Unterschied.

    Die Frage ist meines Erachtens nicht, ob Prellen oder Störung, sondern, ob ein statisches System Fehlimpulse bekommt oder ob bei einem dynamischen Übertragungssystem die übertragenen Signale von Störungen überlagert werden. Letzteres ist wesentlich schwerer in den Griff zu bekommen.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Moin!

    Irgendwie geht das etwas am Thema vorbei. Es trifft, aber nicht genau.

    Der Hofei hat festgestellt, das bei Lichteinschalten, am Raspberry was erkannt wird. Was nicht sein soll.

    Er hat eine Platine und notwendige Kabel zu den einzelnen Elementen. Also keinen fliegenden Aufbau!!

    Nun ist doch die Frage, wo fängt sich der RPi die Störung ein??

    - Über das 230V Netz

    - Über die verbauten Kabel

    Wenn nun die Störungen über das verbaute Kabel in das System kommt, dann nützen mir verbaute RC-Glieder auf der Platine wenig.

    Die Frage ist, kann man abgeschirmten Leitungen diverse GPIO-Pin's vernünftig verschalten? Auch einigermaßen ansehnlich?

    Mal laut gedacht.....

    Gruss Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Wenn nun die Störungen über das verbaute Kabel in das System kommt, dann nützen mir verbaute RC-Glieder auf der Platine wenig.

    Die Aussage musst du mir mal erklären. Wieso soll man eine übers Kabel eingestreute Spannungsspitze nicht mit einem RC-Glied abfangen können?

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Wenn nun die Störungen über das verbaute Kabel in das System kommt, dann nützen mir verbaute RC-Glieder auf der Platine wenig.

    Die Frage ist, kann man abgeschirmten Leitungen diverse GPIO-Pin's vernünftig verschalten? Auch einigermaßen ansehnlich?

    Das ist ja das was schon sagte.

    Egal wie ich den Signalweg entstöre - wenn die Störung auf dem letzten Stück nämlich an dem Kabel das an den GPIO führt auftritt dann hilft nur Abschirmung.

    Sollte es sich bereits um einen festen Aufbau auf einer Platine ohne Kabel handeln....hmmmm........schlecht.

    Wenn man Netzwerkkabel dazu verwendet dann könnte man das "ansehnlich" bewerkstelligen indem man RJ45-Buchsen auf die Platine lötet und so das Kabel sauber mit einen geschirmten Stecker anschließen.

    Grüße

  • Das ist ja das was schon sagte.

    Egal wie ich den Signalweg entstöre - wenn die Störung auf dem letzten Stück nämlich an dem Kabel das an den GPIO führt auftritt dann hilft nur Abschirmung.

    es würde völlig reichen am GPIO unempfindlicher zu werden, ich würde direkt am GPIO mit 1k R arbeiten und mit dem Transistor eines Optokoppler, die IR Diode des Koppler welche die lange Leitung bekommt würde ich mit 20mA speisen, soviel Energie kann nicht eingekoppelt werden welche die 20mA überrennt und auf der kurzen GPIO Seite ist nicht genug Leitung für Einkopplung und mit 1k ist 3mA auch genug Reserve.

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!