Power Switch via Push-Button


#123

Hallo @DasMoeh, ich habe auch einen leuchtenden Taster im Einsatz.
Könntest Du irgendwie eine Skizze machen, wie das mit dem Polulu umgesetzt hast?


#124

Ich weiß nicht womit man die schönen Schaltpläne bastelt, aber es ist eigentlich sehr simpel. Vllt. reicht eine Beschreibung:

  • Stromquelle zu Polulu an VIN und GND
  • Polulu zu Arduino: VOUT -> +5V, GND -> GND, OFF -> D7
  • LED vom Taster zu Arduino: + an D6 (oder gewünschten Pin), - an GND
  • Taster zu Polulu: an A und B anschließen (Leider sind die 3 Pins bei mir nicht beschriftet, aber durch ausprobieren finden sich die 2 passenden. Müsste eigentlich NO und C sein.)

Als Taster habe ich


. Nicht zu verwechseln mit so einem Schalter, der einrastet.

Da weiß ich nicht, was der Polulu genau macht, wenn der Schalter gedrückt bleibt.


#125

Meistens sind die mit fritzing entstanden.

http://fritzing.org/


#126

So, hier nun quick and dirty der Schaltplan für die 3-Button-Lösung mit Polulu-LV OHNE Pull-Down-Widerstand.
Vielleicht kann nochmal jemand mit Elektrotechnik-Kenntnissen drüberschauen, ob wir da auch nichts kaputt machen. In der Polulu-Doku stand ja, man könne A auf GND ziehen, aber machen wir so eigentlich nicht, oder?


Vorstellung: Zebra Box
#127

Interessant, wenn die Zeichnung korrekt ist. Warum funktioniert der Play Button weiterhin als Play Button? Welches Potential hat denn A?


#128

Das wüsste ich auch gerne :wink:
Die Polulu Specs sind an der Stelle wenig aussagekräftig:

PIN Description
A Connect through momentary switch to pin “B” for standard push-on/push-off operation. Connect through momentary switch to ground for on-only operation.


#129

Naja laut Anton-V: A ist über Taster mit GND verbunden:
Bei meinem Set-up habe ich eine Momentary Switch verwendet**, der den A-Pin mit einem der GND-Pins des Pololu verbindet.**


#130

Ah und noch der Hinweis: das gleiche Setup hatte ich auch schon geteset.
Ging bei mir aber nicht mit der 10.000er Powerbank (Name gerade vergessen) die hier im “Umlauf” ist.
Die Powerbank wacht einfach nicht auf. Sie hat eben keine dauerhafte und dauerhaft hohe Spannung am Ausgang anliegen.


#131

Das war ja nicht @papa s Frage. Wir haben ja A eben nicht mit GND verbunden sondern über den Play- /Pause-Button mit A0 des Arduino.

Und ja, die Powerbank schaltet sich damit nicht ein.
Wie oben geschrieben wäre dies eine Lösung für einen Akku oder Powerbank OHNE automatische Abschaltung.


#132

nein klar, aber die Antwort ist: GND. nicht als Potential, aber als Ergebnis. Laut Anton-V hat er jja nicht A0 verbunden, sondern GND.


#133

Er hat doch auf dem Bild eindeutig A0 verbunden. Und Dennis auch?


#134

Mehr kann ich dazu nicht sagen :wink:
Und laut Spezifikation ist das auch genau das, was der Pololu möchte. A mit GND verbinden… würde also Sinn ergeben.


#135

Das ist doch der Stand von vor drei Tagen. Wir reden hier über das aktuelle Setup, für das @Dennis den Schaltplan gepostet hat.


#136

Ah, ich überlas. Ist aber auch kein Wunder dass das funktioniert, A0 ist dann halt zufällig GND mäßig (bzw. ausreichend für den pololu) unterwegs. Ist aber nicht sicher so. Deswegen sollte man ja pullup/-down Widerstände verwenden. Damit genau das reproduzierbar sicher passiert…


#137

Der Arduino hat ja mit unserer Software den internen Pull-Up Widerstand (meine auch 20k).
Und reproduzierbar ist es auf jeden Fall. Es funktionierte bisher in 100% der Fälle.
Auch Long-Press(Titel-Nr-Ansage) funktioniert zuverlässig.


#138

mit reproduzierbar meinte ich auch grundsätzlich immer überall für jeden, in jeder Konstellation.
Dass das im Einzelfall bei jedem Versuch ok ist, ist ja möglich, aber siehe nachfolgende Erläuterung:

Warum braucht ein GPIO-Eingang einen Pullup- oder Pulldown-Widerstand?

Wenn man einen GPIO als Eingang konfiguriert, dann hat der noch unbeschaltete GPIO-Eingang noch keinen festgelegten Zustand. Das heißt, er liegt nicht zwangsläufig auf “High” oder “Low”. GPIO-Eingänge sind CMOS-Eingänge. Die tendieren dazu, im unbeschalteten Zustand “High” (1) anzunehmen. Darauf darf man sich aber nicht verlassen. GPIO-Eingänge neigen dazu zufällig in die eine oder andere Richtung zu schalten. Das heißt, sie haben mal den Zustand “Low” (0) und mal den Zustand “High” (1). Und zwar abhängig davon, was sich der jeweilige Pin oder Anschlusspunkt gerade einfängt. Das einflussnehmende Spektrum reicht von hochfrequenten Einstreuungen umliegender Bauteile und Pins, bis hin zu Überspannung. In der Regel sind das unerwünschte Effekte, die dazu führen, dass der Zustand eines GPIO-Eingangs völlig undefiniert zwischen “High” und “Low” hin- und herspringt. Das hat den Nachteil, dass wenn man einen GPIO-Eingang auswertet, nie sicher sein kann, welchen Zustand er wirklich hat.

Um dem entgegenzuwirken, verhilft man einem GPIO-Eingang zu einem definierten Grundzustand. In der Praxis versieht man den jeweiligen Pin mit einem Pullup- oder Pulldown-Widerstand. Abhängig davon, ob man als Grundzustand “High” oder “Low” erwartet.


#139

Ja, stimmt alles, aber der Arduino hat ja einen integrierten Pull-Up-Widerstand, den wir ja in der Software auch explizit definieren.

https://playground.arduino.cc/Deutsch/Eingang

Da dies ein recht häufiger Einsatzfall ist, wurden im Microkontroller hierfür passende interne Pull-up Widerstände (ca. 20 bis 50 Kiloohm) integriert, die sich bei Bedarf aktivieren lassen.

Danach ist nur noch diese Aussenbeschaltung notwendig


#140

Das klingt für mich (als Fachfremden) nach einer nachvollziehbaren Erklärung, warum der Pololu einschaltet. Umgekehrt müsste es auch noch eine Erklärung für das Schalten von Play/Pause beim TonUNIO geben. Aber wahrscheinlich gibt es da auch eine ganz banale Erklärung für, und der Zauber ist weg, wenn man sie erst einmal gehört hat…


#141

Vielleicht kann man das messen. Habe hier ein Multimeter, wüsste aber nicht genau wie.


#142

So @DasMoeh, kann Erfolg melden.:slightly_smiling_face:

Hinweis: Polulu zu Arduino: OFF an D7, hatte ich noch verbunden, dann funktionierte der Timer wie gewünscht.

Danke noch mal::blush: