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:
De Arduino UNO R4 zet de LED aan wanneer de button wordt ingedrukt.
De Arduino UNO R4 zet de LED uit wanneer de button niet wordt ingedrukt.
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.
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.
Aankoopadvies: Om het bedradingsproces te vereenvoudigen, raden we aan de LED Module te gebruiken, die wordt geleverd met een ingebouwde weerstand.
Over LED en Button
Als u niet bekend bent met LED en button (inclusief pinout, werking en programmering), kunnen de volgende tutorials helpen:
Toepassing 1 - De LED volgt de status van de button
Arduino UNO R4 Code
/* * Deze Arduino UNO R4 code is ontwikkeld door newbiely.nl * Deze Arduino UNO R4 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino-uno-r4/arduino-uno-r4-button-led*/#define BUTTON_PIN 7 // The Arduino UNO R4 pin connected to the button#define LED_PIN 3 // The Arduino UNO R4 pin connected to the LEDvoidsetup() {Serial.begin(9600); // initialize serialpinMode(BUTTON_PIN, INPUT_PULLUP); // set arduino pin to input pull-up modepinMode(LED_PIN, OUTPUT); // set arduino pin to output mode}voidloop() {int buttonState = digitalRead(BUTTON_PIN); // read new stateif (buttonState == LOW) {Serial.println("The button is being pressed");digitalWrite(LED_PIN, HIGH); // turn on }elseif (buttonState == HIGH) {Serial.println("The button is unpressed");digitalWrite(LED_PIN, LOW); // turn off } }
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.
Druk op de button en houd deze enkele seconden ingedrukt.
Controleer de verandering in de LED-status.
U zult zien dat de LED-status synchroon loopt met de button-status.
Code Uitleg
Bekijk de regel-voor-regel uitleg in de commentaren van de broncode!
Toepassing 2 - De LED verandert van status elke keer dat de button wordt ingedrukt
Arduino UNO R4 Code - Button Schakelt LED Zonder Debouncing
/* * Deze Arduino UNO R4 code is ontwikkeld door newbiely.nl * Deze Arduino UNO R4 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino-uno-r4/arduino-uno-r4-button-led*/#define BUTTON_PIN 7 // The Arduino UNO R4 pin connected to the button#define LED_PIN 3 // The Arduino UNO R4 pin connected to the LEDint led_state = LOW; // the current state of LEDint button_state; // the current state of buttonint prev_button_state; // the previous state of buttonvoidsetup() {Serial.begin(9600); // initialize serialpinMode(BUTTON_PIN, INPUT_PULLUP); // set arduino pin to input pull-up modepinMode(LED_PIN, OUTPUT); // set arduino pin to output mode button_state = digitalRead(BUTTON_PIN);}voidloop() { prev_button_state = button_state; // save the last state button_state = digitalRead(BUTTON_PIN); // read new stateif(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 statedigitalWrite(LED_PIN, led_state); }}
Code Uitleg
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:
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).
/* * Deze Arduino UNO R4 code is ontwikkeld door newbiely.nl * Deze Arduino UNO R4 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino-uno-r4/arduino-uno-r4-button-led*/#include <ezButton.h>#define BUTTON_PIN 7 // The Arduino UNO R4 pin connected to the button#define LED_PIN 3 // The Arduino UNO R4 pin connected to the LEDezButtonbutton(BUTTON_PIN); // create ezButton object that attach to pin 7;int led_state = LOW; // the current state of LEDvoidsetup() {Serial.begin(9600); // initialize serialpinMode(LED_PIN, OUTPUT); // set arduino pin to output modebutton.setDebounceTime(50); // set debounce time to 50 milliseconds}voidloop() {button.loop(); // MUST call the loop() function firstif(button.isPressed()) {Serial.println("The button is pressed");// toggle state of LED led_state = !led_state;// control LED arccoding to the toggleed satedigitalWrite(LED_PIN, led_state); }}
Snelle Stappen
Installeer de ezButton library. Raadpleeg ezButton library voor instructies.
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.
Video Tutorial
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.
U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!