Meine erste Box ohne Bohren

Da muss mir irgendwo ein Denkfehler unterlaufen sein. Ich habe das glaube ich schon so verstanden.
Was ich gerade nicht kapiere:
Wo ist der Unterschied zu meiner Verkabelung? Wenn ich den Button mit Pololu A verbinde, und dann zusätzlich den Button mit einem Pin vom Arduino, verbindet das doch auch Pololu A mit dem Pin!?
Das andere (nicht GND-) Füßchen vom Button ist leider keine Option, das ist auch mit dem ersten Füßchen verbunden.
Gibt es irgendeinen elektrotechnischen Trick, wie ich die beiden Verbindungen „separat“ herstellen kann? Bitte verzeiht meine laienhaften Erklärungsversuche…

Den habe ich schon für den Standby Timer. Das läuft, und ich wollte den über die Software mitbenutzen. Ein erster Test dazu (mit Longpress Pause) sieht vielversprechend aus.

Ich sage jetzt einfach mal Nö, die Hardware scheint das verkraftet zu haben. Und selbst wenn, das gehört doch dazu…

Ja, aber du verbindest dann auch Arduino Ausgang mit Button Ausgang.
Und wenn der Arduino an diesem Pin High hat und du den Button für GND drückst, hast du den Ausgang kurz geschossen.

Außerdem bringt dir eine Verbindung vom Arduino zu A nichts.
Die Anleitung zum Pololu sagt, das man mit A auf GND nur einschalten kann.

Zum Ausschalten brauchst du :

  • GND am CTRL
  • High am OFF oder
  • eine direkte Verbindung zwischen A und B

Also einen Pin vom Arduino um ihm die Möglichkeit zu geben auszuschalten, das hast du ja schon für den standby
Und einen weiteren damit der Arduino erkennt, dass Power gedrückt wurde und dann kann der Arduino wieder über den gerade genannten Pin ausschalten.

Alternativ kann man den Power Button trennen, dass er nicht mehr gegen GND schaltet.
Denn dann kann er A mit B verbinden und nutzt die Toggle Funktion vom Pololu.
Drücken ein, drücken aus, drücken ein,…
Und Arduino kann weiterhin mit der Verbindung zu OFF ausschalten wenn ihm danach ist.

Den Ansatz habe ich bei der ersten Box verwendet. Klappt einwandfrei. Aber ich will ja auch was dazulernen :wink:

Das tatsächliche Ausschalten ist nicht das Thema, das läuft ja über High am OFF vom Pololu.

Was ich immernoch nicht verstanden habe ist, wie ich das Signal von dem Powerbutton gleichzeitig zum A am Pololu und zum Eingang vom Arduino bekomme. Also, wie ich das Ganze verkabeln muss. Ich versuche mein ??? mal in Bildern auszudrücken.

Dieser Aufbau tut fast alles was ich will. Zur Not kann ich damit auch leben, würde mich aber jedes Mal ein kleines Bisschen ärgern, wenn ich die Box anschaue. Power schaltet die Box ein, und der Standby Timer wieder aus.
Und nein, ich habe GND nicht extra nochmal mit dem Button verbunden, nur der Vollständigkeit halber in dem Bild eingezeichnet.

Der folgende Aufbau (don’t try this at home!) verursacht das Problem mit den Leds, weil der Arduino wohl über A vom Pololu mit der Akkuspannung versorgt wird. In meinen Augen macht es kein Unterschied, ob ich den Eingang an dem Button direkt oder am Pololu A anschließe. Das ist ja alles verbunden.

Und jetzt die konkrete Frage: Wie muss ich die Verkabelung ändern, dass ich zusätzlich zum beschriebenen Verhalten vom 1. Bild den Status vom Power Button über Arduino A6 auswerten kann?

Ich glaube ich verstehe…
der A ist im Pololu also so verschalten, dass in der schaltung vom Bild 2 immer GND erkannt wird?
Tausch mal D 6 und A7.
Dann kannst zu den internen PullUp nutzen

Ich befürchte, mir fehlt Erfahrung, wie man solche Probleme kommuniziert. Und ich verstehe die Frage auch nicht, bzw. was wo erkannt werden soll.
Ich versuche mich nochmal am Beschreiben des Zustands:
Wenn ich Pololu A mit A6 verbinde, schaltet der Pololu ein.
Pololu A gegen GND im ausgeschalteten Zustand 3,23V, eingeschaltet 0,92V
Pololu A gegen GND mit gedrücktem Powerbutton 0Ohm, sonst unendlich.

