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:

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.

Arduino UNO R4 control LED

Over LED en Button

Als u niet bekend bent met LED en button (inclusief pinout, werking en programmering), kunnen de volgende tutorials helpen:

Bedradingsschema

Arduino UNO R4 Button LED wiring diagram

This image is created using Fritzing. Click to enlarge image

Zie De beste manier om Arduino Uno R4 en andere componenten van stroom te voorzien.

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 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 } }

Snelle Stappen

Volg deze instructies stap voor stap:

  • Als dit uw eerste keer is met de Arduino Uno R4 WiFi/Minima, raadpleeg de tutorial over het instellen van de omgeving voor Arduino Uno R4 WiFi/Minima in de Arduino IDE.
  • 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.
Arduino IDE Upload Code
  • 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 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 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:

if(led_state == LOW) led_state = HIGH; else led_state = LOW;

Snelle Stappen

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

Arduino UNO R4 Code - Button Schakelt LED Met Debouncing

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.

/* * 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 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); } }

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.

Reacties

※ ONZE BERICHTEN

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