Hallo liebes Forum, Ich lese schon seit Jahren mit jedoch heute meine erste mir unverständliche Problemstellung die ich gerne erörtern würde. Ich habe an einen Pi Zero W zwei Taster und zwei LED per GPIO angeschlossen. Die Taster sollen einen python script bedienen und die LED Dienen der optischen Kontrolle, das Gehäuse ist aus Kunststoff, die Taster aus Edelstahl. Die Taster sind so verkabelt: GPIO27 -> 10k Widerstand -> Taster -> GND Und so angelegt: GPIO.setup(button1_pin, GPIO.IN, pull_up_down=GPIO.PUD_UP) Ich habe das Problem, dass die Taster bereits auslösen, wenn ich sie nur berühre, und zwar reicht es, wenn ich einen der beiden Taster berühre um beide auszulösen, gleichzeitig lade ich mich anscheinend so stark auf, dass ich sobald ich ein geerdetes Gerät berühre sofort einen kleinen Schlag bekomme - das ist nicht immer so, aber nach einer gewissen Zeit eigentlich immer. Ich habe bereits verschiedene Netzteile versucht aber keinen Unterschied bemerkt, der Pi ist direkt an der Platine an die Stromversorgung angelötet und geht nicht über den USB Eingang. Hat jemand eine Idee was das Problem sein könnte? Dank euch vielmals vorab für die Unterstützung! Felix
Felix H. schrieb: > Hat jemand eine Idee was das Problem sein könnte? der interne Pullup ist zu schwach. Felix H. schrieb: > Die Taster sind so verkabelt: GPIO27 -> 10k Widerstand -> Taster -> GND Besser: Taster zwischen GPIO und GND, 10K-Widerstand als Pullup gegen Vcc. Ggfs. noch einen kleinen Kondensator dazu, zum entprellen, oder in Software entprellen.
:
Bearbeitet durch User
Danke! Ist es dann nicht so, dass der interne pullup mit dem externen 10k genug sein sollte in kombination? Wie meinst du mit besser? Der Taster sitzt ja aktuell zwischen GPIO und GND, wäre es besser gegen Vcc zu schalten oder wie meinst du? Danke vielmals für Deine Hilfe! Felix
Felix H. schrieb: > Wie meinst du mit besser? Der Taster sitzt ja aktuell zwischen GPIO und > GND, wäre es besser gegen Vcc zu schalten oder wie meinst du? Dann male einen Schaltplan (gerne auf Papier und abfotografiert). Dann weiß jeder, wie deine Taster verschaltet sind. Aus deiner Prosa geht das nicht genau hervor!
Danke, ich hoffe so ist es klar, ich habe mich auch geirrt, es ist kein 10k sondern ein 16k Widerstand. Danke! Felix
Felix H. schrieb: > es ist kein > 10k sondern ein 16k Widerstand. Und eben auch kein Pullup. Hat der Stelle keinen wirklichen Zweck. Felix H. schrieb: > pullup mit dem externen > 10k genug sein sollte in kombination? Sondern bildet mit dem internen Pullup einen Spannungsteiler... Deshalb, umstöpseln, Taster direkt an GPIO, den dadurch freiwerdenden Widerstand als Pullup verwenden.
:
Bearbeitet durch User
Felix H. schrieb: > n ein 16k Widerstand. Und, was soll der bewirken? Sieht für mich irgendwie krank aus, kenne allerdings auch nicht alle RPI Magie.
Beitrag #7571773 wurde vom Autor gelöscht.
Εrnst B. schrieb: > Deshalb, umstöpseln, Taster direkt an GPIO, den dadurch freiwerdenden > Widerstand als Pullup verwenden. Danke! Sprich wenn ich das doch in Prosa versuchen darf wiederzugeben, von Vcc gehe ich durch den 16k Widerstand zum Taster, fahre aber durch in den GPIO, sobald der Taster gedrückt wird, fließt der Strom aber zu GND und somit habe ich das Event in python, dass der Button gedrückt wurde? Danke! Felix
Felix H. schrieb: > Ist es dann nicht so, dass der interne pullup mit dem externen > 10k genug sein sollte in kombination? Meistens ja. Aber viele Taster halten nicht lange, wenn sie nur so wenig belastet werden. Ich lege den Pull-Up immer so aus, dass mindestens 1mA fließen. > wäre es besser gegen Vcc zu schalten? Das ist egal
Felix H. schrieb: > von Vcc gehe ich durch den 16k Widerstand ...oder besser 3k3 Widerstand, um eine Oxidationsschicht an den Tasterkontakten weitestgehend zu vermeiden.
Enrico E. schrieb: > ...oder besser 3k3 Widerstand, um eine Oxidationsschicht an den > Tasterkontakten weitestgehend zu vermeiden. Wo wäre der Unterschied 10k 16k oder 3k3 zu verwenden? Danke!
Felix H. schrieb: > Wo wäre der Unterschied 10k 16k oder 3k3 zu verwenden? Je nach Kontaktmaterial im Taster kann sich da eine Oxid-Schicht bilden, die zu schlechtem Kontakt und Prellen führt. Ein höherer Strom "brennt" diese weg. https://de.wikipedia.org/wiki/Frittspannung
Außerdem macht ein niedrigerer Widerstandswert die Schaltung robuster gegen Radiowellen.
Ersetze den Serienwiderstand durch eine Drahtbrücke. Der Code deklariert den Pullup und das reicht. NB: Gezeichnet hast du den Taster an GPIO25, sagst aber, das er an GPIO27 dran ist.
:
Bearbeitet durch User
Danke, Ich hab es jetzt mit 3k3 Ohm probiert und entsprechend die Verkabelung angepasst, leider aber kein Unterschied, sobald ich den Taster berühre schaltet er bereits, jedoch immer nur beim ersten Mal, soll ich das Metallgehäuse vom Taster mit GND verbinden oder hätte das keinen Sinn? Matthias S. schrieb: > NB: Gezeichnet hast du den Taster an GPIO25, sagst aber, das er an > GPIO27 dran ist. Das stimmt, nur hat diese Zeichnung keinen GPIO27 beschriftet, deshalb habe ich es an 25 gezeigt. Danke! Felix
Felix H. schrieb: > sobald ich den Taster berühre > schaltet er bereits Welche Spannungsversorgung hat dein Pi? Hast du ein Multimeter und kannst mal zwischen GND und Erde/PE messen, auch im AC-Messbereich? Trägst du gut isolierende Schuhe, und hast trockene Luft im Zimmer? Triggert der Schalter auch, wenn du dich vor dem Berühren erdest? (PC-Gehäuse, Heizkörper anfassen oder so)
Hallo Ernst, Εrnst B. schrieb: > Welche Spannungsversorgung hat dein Pi? > Hast du ein Multimeter und kannst mal zwischen GND und Erde/PE messen, > auch im AC-Messbereich? > Trägst du gut isolierende Schuhe, und hast trockene Luft im Zimmer? > Triggert der Schalter auch, wenn du dich vor dem Berühren erdest? > (PC-Gehäuse, Heizkörper anfassen oder so) Spannungsversorgung habe ich zwei unterschiedliche 10W USB Netzteile verwendet, eines von Apple, eines von Samsung, bei beiden das gleiche. Multimeter kann ich morgen anlegen, hab den Raspberry in der Werkstatt, nicht zu Hause, was sollte hierbei herauskommen? Ich trage im Winter meist Schuhe mit Gummisohle, Luft ist durch die Werkstattheizung relativ trocken bei guten 50% Vor dem Berühren erden habe ich noch nicht getestet, aber ich kann definitiv sagen dass ich nach dem ich den Taster betätigt habe auch einen kleinen Schlag bekomme, sobald ich die kabelgebundene Tastatur mit Alurahmen berühre. Danke für Deine Hilfe! Felix
Felix H. schrieb: > sobald ich den Taster berühre schaltet er bereits Du könntest zusätzlich noch ein RC-Glied (100 Ohm und 1uF) vor den GPIO schalten.
Beitrag #7572084 wurde vom Autor gelöscht.
Matthias S. schrieb im Beitrag #7572084:
> Man kann den Taster ohne weitere Bauteile am Pico betreiben.
Ja, das Prellen bekommt man programmtechnisch natürlich raus, aber die
Berührungsempfindlichkeit nicht!
Wie groß ist denn eigentlich der interne Pullup?
Εrnst B. schrieb: > Felix H. schrieb: >> sobald ich den Taster berühre >> schaltet er bereits > > Welche Spannungsversorgung hat dein Pi? > Hast du ein Multimeter und kannst mal zwischen GND und Erde/PE messen, > auch im AC-Messbereich? > Trägst du gut isolierende Schuhe, und hast trockene Luft im Zimmer? > Triggert der Schalter auch, wenn du dich vor dem Berühren erdest? > (PC-Gehäuse, Heizkörper anfassen oder so) Hallo Ernst, bin erst jetzt dazugekommen leider, habe laut Multimeter im AC Bereich circa 46v, sobald ich den GND pin berühre oder auch nur in die Nähe komme feuern die Buttons schon, ich hab noch ein Foto vom Pi mit den Buttons gemacht. Hätte es Sinn die Metallbuttons mit GND zu verbinden? Danke! Felix
Felix H. schrieb: > habe laut Multimeter im > AC Bereich circa 46v, Die kommen üblicherweise von einem Y-(Entstör)-Kondensator im Netzteil, welcher L auf GND koppelt. Manchmal kann es da helfen, das Steckernetzteil einfach um 180° gedreht in die Steckdose zu stecken. Dann wird N auf GND gekoppelt. Ansonsten: Besseres Netzteil. Eines mit Schutzkontaktstecker (Erde!) Felix H. schrieb: > Hätte es Sinn die Metallbuttons mit GND zu > verbinden? Kann helfen oder es schlimmer machen. Mit PE/Erde verbinden wär vmtl. besser, dann werden statische Entladungen ganz an der Elektronik vorbei abgeleitet.
Enrico E. schrieb: > Matthias S. schrieb im Beitrag #7572084: >> Man kann den Taster ohne weitere Bauteile am Pico betreiben. > > Ja, das Prellen bekommt man programmtechnisch natürlich raus, aber die > Berührungsempfindlichkeit nicht! Ich habe meinen Beitrag gelöscht, weil es hier nicht um den Pico geht, wie ich leider zu spät gesehen hatte. Vom Zero habe ich keine Ahnung.
Εrnst B. schrieb: > Manchmal kann es da helfen, das Steckernetzteil einfach um 180° > gedreht in die Steckdose zu stecken. Dann wird N auf GND gekoppelt. > > Ansonsten: Besseres Netzteil. Eines mit Schutzkontaktstecker (Erde!) Danke, Ernst! Leider hat das schlichte drehen nichts genutzt, ich habe jetzt ein 5v Schaltnetzteil bestellt und werde sehen ob das was hilft. Mir ist aufgefallen, dass es seit dem ich das Gehäuse geöffnet habe nicht mehr so empfindlich ist, kann das auch damit zutun haben, dass die Komponenten im Gehäuse sehr eng aneinander verbaut sind? Danke! Felix
Felix H. schrieb: > Die Taster sind so verkabelt: GPIO27 -> 10k Widerstand -> Taster -> GND > Und so angelegt: GPIO.setup(button1_pin, GPIO.IN, > pull_up_down=GPIO.PUD_UP) 16k in Reihe ist viel zu hoch, da muß der interne Pullup noch viel hochohmiger sein. Wahrscheinlicher ist, er ist nicht aktiv, d.h. der Pin floatet. Ich hatte mal ein Problem mit einem Pin bei einem LPC von NXP. Ursache war ein C&P-Fehler im h-File, es wurde der falsche Port angesprochen. Du schreibst nicht, wie Du ihn einliest. Per externem Interrupt ist ein schweres Foul. Typisch nimmt man einen Timerinterrupt (1..20ms) mit mindestens 4-facher Abtastung.
Peter D. schrieb: > 16k in Reihe ist viel zu hoch Ich erinnere an: Steve van de Grens schrieb: > Aber viele Taster halten nicht lange, wenn sie nur so wenig > belastet werden. Ich lege den Pull-Up immer so aus, dass mindestens 1mA > fließen. Steve van de Grens schrieb: > Außerdem macht ein niedrigerer Widerstandswert die Schaltung robuster > gegen Radiowellen. Gut, die 50 Hz vom Netzteil sind jetzt keine Radiowellen. Aber ich bin ziemlich sicher, dass ein stärkerer Pull-Up Widerstand auch dagegen hilft.
Steve van de Grens schrieb: > dass mindestens 1mA Die Taster sind für 2 oder 3A vorgesehen. (die kommen mir bekannt vor) Somit besteht durchaus die Möglichkeit den Pullup recht klein zu machen. Zudem prellen die wie Höllenfeuer. Alles nicht/kaum vergleichbar mit den winz Tastern auf Platinen. Ach ja: Metalltaster/Gehäuse muss/sollte sowieso geerdet werden.
:
Bearbeitet durch User
Arduino F. schrieb: > Die Taster sind für 2 oder 3A vorgesehen. Dann würde ich noch deutlich mehr als 1 mA fließen lassen, falls im Datenblatt der Taster kein Wetting-Current angegeben ist.
Felix H. schrieb: > Ich trage im Winter meist Schuhe mit Gummisohle, Luft ist durch die > Werkstattheizung relativ trocken bei guten 50% > > Vor dem Berühren erden habe ich noch nicht getestet, aber ich kann > definitiv sagen dass ich nach dem ich den Taster betätigt habe auch > einen kleinen Schlag bekomme, sobald ich die kabelgebundene Tastatur mit > Alurahmen berühre. Phasenprüfer in die Hand nehmen, etwas herumlaufen und dann gegen den Schutzleiter einer Steckdose. Der wird kurz aufglimmen, weil Du statisch aufgeladen bist. Also ein typisches ESD-Problem. Felix H. schrieb: > Danke, Ernst! Leider hat das schlichte drehen nichts genutzt, ich habe > jetzt ein 5v Schaltnetzteil bestellt und werde sehen ob das was hilft. Ja, Nein, vielleicht. Wenn es keine speziellen Gründe dagegen gibt, lege GND vom Ausgang des Netzteils auf den Schutzleiter und auch das Schaltergehäuse dran. Steve van de Grens schrieb: > Dann würde ich noch deutlich mehr als 1 mA fließen lassen, falls im > Datenblatt der Taster kein Wetting-Current angegeben ist. Stefans Gebetsmühle dreht wieder, ohne dass diese zum aktuellen Problem beiträgt. Hilfreich ist, dass ein niederohmig(er)er PullUp die Störsicherheit erhöht.
Manfred P. schrieb: > Felix H. schrieb: >> Ich trage im Winter meist Schuhe mit Gummisohle, Luft ist durch die >> Werkstattheizung relativ trocken bei guten 50% >> Vor dem Berühren erden habe ich noch nicht getestet, aber ich kann >> definitiv sagen dass ich nach dem ich den Taster betätigt habe auch >> einen kleinen Schlag bekomme, sobald ich die kabelgebundene Tastatur mit >> Alurahmen berühre. > > Phasenprüfer in die Hand nehmen, etwas herumlaufen und dann gegen den > Schutzleiter einer Steckdose. Der wird kurz aufglimmen, weil Du statisch > aufgeladen bist. Also ein typisches ESD-Problem. > Felix H. schrieb: >> Danke, Ernst! Leider hat das schlichte drehen nichts genutzt, ich habe >> jetzt ein 5v Schaltnetzteil bestellt und werde sehen ob das was hilft. > > Ja, Nein, vielleicht. Wenn es keine speziellen Gründe dagegen gibt, lege > GND vom Ausgang des Netzteils auf den Schutzleiter und auch das > Schaltergehäuse dran. > Steve van de Grens schrieb: >> Dann würde ich noch deutlich mehr als 1 mA fließen lassen, falls im >> Datenblatt der Taster kein Wetting-Current angegeben ist. > > Stefans Gebetsmühle dreht wieder, ohne dass diese zum aktuellen Problem > beiträgt. > Hilfreich ist, dass ein niederohmig(er)er PullUp die Störsicherheit > erhöht. Danke, wie meinst du das genau? Also vom wiring her. Ich verwende jetzt ein meanwell schaltnetzteil, Gehäuse ist aus Kunststoff. Danke für die Hilfe!!
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.