Arduino UNO R4 - Bouton - DEL

Ce tutoriel vous apprend comment utiliser l'Arduino UNO R4 et un bouton pour contrôler une LED. Nous apprendrons deux façons différentes de le faire :

Application 1 - La LED suit l'état du bouton :

Application 2 - La LED change d'état à chaque fois que le bouton est pressé:

Pour Application 2, nous devons mettre en place un anti-rebond sur le bouton pour nous assurer qu'il fonctionne correctement. Nous verrons pourquoi cela est important en comparant le comportement de la LED avec et sans anti-rebond dans le code Arduino.

LED de contrôle sur Arduino UNO R4

À propos de la LED et du bouton

Si vous n'êtes pas familiarisé avec les LED et les boutons (y compris le brochage, le fonctionnement et la programmation), les tutoriels suivants peuvent vous aider :

Diagramme de câblage

Schéma de câblage pour bouton LED Arduino UNO R4

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Voir Comment alimenter l'Arduino UNO R4..

Application 1 - La LED suit l'état du bouton

Code Arduino UNO R4

/* * Ce code Arduino UNO R4 a été développé par newbiely.fr * Ce code Arduino UNO R4 est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/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 } }

Étapes rapides

Suivez ces instructions étape par étape :

  • Si c'est la première fois que vous utilisez l'Arduino Uno R4 WiFi/Minima, reportez-vous au tutoriel sur Arduino UNO R4 - Installation du logiciel..
  • Connectez les composants selon le diagramme fourni.
  • Connectez la carte Arduino Uno R4 à votre ordinateur à l'aide d'un câble USB.
  • Lancez l'IDE Arduino sur votre ordinateur.
  • Sélectionnez la carte Arduino Uno R4 appropriée (par exemple Arduino Uno R4 WiFi) et le port COM.
  • Copiez le code et ouvrez-le dans l'IDE Arduino.
  • Cliquez sur le bouton Upload dans l'IDE Arduino pour compiler et téléverser le code sur la carte Arduino Uno R4.
Téléversement du code dans l'IDE Arduino
  • Appuyez sur le bouton et maintenez-le enfoncé pendant quelques secondes.
  • Observez le changement d'état de la DEL.

Vous verrez que l'état de la LED est synchronisé avec l'état du bouton.

Explication du code

Consultez l'explication ligne par ligne contenue dans les commentaires du code source !

Application 2 - La LED change d'état à chaque fois que le bouton est pressé

Code Arduino UNO R4 - Le bouton bascule la LED sans anti-rebond

/* * Ce code Arduino UNO R4 a été développé par newbiely.fr * Ce code Arduino UNO R4 est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/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); } }

Explication du code

Vous pouvez trouver l'explication dans les lignes de commentaire du code Arduino UNO R4 ci-dessus.

Dans le code, l'expression led_state = !led_state équivaut au code suivant :

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

Étapes rapides

  • Copiez le code et ouvrez-le dans l'IDE Arduino.
  • Téléversez le code sur l'Arduino UNO R4.
  • Appuyez et relâchez le bouton à plusieurs reprises.
  • Observez le changement d'état de la LED.

Vous pourriez remarquer que la LED change à chaque fois que le bouton est pressé. Cependant, cela peut ne pas toujours fonctionner parfaitement. Parfois, la LED peut changer trop de fois rapidement lorsque vous appuyez sur le bouton une fois, ou elle peut ne pas changer du tout (elle change deux fois très rapidement, ce qui est difficile à voir).

⇒ Pour résoudre ce problème, nous devons Arduino UNO R4 - Bouton - anti-rebond..

Code Arduino UNO R4 - Bouton qui bascule la LED avec anti-rebond

La gestion du rebond d'un bouton peut être difficile pour les débutants. Heureusement, la bibliothèque ezButton facilite les choses.

Pourquoi l’anti-rebond est-il nécessaire ? Consultez le Arduino UNO R4 - Bouton - anti-rebond. pour plus d’informations.

/* * Ce code Arduino UNO R4 a été développé par newbiely.fr * Ce code Arduino UNO R4 est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/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); } }

Étapes rapides

  • Installez la bibliothèque ezButton. Consultez la bibliothèque ezButton pour obtenir les instructions.
  • Copiez le code et ouvrez-le avec l'IDE Arduino.
  • Cliquez sur le bouton Upload dans l'IDE Arduino pour téléverser le code sur l'Arduino UNO R4.
  • Appuyez sur le bouton et relâchez-le plusieurs fois.
  • Observez le changement d'état de la LED.

Vous verrez que l'état de la DEL bascule exactement une fois à chaque pression du bouton.

Vidéo

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !