Erste Schritte mit dem Wemos D1 Mini

Nach den ersten Schritten mit dem Arduino Nano (Teil 1 und Teil 2) soll nun ein anderer Mikrocontroller zum Zug kommen, der ESP-8266EX auf dem Wemos Lolin D1 mini board.

Um dieses Board in der Arduino IDE verwenden zu können muss es zuerst im Board Manger installiert werden. Es ist unter dem Namen „esp8266“ zu finden. Falls es nicht gefunden wird muss unter File->Preferences-> Additonal Boards Manager URLs die URL http://arduino.esp8266.com/stable/package_esp8266com_index.json hinzugefügt werden. Danach kann unter Tools->Boards->Board Manager der ESP8266 gesucht und installiert werden. Dadurch werden bei den Boards diverse ESP8266-Boards aufgelistet. Für diese Versuche wird WeMos D1 R2 & mini ausgewählt.

Als erstes war das Ziel, zwei LEDs mit zwei Tastern zum Leuchten bringen. Die hier eingesetzten LEDs haben eingebaute Vorwiderstände. Falls normale LEDs zum Einsatz kommen den Vorwiderstand nicht vergessen! Also zwei Pins als Input und zwei als Output definiert, Schaltung aufgebaut und los!

void setup() {
  pinMode(D2, INPUT);
  pinMode(D3, INPUT);

  pinMode(D6, OUTPUT);
  pinMode(D7, OUTPUT);
}

void loop() {
  int left = digitalRead(D2);
  int right = digitalRead(D3);

  digitalWrite(D6, left);
  digitalWrite(D7, right);
}
Erster fehlgeschlagener Versuch mit dem Wemos D1 mini (Steckplatinenansicht)
Erster fehlgeschlagener Versuch mit dem Wemos D1 mini

Die rote LED funktionierte auch wie geplant, die grüne leuchtete aber andauernd. Nachdem die normale Fehlersuche (Verbindungen und Code kontrollieren) keinen Erfolg brachte war der nächste Schritt die Recherche: gibt es Pins bei diesem Board, die speziell geschaltet sind? Schlussendlich hat mir diese Pinout Referenz des ESP8266 (Kapitel „Wemos D1 Mini Pinout“ und „Best Pins to Use“, leider nicht direkt verlinkbar) das Problem aufgezeigt: D3 (GPIO0) ist für Input als „pulled up“ angegeben und sollte nicht verwendet werden. Also das Ganze umgebaut und nochmals versucht:

void setup() {
  pinMode(D6, INPUT);
  pinMode(D7, INPUT);

  pinMode(D1, OUTPUT);
  pinMode(D2, OUTPUT);
}

void loop() {
  int left = digitalRead(D6);
  int right = digitalRead(D7);

  digitalWrite(D1, left);
  digitalWrite(D2, right);
}
Zweiter, erfolgreicher Versuch (Steckplatinenansicht)
Zweiter, erfolgreicher Versuch

Mit diesem Umbau klappte dieser einfache Aufbau dann wie geplant.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.