Und bevor ich was falsch verstanden habe und doch noch was kaputt geht:

Du meinst D7 und A6?
Kapiere ich dann aber trotzdem nicht. D7 (Off) tut ja das gewünschte.
Soll ich Pololu A statt an einen analogen Pin an einen Digitalen hängen und das damit testen?
Ich hatte mich bisher an den anderen 3 Buttons orientiert…

Ok, wie gut bist du denn im Umgang mit dem Arduino? Schaffst du es auch einen anderen Sketch drauf zu machen und im seriellen Monitor etwas zu lesen?

Entschuldigung, so ist es richtig.

Ja. Bin Softwareentwickler. Aus Überzeugung :innocent:

Dann mach mal den Beispiel Sketch für analoge Eingänge drauf und schau dir an was an A6 genau passiert wenn Pwr gedrückt oder nicht gedrückt ist.
Vielleicht ist binär zu weit gefasst und der Analog Wert besser auszuwerten

Mit dem Setup aus Bild 2?

Jupp, schauen was der Arduino am Eingang wahrnimmt und dann im Programm
If A6 <=150 then shutdown

So, Kinder sind wieder gesund und ich kann mich gedanklich mit anderen Themen befassen.

Kann ich den Arduino einfach so am PC anschließen, wenn er parallel über den 5V versorgt wird? Über USB bekommt der ja auch Saft…?

An vielen Stellen im Forum wird davon abgeraten

1 „Gefällt mir“

Das kann so absolut nicht sagen. Wenn die Powerbank den Tonuino am 5V Anschluss des Nanos speist, ist im Nano eine Schutzdiode verbaut, die verhindert dass Spannung rückwärts zum USB Port abgegeben wird. Voraussetzung ist allerdings, dass von der Powerbank wirklich am 5V Anschluss eingespeist wird und nicht an der USB-Buchse des Nanos, z.B über ein aufgeschnittenes USB-Kabel und extra USB-Buchse am Gehäuse. Dann wird die Schutzdiode nicht wirksam und es kann Rückspannung zum USB Anschluss des PC gelangen. Ich speise am Tonuino Klassik von der Powerbank am 5V Anschluss des Nano ein. Dabei kam es nie zu Problemen, wenn der USB-Anschluss am PC angeschlossen wurde. Auch wenn der Tonuino über Vin (Bei anderen Versorgungslösungen) gespeist wird, ist der USB-Anschluss über die gleiche Diode geschützt, so dass auch da keine Gefahr besteht.

1 „Gefällt mir“

Danke @Thomas-Lehnert für die ausführliche Erklärung! Bin jetzt wieder etwas schlauer.

Das funktioniert so irgendwie, allerdings ist die Box dann nicht mehr benutzbar.
Nach dem Einschalten gibt analogRead(A6) Werte zwischen 185 und 187 aus, mit pinMode(A6, INPUT_PULLUP) 733-735. Wenn der Button gedrück ist, immer 0. Das zur Info.

Zuerst die gute Nachricht:

int powerButtonPinValue = analogRead(A6);
if (powerButtonPinValue < 5) { 
  sleepAtMillis = 1;
  checkStandbyAtMillis();      
}

schaltet die Box aus.

Leider kommt nach dem Shutdown ein leises hohes Fiepen aus dem Lautsprecher. Die Power LED des Arduinos leuchtet wie oben beschrieben auch noch. Das kommt wohl daher, dass der Arduino über den Analogpin direkt mit der Akkuspannung versorgt wird.

Außerdem kann ich keine Musik mehr starten. Der Rfid Reader wird zwar erkannt, aber ich bekomme beim Karte auflegen immer einen COM Error 1. Sobald ich die Verbindung Powerbutton → A6 trenne, klappts wieder.

Wow! Ich bin schwer beeindruckt! Vielleicht sollten das die Leiterplattenpiraten / @Thorsten irekt so übernehmen und als komplettes Produkt anbieten. Ich würde es sofort kaufen! :heart:

Hier gibt´s die Box übrigens noch/ wieder:

Bzw. jetz thier: Tragbarer drahtloser Bluetooth-Lautsprecher Oneder V9 Fabric Tragbarer Karten-Subwoofer Kreativer Geschenk-Mini-Lautsprecher (blau)

1 „Gefällt mir“

Hi, hattest du erfolg mit dieser Box und dem ESP Fork?