Arduino Mega - Button - LED
Diese Anleitung zeigt Ihnen, wie Sie den Arduino Mega und einen Button verwenden, um eine LED zu steuern. Wir werden zwei einfache Möglichkeiten dafür lernen.
Anwendung 1 - Die LED zeigt den gleichen Zustand wie der Button.
Der Arduino Mega schaltet die LED ein, wenn Sie den Button drücken.
Der Arduino Mega schaltet die LED aus, wenn Sie den Button nicht drücken.
Anwendung 2 - Die LED ändert sich jedes Mal, wenn Sie den Button drücken.
Wenn Sie den Button drücken, schaltet der Arduino Mega die LED um: wenn sie aus ist, wird sie eingeschaltet; wenn sie an ist, wird sie ausgeschaltet.
Das Loslassen des Buttons ändert die LED nicht.
Für Anwendung 2 müssen wir den Button entprellen, damit er zuverlässig funktioniert. Wir werden sehen, warum das wichtig ist, indem wir vergleichen, wie sich die LED mit und ohne Entprellen im Arduino-Code verhält.
Oder Sie können die folgenden Kits kaufen:
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.
Kaufhinweis: Um den Verdrahtungsprozess zu vereinfachen, empfehlen wir die Verwendung des LED Module, das mit einem eingebauten Widerstand geliefert wird.
Falls Sie neu in der Verwendung von LED, Button und Arduino Mega sind, schauen Sie sich bitte diese Tutorials an:
Diese Tutorials erklären, wie LED und Button funktionieren, ihre Pinbelegungen, wie Sie sie mit dem Arduino Mega verbinden und wie Sie den Arduino Mega programmieren, um mit der LED und dem Button zu arbeiten.

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
#define BUTTON_PIN 7
#define LED_PIN 3
void setup() {
Serial.begin(9600);
pinMode(BUTTON_PIN, INPUT_PULLUP);
pinMode(LED_PIN, OUTPUT);
}
void loop() {
int buttonState = digitalRead(BUTTON_PIN);
if (buttonState == LOW) {
Serial.println("The button is being pressed");
digitalWrite(LED_PIN, HIGH);
}
else
if (buttonState == HIGH) {
Serial.println("The button is unpressed");
digitalWrite(LED_PIN, LOW);
}
}
Befolgen Sie diese Schritte nacheinander.
Verbinden Sie die Teile wie im Schaltplan gezeigt.
Schließen Sie den Arduino Mega mit einem USB-Kabel an Ihren Computer an.
Öffnen Sie die Arduino IDE auf Ihrem Computer.
Wählen Sie das Arduino Mega Board und den richtigen COM-Port.
Kopieren Sie den Code und öffnen Sie ihn in der Arduino IDE.
Klicken Sie auf Upload in der Arduino IDE, um den Code zu erstellen und an den Arduino Mega zu senden.
Sie werden sehen, dass die LED und der Button den gleichen Zustand zeigen.
Sehen Sie die Zeile-für-Zeile-Erklärung in den Kommentaren des Quellcodes.
#define BUTTON_PIN 7
#define LED_PIN 3
int led_state = LOW;
int button_state;
int prev_button_state;
void setup() {
Serial.begin(9600);
pinMode(BUTTON_PIN, INPUT_PULLUP);
pinMode(LED_PIN, OUTPUT);
button_state = digitalRead(BUTTON_PIN);
}
void loop() {
prev_button_state = button_state;
button_state = digitalRead(BUTTON_PIN);
if(prev_button_state == HIGH && button_state == LOW) {
Serial.println("The button is pressed");
led_state = !led_state;
digitalWrite(LED_PIN, led_state);
}
}
Die Erklärung finden Sie in den Kommentaren des Arduino Mega-Codes oben.
Im Code macht die Zeile led_state = !led_state das Gleiche wie der unten gezeigte Code:
if(led_state == LOW)
led_state = HIGH;
else
led_state = LOW;
Kopieren Sie den Code und öffnen Sie ihn in der Arduino IDE.
Laden Sie den Code auf den Arduino Mega hoch.
Drücken Sie die Reset-Taste mehrmals.
Beobachten Sie, wie sich die LED ein- und ausschaltet.
Sie können sehen, dass sich die LED jedes Mal ändert, wenn Sie den Button drücken. Aber es funktioniert nicht immer perfekt. Manchmal ändert sich die LED zu oft schnell, wenn Sie einmal drücken, oder sie ändert sich möglicherweise gar nicht (sie kann sich zweimal sehr schnell ändern, was schwer zu bemerken ist).
Um dieses Problem zu lösen, filtern Sie die zusätzlichen Drücke des Buttons heraus.
Einen Button-Druck zuverlässig zum Laufen zu bringen kann für Anfänger schwierig sein. Glücklicherweise macht die ezButton-Bibliothek es einfach.
Warum brauchen wir Entprellen? Für weitere Informationen siehe das Arduino Mega Button Debounce Tutorial.
#include <ezButton.h>
#define BUTTON_PIN 7
#define LED_PIN 3
ezButton button(BUTTON_PIN);
int led_state = LOW;
void setup() {
Serial.begin(9600);
pinMode(LED_PIN, OUTPUT);
button.setDebounceTime(50);
}
void loop() {
button.loop();
if(button.isPressed()) {
Serial.println("The button is pressed");
led_state = !led_state;
digitalWrite(LED_PIN, led_state);
}
}
Installieren Sie die ezButton-Bibliothek. Siehe diese Anleitung für die Schritte: https://arduinogetstarted.com/tutorials/arduino-button-library#content_how_to_install_library
Kopieren Sie den Code und öffnen Sie ihn in der Arduino IDE.
Klicken Sie auf die Upload-Taste in der Arduino IDE, um den Code auf den Arduino Mega zu laden.
Drücken und lassen Sie den Button mehrmals los.
Beobachten Sie die LED-Änderung.
Sie werden sehen, dass die LED genau einmal ein- oder ausschaltet, jedes Mal wenn Sie den Button drücken.
Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.