Bis jetzt habe ich diese mit an den LED-Ring-Strom-Anschluss drangehangen. Das klappt auch sehr gut. Allerdings schaltet diese sich natürlich nicht beim Nachtmodus aus.
Nun wollte ich die 3 Taster auf BUTTON_LED umstellen. Allerdings kenne ich mich mit Widerständen & Co nicht so gut aus. Bei mir bleiben die Fragen:
Suche ich mir auf der mini4L einfach bei den „ext“ headern einen PIN aus und nehme den als BUTTON_LED (V+)? Welchen GND ist egal?
Ich habe das Feature selbst nie verwendet aber so müsste es klappen, ja.
Ja.
Gemäß Datasheet kann ein Pin des PE max. 50 mA liefern. In deinem Datenblatt oben steht nur <= 20 mA. Also mind, potentiell reicht das nicht. Dann brauchst entweder nen Mosfet oder du müsstest dir den Code in dem Sinn duplizieren, dass es noch z. B. BUTTON_LED2 gibt. D.h. alle Stellen, die BUTTON_LED behandelt, müsstest du dann darum erweitern. Und dann könntest zwei Buttons an BUTTON_LED anschließen und einen an BUTTON_LED2. Irgendwie so.
Eigentlich nicht, aber das wäre natürlich auch eine Möglichkeit, um den Strom so weit zu reduzieren, dass du mit einem I/O hinkommst .
Danke, ich habe mal den Button mit einem Multimeter und Labornetzteil gemessen. Bei 3,3V zeigt der 0,000 uA an. Erst bei ca. 12V zeigt der mal 0,009 uA an. Verrückt wie wenig die helle LED verbraucht. Wieso auch immer die dann <=20 mA angeben.
Im Code ist BUTTONS_LED 114. Bei der mini4L wäre das PIN 2 beim rechten unteren PIN unter ext? Oder woher kommt die 114???
Ja genau, 114 dann.
Zur Erklärung woher das kommt: Die GPIOs des ESP32 liegen ja im Bereich von 0 bis 39. Ich habe dann irgendwann gesagt, dass ich den PE gerne in der Nummerierung „GPIO-artig“ (*) verwenden möchte und damit bei 100 starten will. Der PE (PCA9555) hat zwei Ports (0 und 1) à 8 I/O. Und da ist der erste Port mit 100 bis 107 adressiert und der zweite von 108 bis 115. Demnach ist 114 der vorletzte I/O des Port 1.
Gekapselt wird diese ganze Bit-Schieberei in der Port.cpp.
(*) Die lassen sich nur für einfache Aufgaben verwenden (Dinge schalten oder auslesen, so lange das nicht fürchterlich schnell gehen muss). Sowas wie die Ansteuerung eines Neopixels geht damit nicht.