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.

Anwendung 2 - Die LED ändert sich jedes Mal, wenn Sie den Button drücken.

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.

Arduino Mega control LED

Hardware benötigt

1×Arduino Mega
1×USB 2.0 Kabel Typ A/B
1×Breadboard-Taster mit Kappe
1×Breadboard-Taster Kit
1×Panel-Drucktaster
1×Taster-Modul
1×LED Kit
1×LED (red)
1×LED Module
1×220 Ohm Widerstand
1×Breadboard (Steckplatine)
1×Jumper-Kabel
1×(Empfohlen) Screw Terminal Block Shield for Arduino Uno/Mega
1×(Empfohlen) Breadboard Shield for Arduino Mega
1×(Empfohlen) Enclosure for Arduino Mega

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
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.

Über LED und Button

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.

Schaltplan

Arduino Mega Button LED wiring diagram

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Anwendung 1 - Die LED folgt dem Button-Zustand

Arduino Mega Code

/* * Dieser Arduino Mega Code wurde von newbiely.de entwickelt * Dieser Arduino Mega Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-mega/arduino-mega-button-led */ #define BUTTON_PIN 7 // The Arduino Mega pin connected to the button #define LED_PIN 3 // The Arduino Mega pin connected to the LED void setup() { Serial.begin(9600); // initialize serial pinMode(BUTTON_PIN, INPUT_PULLUP); // set arduino pin to input pull-up mode pinMode(LED_PIN, OUTPUT); // set arduino pin to output mode } void loop() { int buttonState = digitalRead(BUTTON_PIN); // read new state if (buttonState == LOW) { Serial.println("The button is being pressed"); digitalWrite(LED_PIN, HIGH); // turn on } else if (buttonState == HIGH) { Serial.println("The button is unpressed"); digitalWrite(LED_PIN, LOW); // turn off } }

Schnelle Schritte

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.
Arduino IDE Upload Code
  • Drücken und halten Sie den Button für ein paar Sekunden.
  • Beobachten Sie, wie sich die LED ändert.

Sie werden sehen, dass die LED und der Button den gleichen Zustand zeigen.

Code-Erklärung

Sehen Sie die Zeile-für-Zeile-Erklärung in den Kommentaren des Quellcodes.

Anwendung 2 - Die LED ändert ihren Zustand jedes Mal, wenn der Button gedrückt wird

Arduino Mega Code - Button schaltet LED um ohne Entprellen

/* * Dieser Arduino Mega Code wurde von newbiely.de entwickelt * Dieser Arduino Mega Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-mega/arduino-mega-button-led */ #define BUTTON_PIN 7 // The Arduino Mega pin connected to the button #define LED_PIN 3 // The Arduino Mega pin connected to the LED int led_state = LOW; // the current state of LED int button_state; // the current state of button int prev_button_state; // the previous state of button void setup() { Serial.begin(9600); // initialize serial pinMode(BUTTON_PIN, INPUT_PULLUP); // set arduino pin to input pull-up mode pinMode(LED_PIN, OUTPUT); // set arduino pin to output mode button_state = digitalRead(BUTTON_PIN); } void loop() { prev_button_state = button_state; // save the last state button_state = digitalRead(BUTTON_PIN); // read new state if(prev_button_state == HIGH && button_state == LOW) { Serial.println("The button is pressed"); // toggle state of LED led_state = !led_state; // control LED arccoding to the toggled state digitalWrite(LED_PIN, led_state); } }

Code-Erklärung

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;

Schnelle Schritte

  • 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.

Arduino Mega Code - Button schaltet LED um mit Entprellen

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.

/* * Dieser Arduino Mega Code wurde von newbiely.de entwickelt * Dieser Arduino Mega Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-mega/arduino-mega-button-led */ #include <ezButton.h> #define BUTTON_PIN 7 // The Arduino Mega pin connected to the button #define LED_PIN 3 // The Arduino Mega pin connected to the LED ezButton button(BUTTON_PIN); // create ezButton object that attach to pin 7; int led_state = LOW; // the current state of LED void setup() { Serial.begin(9600); // initialize serial pinMode(LED_PIN, OUTPUT); // set arduino pin to output mode button.setDebounceTime(50); // set debounce time to 50 milliseconds } void loop() { button.loop(); // MUST call the loop() function first if(button.isPressed()) { Serial.println("The button is pressed"); // toggle state of LED led_state = !led_state; // control LED arccoding to the toggleed sate digitalWrite(LED_PIN, led_state); } }

Schnelle Schritte

  • 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.

Video Tutorial

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.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!