Arduino UNO R4 - Button - LED
Deze tutorial leert u hoe u de Arduino UNO R4 en een button gebruikt om een LED te besturen. We zullen twee verschillende manieren leren om dit te doen:
Toepassing 1 - De LED volgt de status van de button:
Toepassing 2 - De LED verandert van status elke keer dat de button wordt ingedrukt:
Als de Arduino UNO R4 detecteert dat de button is ingedrukt (verandering van HIGH naar LOW), zet hij de LED aan als deze uit staat, of uit als deze aan staat.
Het loslaten van de button verandert de LED-status niet.
Voor Toepassing 2 moeten we de button debounce toepassen om ervoor te zorgen dat het correct werkt. We zullen zien waarom dit belangrijk is door te vergelijken hoe de LED zich gedraagt met en zonder debouncing in de Arduino-code.
Of u kunt de volgende kits kopen:
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.
Als u niet bekend bent met LED en button (inclusief pinout, werking en programmering), kunnen de volgende tutorials helpen:
#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);
}
}
Volg deze instructies stap voor stap:
Bedraden de componenten volgens het bijgeleverde schema.
Verbind het Arduino Uno R4 board met uw computer via een USB-kabel.
Start de Arduino IDE op uw computer.
Selecteer het juiste Arduino Uno R4 board (bijv. Arduino Uno R4 WiFi) en COM-poort.
Kopieer de code en open deze in de Arduino IDE.
Klik op de Upload knop in de Arduino IDE om de code te compileren en uploaden naar de Arduino UNO R4.
U zult zien dat de LED-status synchroon loopt met de button-status.
Bekijk de regel-voor-regel uitleg in de commentaren van de broncode!
#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);
}
}
U kunt de uitleg vinden in de commentaarregels van de Arduino UNO R4 code hierboven.
In de code is de uitdrukking led_state = !led_state gelijk aan de volgende code:
if(led_state == LOW)
led_state = HIGH;
else
led_state = LOW;
Kopieer de code en open deze in de Arduino IDE.
Upload de code naar de Arduino UNO R4.
Druk de button meerdere keren in en laat weer los.
Controleer de verandering in de LED-status.
U zou kunnen opmerken dat de LED verandert elke keer dat de button wordt ingedrukt. Dit werkt echter mogelijk niet altijd perfect. Soms verandert de LED mogelijk te vaak snel wanneer u de button eenmaal indrukt, of hij verandert mogelijk helemaal niet (hij verandert tweemaal zeer snel, wat moeilijk te zien is).
⇒ Om dit probleem op te lossen, moeten we de button debounce toepassen.
Het debounce toepassen op een button kan uitdagend zijn voor beginners. Gelukkig maakt de ezButton library het gemakkelijk.
Waarom is debouncing nodig? Zie de Arduino UNO R4 - Button Debounce tutorial voor meer informatie.
#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);
}
}
Kopieer de code en open deze in de Arduino IDE.
Klik op de Upload knop in Arduino IDE om de code te uploaden naar de Arduino UNO R4.
Druk de button meerdere keren in en laat weer los.
Controleer de verandering van de LED-status.
U zult zien dat de LED-status precies eenmaal wordt geschakeld elke keer dat de button wordt ingedrukt.
We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.