Das “One Button Shield” enthält, wie die Bezeichnung es erahnen lässt, genau einen Taster, welcher den Status AN / AUS auf dem digitalen Eingang D3 setzt.
Das Shield ist so gebaut das dieses auf den Wemos D1 mini gesteckt werden kann.
Es muss jedoch darauf geachtet werden das, dass Shield richtig herum gesteckt wird.
Da das Shield direkt auf den Wemos gesteckt wird und somit kein Platz mehr vorhanden ist für andere Shields zbsp für Relais, RGB LED usw. sollte hier eine Erweiterungsplatte verwendet werden, mit dieser ist es möglich neben dem Wemos D1 mini ein Shield zu stecken.
Die Erweiterungsplatte kann über ebay.de bezogen werden, es gibt diese in einer zweifachen* und dreifachen* Ausführung.
Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!
Quellcode
In dem nachfolgenden Beispiel wird die LED für den WLAN-Status des Wemos D1 mini, AN bzw. AUS- geschaltet, wenn der Taster betätigt wird.
const int btn = D3; //Taster auf dem digitalten PIN D3 //Die Status LED des Wemos D1, diese wird //unteranderem für den WLAN Status verwendet. const int led = BUILTIN_LED; void setup() { pinMode(btn, INPUT); //Taster als Eingang setzten pinMode(led, OUTPUT); //Taster als Ausgang setzten //Initial die LED ausschalten digitalWrite(led, LOW); } void loop() { //Status des Tasters auslesen und als Wert (HIGH / LOW) setzen. digitalWrite(led, digitalRead(btn)); }
Video
Das Video zeigt auf wenn der Taster betätigt wird, dass die LED des Wemos D1 mini aufleuchtet.
Hi,
When I run this example with a non wemos button shield D3 is always high. When I read about it, it’s because D3 is floating, it needs to be grounded with a resistor 1KOhm or higher. The Wemos shield does not have any buttons how did it work?
Hi,
GPIO Pins are allways HIGH you have to define them in the setup function with
pinMode(3,INPUT);
digitalWrite(3, LOW);
to set the digital pin to low / 0.
Greetings,
Stefan Draeger