Z21 Arduino Zentrale (WeMosD1mini)

From Digital Modellbahn

Eigenbau | Zentrale Z21PG | Z21 mobile | XpressNet | LocoNet | Booster

Arduino UNO Version | Arduino MEGA Version | ESP8266 (WeMos D1 mini) Version | ESP32 Version | Sanguino Version

Z21 logo.png

Beschreibung

ESP8266 WeMos D1 mini Anschlussbelegung

Zur Herstellung einer kleinen DCC Zentrale ohne viele Bauelemente kann diese mittels des WeMos D1 mini (ESP8266) aufgebaut werden. Diese kleine z21PG hat natürlich nur einen abgespeckten Funktionsumfang, kann aber trotzdem so eingesetzt werden wie der "große Bruder". Mit einem L298 Modul als Booster hat sie zwei Gleisausgänge (Fahren und Programmieren), kann mit einem I2C OLED Display ausgestattet werden um die IP-Addressen welche zugewiesen wurden einfach in die Z21 App übernehmen zu können als auch einen LocoNet-Interface zum Verbinden von Rückmeldern, Schaltmodulen oder der DAISY II als Handregler.

Funktionsumfang:

  • DCC Ausgang mit RailCom nach NMRA
  • WLAN-Interface mit AP und Client (integriert)
  • interner Booster (L6203 oder L298)
  • OLED SSD1306 Display I2C 128 x 64 Pixel, 0,96"
  • Update des Sketch mittels OTA
  • XpressNet (In Planung)
  • LocoNet (In Planung)
  • S88N (In Planung)
  • global RailCom Detector (In Planung)
  • Temperatursensor Dallas DS18B20 (In Planung)

Alle anderen Interface können aufgrund der geringen Anzahl an I/O-Pins leider nicht realisiert werden. Daher ist auch keine Rückmeldung/Anzeige der Gleisspannung und Temperatur auch möglich. Ggf. kann mit einer Erweiterung noch ein Global RailCom Detektor integriert werden, dann fällt aber die Serial DEBUG Funktion weg!

Das Sketch der Z21PG Zentrale wurde extra für den WeMos D1 mini optimiert. Denn dieses Board besitzt einen Spannungsteiler am ADC, welcher es erlaubt Spannungen bis ca. 3.3 Volt dort zu erkennen. Für die korrekte Funktion der Kurzschlusserkennung und ACK Erkennung wurden deshalb andere Werte gesetzt!

Pinbelegung ESP8622 (WeMos D1 mini)

Hier eine Auflistung der Pinbelegung für den ESP8266 im Sketch "Arduino Z21 Zentrale"

Arduino Pin Funktion aktiv Pegel (HIGH/LOW)
GPIO0 (D3) Taster/Reset LOW
GPIO2 (D4) DCC status LED LOW (für ESP integrierte LED: #define POWER_LED_INVERT)
GPIO12 (D6) DCC HIGH/LOW
GPIO14 (D5) NDCC (Booster intern) output
GPIO13 (D7) Relais Programmiergleis (PROG) LOW (für L298n Ausgabe: #define PROG_OUT_INVERT)
GPIO15 (D8) LocoNet TX output
GPIO16 (D0) LocoNet RX input
GPIO4 (D2) SDA (I2C) output/input
GPIO5 (D1) SCL (I2C) output

Die DCC Status LED (GPIO2) als auch alle Pull-Up Widerstände sind bereits im ESP8266 vorhanden und müssen daher nicht extern aufgebaut werden!

Baubericht

L298n Modul ohne Sense
Ansteuerung L298n (optionale Anteile entfallen beim WeMos D1 mini) (Eagle)

Beschreiben möchte ich einmal den Aufbau mittels eines L298 Modul als Booster, wo der WeMos D1 mini mittels Adapterplatine (Lochraster) und Pinheader aufgesetzt wird. Da das L298 Modul keinen Sense für den L298 Treiber verbaut hat, muss dieser vorher noch nachgerüstet werden. Dazu ist ein Widerstand mit 0.1 oder 0.33 Ohm und 5W notwendig. Dieser wird zwischen Masse (GND) und dem Pin 1 + 15 des L298 installiert. Im folgenden ist kurz mit Bildern erklärt, wie das L298n Modul für den Betrieb modifiziert werden muss:

Um die Bilder in voller Auflösung zu sehen können diese als PDF hier geöffnet werden.

L298n Modul mit WeMos D1 mini

Die Stromversorgung mittels +5 Volt erhält der WeMos D1 mini über den auf dem L298n Modul installierten Spannungsregeler. Wenn der WeMos über den 5V Pin versorgt wird darf der USB-Anschluss nicht genutzt werden, da dies sonst zu Schäden führt. Wenn der USB Port zum Debug oder Sketch Upload benötigt wird, muss entweder die Schutzdiode auf dem WeMos D1 mini entfernt werden oder mittels Jumper (diesen habe ich unter dem WeMos Board auf der Adapterplatine verbaut) die Versorgung vom L298n Spannungsregler getrennt werden.

Auf der Adapterplatine wurde eine weitere 4 Pin Buchse installiert für die Verbindung zum OLED Display. Der freie Platz links im Bild ist für den Aufbau des LocoNet-Interface vorgesehen.