Elektroniktaster an ESP32

OP #7967021
Lesenswert?

Hallo zusammen,

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.

Hier sind ist der Verdrahtungsplan (https://search.abb.com/library/Download.aspx?DocumentID=2CKA000073B5087) und die Dokumentation für den Taster (https://library.e.abb.com/public/76e5025045094b54bf3d9e070f65eb7a/9AKK108471A3684_de_A_HowTo%20-%20Elektronic%20switch%2024V.pdf?x-sign=stWkg0O%2bhnZsGZBEtTr667CMj1ieuchXbP6oetn4xXhQyfnT30EeHmwMxlrhF30H#page=3).

Ich bin neu in der faszinierenden Welt der Mikrocontroller und würde gern wissen, ob das so technisch sinnvoll und sicher ist:

Lochrasterplatine zum Löten von

Dazu bräuchte ich auch noch ein Gehäuse.

Kann ich die Pins des Tasters einfach an die GPIOs des ESP32 hängen?

Danke und Gruß Michael

(Firma: Funkenflug Industries) #7967051
Lesenswert?

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.

Beitrag #7967057 wurde vom Autor gelöscht.
OP #7967061
Lesenswert?

Super, vielen Dank für eure Hilfe!

Dieter S. schrieb:

Statt dessen würde ich einen fertigen verwenden, wie z.B. diesen: https://www.reichelt.de/de/de/shop/produkt/dc_dc-wandler_2_5_w_5_v_500_ma_sil-242834

Sieht super aus, danke!

H. H. schrieb:

Die üblichen ESP32 Platinchen haben ja einen 3,3V Regler drauf.

Sehe ich das richtig, dass z.B. diese Platine (https://www.reichelt.at/at/de/shop/produkt/xiao_esp32c3_wifi_bt_mit_header-406869) keinen 3,3V Regler hat, d.h. 3,3V direkt haben will?

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?

H. H. schrieb:

Ansonsten brauchst du noch einen Treiber für die LEDs, der ESP liefert ja nur 3,3V. Da könnte man einfach einen 74HCT04 nehmen.

Damit bekomme ich dann 5V (also die Spannung meines Netzteils), oder? Denkt ihr, dass die LEDs damit hell genug leuchten werden?

: Bearbeitet durch User
OP #7967218
Lesenswert?

Herzlichen Dank für die Unterstützung!

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?

Angehängte Dateien:
Beitrag #7967237 wurde vom Autor gelöscht.
OP #7967256
Lesenswert?

H. H. schrieb:

SW-C auch noch an GND, und eigentlich auch noch drei Pullups (wenige 10kOhm) nach 3.3V an die Schaltereingänge.

Dafür kann ich einen "normalen" Widerstand, z.B. 33kOhm (bspw. https://www.reichelt.at/de/de/shop/produkt/duennschichtwiderstand_axial_0_6_w_33_kohm_1_-233726) verwenden? Soll ich noch Zener-Dioden nach dem Widerstand dazunehmen, um sicher zu gehen, dass nie Spannungen >3.3V an den GPIOs anliegen, oder ist das unnötig?

(Verbesserter Plan siehe Anhang.)

Angehängte Dateien:
(Firma: Funkenflug Industries) #7967296
Lesenswert?

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.

Gast #7967311
Lesenswert?

Ben B. schrieb:

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?

Tja, hättest du mal lesen sollen:

https://library.e.abb.com/public/76e5025045094b54bf3d9e070f65eb7a/9AKK108471A3684_de_A_HowTo%20-%20Elektronic%20switch%2024V.pdf

"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"

#7967318
Lesenswert?

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.

[1] https://wiki.seeedstudio.com/XIAO_ESP32C3_Getting_Started/#strapping-pins

: Bearbeitet durch User
OP #7967328
Lesenswert?

H. H. schrieb:

Noch eine Kleinigkeit: die unbenutzten Eingänge des HCT04 dürfen nicht unbeschaltet bleiben. Klemm die an GND.

N. M. schrieb:

Und dann musst du noch extrem vorsichtig mit den Stapping Pins [1] sein damit der ESP richtig bootet.

Danke👍

N. M. schrieb:

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.

Ich habe keinen passenden SPI-Konverter gefunden, jedoch einen mit I2C-Verbindung: MCP23017 (https://www.reichelt.at/at/de/shop/produkt/entwicklerboards_-_i_o-erweiterungsboard_mcp23017-376528). Dieser arbeitet mit einer Logikspannung von 5V, d.h., ich kann mir sowohl den HCT04 als auch die Pullup-Widerstände sparen?

#7967364
Lesenswert?

Michael schrieb:

MCP23017

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.

Michael schrieb:

d.h., ich kann mir sowohl den HCT04 als auch die Pullup-Widerstände sparen?

Ja

: Bearbeitet durch User
(Firma: Funkenflug Industries) #7967424
Lesenswert?

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.

OP #7967431
Lesenswert?

N. M. schrieb:

Pass aber auch hier auf, GPA/B7 sind reine Outputs.

Das verstehe ich leider nicht. Du beziehst dich auf den MCP23017 (https://cdn-reichelt.de/documents/datenblatt/A300/IO-EXPANDER-MCP23017-BREAKOUT.pdf)?

Am ESP hätte ich den MCP23017 an GPIO6 und 7 angeschlossen, da laut diesem Bild (https://files.seeedstudio.com/wiki/XIAO_WiFi/pin_map-2.png) die SDA/SCL Pins an 6/7 sind.

https://wiki.seeedstudio.com/XIAO_ESP32C3_Getting_Started/#power-pins:

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?

Gast #7967435
Lesenswert?

Ben B. schrieb:

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.

Sinnlos sind vor allem deine Postings.

#7967469
Lesenswert?

Michael schrieb:

Das verstehe ich leider nicht. Du beziehst dich auf den MCP23017 (https://cdn-reichelt.de/documents/datenblatt/A300/IO-EXPANDER-MCP23017-BREAKOUT.pdf)?

Nein, auf das wirkliche Datenblatt des MCP23017: https://ww1.microchip.com/downloads/aemDocuments/documents/APID/ProductDocuments/DataSheets/MCP23017-Data-Sheet-DS20001952.pdf

Seite 11, Spalte zu GPA7/GPB7, letzter Satz:

1
Bidirectional I/O pin. Can be enabled for interrupt-on-change and/or internal weak pull-up resistor./ 
2
Output only (MCP23017).
: Bearbeitet durch User
OP #7967524
Lesenswert?

H. H. schrieb:

Für I2C nur 2x, und sowas gibt auch als fertiges Platinchen für 1€.

https://www.reichelt.at/de/de/shop/produkt/entwicklerboards_-_bidirektionaler_logikpegelkonverter_4-kanal_-235503?search=BSS138&

Der DAU findet zwar nur eins um 7€ - soll jedoch egal sein, sofern es funktioniert ;)

@Cyblord: Hast du eine Empfehlung für Hardware-Grundlagen-Literatur? (C/C++ kann ich schon.)

OP #7971650
Lesenswert?

Ben B. schrieb:

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)

Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren