Bouton sur le microcontrôleur
Pulldown-Widerstand verstehen und LEDs per Tastendruck schalten
Choisir un microcontrôleur
Les broches, le schéma électrique et le sketch des étapes de travail changent selon ta sélection. Celle-ci reste enregistrée.
Warum der Taster einen Pulldown-Widerstand braucht
Eine LED per Tastendruck aktivieren
// LED an Pin 6, Taster an Pin 7
int LEDgelb = 6;
int TasterGelb = 7;
// speichert den Status der LED: 0 = aus, 1 = ein
int StatusGelb = 0;
void setup()
{
// LED wird als OUTPUT (Ausgang) definiert
pinMode(LEDgelb, OUTPUT);
// der Taster wird als INPUT (Eingang) deklariert
pinMode(TasterGelb, INPUT);
}
void loop()
{
// Taster abfragen
StatusGelb = digitalRead(TasterGelb);
// wenn der Taster gedrückt wurde
if (StatusGelb == HIGH)
{
// LED für 5 Sekunden (5000 ms) einschalten
digitalWrite(LEDgelb, HIGH);
delay(5000);
// LED ausschalten
digitalWrite(LEDgelb, LOW);
}
}Télécharger : arduino-uno.ino
Carte dans l’IDE ArduinoArduino Uno
Ein zusätzliches Board-Paket brauchst du dafür nicht. Der UNO ist in der Arduino IDE ab Werk dabei.
// LED an Pin D6, Taster an Pin D8
int LEDgelb = D6;
int TasterGelb = D8;
// speichert den Status der LED: 0 = aus, 1 = ein
int StatusGelb = 0;
void setup()
{
// LED wird als OUTPUT (Ausgang) definiert
pinMode(LEDgelb, OUTPUT);
// der Taster wird als INPUT (Eingang) deklariert
pinMode(TasterGelb, INPUT);
}
void loop()
{
// Taster abfragen
StatusGelb = digitalRead(TasterGelb);
// wenn der Taster gedrückt wurde
if (StatusGelb == HIGH)
{
// LED für 5 Sekunden (5000 ms) einschalten
digitalWrite(LEDgelb, HIGH);
delay(5000);
// LED ausschalten
digitalWrite(LEDgelb, LOW);
}
}Télécharger : wemos-d1-mini.ino
Carte dans l’IDE ArduinoLOLIN(WEMOS) D1 R2 & mini
Dafür muss die ESP8266-Boardverwaltung installiert sein. Du fügst sie einmalig über die Einstellungen der Arduino IDE hinzu.
// LED an Pin D3, Taster an Pin D1
int LEDgelb = D3;
int TasterGelb = D1;
// speichert den Status der LED: 0 = aus, 1 = ein
int StatusGelb = 0;
void setup()
{
// LED wird als OUTPUT (Ausgang) definiert
pinMode(LEDgelb, OUTPUT);
// der Taster wird als INPUT (Eingang) deklariert
pinMode(TasterGelb, INPUT);
}
void loop()
{
// Taster abfragen
StatusGelb = digitalRead(TasterGelb);
// wenn der Taster gedrückt wurde
if (StatusGelb == HIGH)
{
// LED für 5 Sekunden (5000 ms) einschalten
digitalWrite(LEDgelb, HIGH);
delay(5000);
// LED ausschalten
digitalWrite(LEDgelb, LOW);
}
}Télécharger : nodemcu.ino
Carte dans l’IDE ArduinoNodeMCU 1.0 (ESP-12E Module)
Dafür muss die ESP8266-Boardverwaltung installiert sein. Du fügst sie einmalig über die Einstellungen der Arduino IDE hinzu.
Carte dans l’IDE ArduinoESP32 Dev Module
Dafür muss die ESP32-Boardverwaltung installiert sein. Du fügst sie einmalig über die Einstellungen der Arduino IDE hinzu.
Zwei LEDs mit zwei Tastern ansteuern
// Pins für die LEDs
int LEDgelb = 8;
int LEDrot = 9;
// Pins für die Taster
int TasterRot = 7;
int TasterGelb = 6;
// speichert den Status der LEDs: 0 = aus, 1 = ein
int StatusGelb = 0;
int StatusRot = 0;
void setup()
{
// LEDs werden als OUTPUT (Ausgang) definiert
pinMode(LEDgelb, OUTPUT);
pinMode(LEDrot, OUTPUT);
// die Taster werden als INPUT (Eingang) deklariert
pinMode(TasterGelb, INPUT);
pinMode(TasterRot, INPUT);
}
void loop()
{
// Taster für die gelbe LED abfragen
StatusGelb = digitalRead(TasterGelb);
if (StatusGelb == HIGH)
{
digitalWrite(LEDgelb, HIGH);
delay(1000);
digitalWrite(LEDgelb, LOW);
}
// Taster für die rote LED abfragen
StatusRot = digitalRead(TasterRot);
if (StatusRot == HIGH)
{
digitalWrite(LEDrot, HIGH);
delay(1000);
digitalWrite(LEDrot, LOW);
}
}Télécharger : arduino-uno.ino
Carte dans l’IDE ArduinoArduino Uno
Ein zusätzliches Board-Paket brauchst du dafür nicht. Der UNO ist in der Arduino IDE ab Werk dabei.
// Pins für die LEDs
int LEDgelb = D6;
int LEDrot = D5;
// Pins für die Taster
int TasterRot = D7;
int TasterGelb = D8;
// speichert den Status der LEDs: 0 = aus, 1 = ein
int StatusGelb = 0;
int StatusRot = 0;
void setup()
{
// LEDs werden als OUTPUT (Ausgang) definiert
pinMode(LEDgelb, OUTPUT);
pinMode(LEDrot, OUTPUT);
// die Taster werden als INPUT (Eingang) deklariert
pinMode(TasterGelb, INPUT);
pinMode(TasterRot, INPUT);
}
void loop()
{
// Taster für die gelbe LED abfragen
StatusGelb = digitalRead(TasterGelb);
if (StatusGelb == HIGH)
{
digitalWrite(LEDgelb, HIGH);
delay(1000);
digitalWrite(LEDgelb, LOW);
}
// Taster für die rote LED abfragen
StatusRot = digitalRead(TasterRot);
if (StatusRot == HIGH)
{
digitalWrite(LEDrot, HIGH);
delay(1000);
digitalWrite(LEDrot, LOW);
}
}Télécharger : wemos-d1-mini.ino
Carte dans l’IDE ArduinoLOLIN(WEMOS) D1 R2 & mini
Dafür muss die ESP8266-Boardverwaltung installiert sein. Du fügst sie einmalig über die Einstellungen der Arduino IDE hinzu.
// Pins für die LEDs
int LEDrot = 5;
int LEDgelb = 17;
// Pins für die Taster
int TasterRot = 18;
int TasterGelb = 19;
// speichert den Status der LEDs: 0 = aus, 1 = ein
int StatusGelb = 0;
int StatusRot = 0;
void setup()
{
// LEDs werden als OUTPUT (Ausgang) definiert
pinMode(LEDgelb, OUTPUT);
pinMode(LEDrot, OUTPUT);
// die Taster werden als INPUT (Eingang) deklariert
pinMode(TasterGelb, INPUT);
pinMode(TasterRot, INPUT);
}
void loop()
{
// Taster für die gelbe LED abfragen
StatusGelb = digitalRead(TasterGelb);
if (StatusGelb == HIGH)
{
digitalWrite(LEDgelb, HIGH);
delay(500);
digitalWrite(LEDgelb, LOW);
}
// Taster für die rote LED abfragen
StatusRot = digitalRead(TasterRot);
if (StatusRot == HIGH)
{
digitalWrite(LEDrot, HIGH);
delay(1000);
digitalWrite(LEDrot, LOW);
}
}Télécharger : esp32-wroom.ino
Carte dans l’IDE ArduinoESP32 Dev Module
Dafür muss die ESP32-Boardverwaltung installiert sein. Du fügst sie einmalig über die Einstellungen der Arduino IDE hinzu.
// Pins für die LEDs
int LEDgelb = D3;
int LEDrot = D4;
// Pins für die Taster
int TasterRot = D1;
int TasterGelb = D2;
// speichert den Status der LEDs: 0 = aus, 1 = ein
int StatusGelb = 0;
int StatusRot = 0;
void setup()
{
// LEDs werden als OUTPUT (Ausgang) definiert
pinMode(LEDgelb, OUTPUT);
pinMode(LEDrot, OUTPUT);
// die Taster werden als INPUT (Eingang) deklariert
pinMode(TasterGelb, INPUT);
pinMode(TasterRot, INPUT);
}
void loop()
{
// Taster für die gelbe LED abfragen
StatusGelb = digitalRead(TasterGelb);
if (StatusGelb == HIGH)
{
digitalWrite(LEDgelb, HIGH);
delay(1000);
digitalWrite(LEDgelb, LOW);
}
// Taster für die rote LED abfragen
StatusRot = digitalRead(TasterRot);
if (StatusRot == HIGH)
{
digitalWrite(LEDrot, HIGH);
delay(1000);
digitalWrite(LEDrot, LOW);
}
}Télécharger : nodemcu.ino
Carte dans l’IDE ArduinoNodeMCU 1.0 (ESP-12E Module)
Dafür muss die ESP8266-Boardverwaltung installiert sein. Du fügst sie einmalig über die Einstellungen der Arduino IDE hinzu.