ich möchte den Busch-Jaeger Elektroniktaster an einen Mikrocontroller anbinden. Ziel ist es, das Drücken der Tasten zu detektieren sowie die Status-LEDs zu steuern. Später soll die Kommunikation per ESP-Now erfolgen, deshalb plane ich den Einsatz eines ESP32-C3. Das ganze Setup soll Unterputz eingebaut werden.
Bei den üblichen ESP32-Boards braucht man 5V (oder 3,3V) und nicht 12V. Ein 12V->3,3V Wandler ist daher schon sehr sinnvoll, 12V schafft der Linearregler auf dem ESP32-Board wahrscheinlich wegen der Verlustleistung nicht und ich weiß auch nicht, ob da 5V-Schaltungen drauf sind (USB?), die an 12V dampfförmig das Board verlassen.
Welche Platine würdet ihr mir empfehlen? Ich habe gerade festgestellt, dass ich keine starke Präferenz für das C3 Modell habe. Wichtig ist nur die Unterstützung von ESP-Now. Ich brauche dann auch noch ein RTC-Modul - vielleicht gibt es das bereits alles auf einer Platine?
Der ESP32 hat eine "RTC". Wie genau die läuft, k.A.
Allerdings, Spannung weg....Zeit weg.
Ich verwende immer NTP.
Alternativ zusätzlich eine DS3231 einbauen.
Ich versuche gerade, den Schaltplan zu zeichnen. Dabei stelle ich fest, dass ich mir nicht ganz sicher bin, ob ich alles richtig verstanden habe.
74HCT04:
VCC verbinde ich mit den 5V (+), GND mit GND. Die Eingänge A1...A6 verbinde ich mit GPIOs. Am Taster muss ich dann LED1...LED6 mit den Ausgängen Y1...Y6 verbinden sowie GND an LED-C anschließen?
Weiters habe ich nun festgestellt, dass ich laut meinem Verständnis mit diesem spezifischen ESP-Modell zu wenig GPIO-Pins habe (benötigt 6x2) (?).
Im Anhang mein Entwurf zur Abfrage von 3 Tasten sowie Steuerung der zugehörigen LEDs.
Weitere Frage: Nun habe ich doch 5V an den GPIOs D3...5, vertragen die das?
Elektroniktaster... Wieviel Strom brauchen dessen LEDs, bekommt man die evtl. an 3,3V zum laufen? Falls ja, der ESP32 kann mit einem GPIO-Pin 40mA gegen Masse liefern, das reicht für zwei normale (20mA) LEDs. Dann könnte man sich auch die 5V und den CMOS-IC sparen oder brauchen die LEDs (z.B. wegen interner Vorwiderstände) zwingend 5V?
Achtung, bei manchen ESPs können nicht alle GPIOs als Output verwendet werden, da muss man ggf. sinnvoll aufteilen.
Wegen der Taster/Schalter: Der ESP32 hat interne Pullups, man braucht keine externen. Was man eher machen sollte, wäre ein 10..47nF Keramikkondensator über die Taster (nach Masse) zur Entprellung. Dann muss man sich damit nicht in der Software herumplagen und störunterdrückend wirken die auch gleich noch mit.
Elektroniktaster... Wieviel Strom brauchen dessen LEDs, bekommt man die
evtl. an 3,3V zum laufen? Falls ja, der ESP32 kann mit einem GPIO-Pin
40mA gegen Masse liefern, das reicht für zwei normale (20mA) LEDs. Dann
könnte man sich auch die 5V und den CMOS-IC sparen oder brauchen die
LEDs (z.B. wegen interner Vorwiderstände) zwingend 5V?
"LED
Zur Visualisierung eines Status gibt die zentrale Steuerung (z.B. Aktor) an
einem definierten Ausgang eine Spannung 5..24V AC/DC heraus. Diese
wird über die Anschlussleitung/Anschlussblock zur entsprechenden LED
geleitet. Auf LED-C wird der entsprechende Gegenpol/Masse (für alle LEDs
pro Klemmblock gleich!) geschaltet. Stromaufnahme pro LED: ca. 1mA"
Wenn du nicht gerade irgendwas multiplext hast du sowieso etwas wenig Pins.
6 Eingänge (SW1-6).
6 Ausgänge (LED1-6).
Wäre so schon zu wenig bei deinem Board.
Dann noch 2 Pins für I2C an die gewünschte RTC.
Und dann musst du noch extrem vorsichtig mit den Stapping Pins [1] sein damit der ESP richtig bootet. Fallen also evtl auch noch ein paar nutzbare Pins weg.
Bei den LEDs brauchst du sowieso eine Pegelkonvertierung 3V3-->5V.
Ich würde deshalb über Portexpander nachdenken. Dann hast du mehr Pins und bekommst die Pegel Konvertierung quasi gratis. Ich persönlich würde SPI nehmen. Dann soll der DMA/SPI das einfach im Hintergrund zyklisch aktualisieren.
Bei den LEDs brauchst du sowieso eine Pegelkonvertierung 3V3-->5V.
Ich würde deshalb über Portexpander nachdenken. Dann hast du mehr Pins
und bekommst die Pegel Konvertierung quasi gratis. Ich persönlich würde
SPI nehmen.
Ich dachte gestern an einen MCP23017-E/SO, allerdings kann die Schaltung dank deinem Hinweis wohl deutlich vereinfacht werden.
Kann IN/OUT. Bei Input kann er weak pullup. Bei Output kann er PUSH/PULL (25mA).
Ja, der ist doch gut. Den gibt es auch mit SPI, aber I2C hat den Vorteil dass du dich in den Specs bewegst. Bei SPI reicht es sonst mit VIOH=0.8*VCC nicht.
Den kannst du dann, wenn du willst, auf die gleiche I2C hängen wie deine RTC. Brauchst also nur 2 GPIOs auf deinem ESP Board. Wobei Reset/INTx je nach Programmablauf vielleicht auch interessant sind.
Pass aber auch hier auf, GPA/B7 sind reine Outputs.
Jo, schade daß man zu diesen ominösen Supertastern kein Datenblatt findet, ob die einen 3,3V Pegel bereits sicher als high erkennen, da war sich Busch-Jäger anscheinend zu fein für. Naja nichts für ungut, dann noch viel Spaß mit den Doppel-Pullups, irgendwie muss die Komplexität so einfacher Schaltungen ja sinnlos gesteigert werden.
5V - This is 5v out from the USB port. You can also use this as a voltage input but you must have some sort of diode (schottky, signal, power) between your external power source and this pin with anode to battery, cathode to 5V pin.
Die Diode braucht man nur, wenn man eine Batterie als Spannungsquelle hat?
Jo, schade daß man zu diesen ominösen Supertastern kein Datenblatt
findet, ob die einen 3,3V Pegel bereits sicher als high erkennen, da war
sich Busch-Jäger anscheinend zu fein für.
Du bist nur zu dumm das Datenblatt zu verstehen. Die Taster wissen nichts von irgendwelchen Pegeln, da macht die Elektronik, an die sie angeschlossen werden.
Naja nichts für ungut, dann
noch viel Spaß mit den Doppel-Pullups, irgendwie muss die Komplexität so
einfacher Schaltungen ja sinnlos gesteigert werden.
Hast Du Dir überhaupt schon Gedanken gemacht, wie Du den ESP32
programmieren möchtest?
Ich würde mit der Arduino IDE und C beginnen.
Zwischenzeitlich habe ich das Projekt etwas ruhen lassen, dafür aber einiges Neues gelernt.
Ich habe nun einen neuen Plan mit Kicad gezeichnet (unter Beachtung von https://www.mikrocontroller.net/articles/Schaltplan_richtig_zeichnen). Den I2C Bus zwischen PCA9555 und ESP32 muss ich dann mMn mit Pull-up Widerständen (R1, R2 im Plan) verbinden.
(Weggelassen am Schaltplan: LED-C---GND, SW-C---GND, LEDx---IO0_x, SWx---IO1_x.)
Ziel ist es, diese Schaltung als Prototyp mit Steckbrett und Breakout-Adaptern aufzubauen, zu programmieren und zu testen, bevor weitere Komponenten hinzugefügt werden. Später werde ich bei JLCPCB die Platinen fertig bestückt bestellen, damit das Endresultat kompakt und nicht von meinen Löt-Kenntnissen abhängig ist :)
Die Busch-Jaeger Taster wurden noch nicht geliefert. Weiß jemand zufällig, welcher Steckertyp verwendet wird? Ich denke, es wäre sauber, wenn ich auf meiner Platine eine Buchse (16 Pins) anbringe und zwischen meiner Buchse und der Busch-Jaeger Buchse ein vorgefertigtes Kabel (16-adrig) mit ebendiesen Steckern verwenden würde. (Datenblatt "Anschlussblock mit Steckklemmen", https://search.abb.com/library/Download.aspx?DocumentID=2CKA000073B5087)