Arduino Nano - Bouton - LED

Ce tutoriel vous explique comment utiliser l'Arduino Nano et un bouton pour contrôler une LED. Nous allons apprendre deux applications différentes :

Application 1 - L'état de la LED est synchronisé avec l'état du bouton. En détail :

Application 2 - L'état de la LED est basculé à chaque fois que le bouton est pressé. Plus spécifiquement :

Dans l'Application 2, nous devons utiliser un anti-rebond pour le bouton afin de garantir son bon fonctionnement. Nous comprendrons pourquoi c'est important en comparant le comportement de la LED lorsque nous utilisons le code Arduino avec et sans l'anti-rebond du bouton.

Préparation du matériel

1×Arduino Nano
1×USB A to Mini-B USB cable
1×Push Button
1×(Optional) Panel-mount Push Button
1×LED
1×220 ohm resistor
1×Breadboard
1×Jumper Wires
1×(Optional) 9V Power Adapter for Arduino Nano
1×(Recommended) Screw Terminal Adapter for Arduino Nano

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

#À propos des LED et des boutons

Si vous n'êtes pas familier 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 du bouton LED Arduino Nano

This image is created using Fritzing. Click to enlarge image

Application 1 - L'état de la LED est synchronisé avec l'état du bouton

Code Arduino Nano

/* * Ce code Arduino Nano a été développé par newbiely.fr * Ce code Arduino Nano 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-nano/arduino-nano-button-led */ const int BUTTON_PIN = 2; // The number of the pushbutton pin const int LED_PIN = 5; // The number of the LED pin int button_state = 0; // variable for reading the pushbutton status void setup() { // Configure the LED pin as a digital output pinMode(LED_PIN, OUTPUT); // initialize the pushbutton pin as an pull-up input: // The pull-up input pin is HIGH when the button is open and LOW when pressed. pinMode(BUTTON_PIN, INPUT_PULLUP); } void loop() { // read the state of the pushbutton value: button_state = digitalRead(BUTTON_PIN); // control LED according to the state of button if(button_state == LOW) // If button is pressing digitalWrite(LED_PIN, HIGH); // turn on LED else // otherwise, button is not pressing digitalWrite(LED_PIN, LOW); // turn off LED }

Étapes rapides

  • Connectez un Arduino Nano à votre ordinateur avec un câble USB.
  • Lancez l'IDE Arduino et sélectionnez la carte et le port corrects.
  • Copiez le code et ouvrez-le dans l'IDE Arduino.
  • Cliquez sur le bouton Upload de l'IDE Arduino pour compiler et téléverser le code sur l'Arduino Nano.
Téléverser le code avec l'IDE Arduino
  • Appuyez sur le bouton et maintenez-le enfoncé pendant quelques secondes.
  • Observez le changement d'état de la LED.

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

Explication du code

Découvrez l'explication ligne par ligne contenue dans les commentaires du code source !

Application 2 - Le bouton active la LED

Code Arduino Nano - Bouton bascule LED sans anti-rebond

/* * Ce code Arduino Nano a été développé par newbiely.fr * Ce code Arduino Nano 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-nano/arduino-nano-button-led */ const int BUTTON_PIN = 2; // The Arduino Nano pin connected to button's pin const int LED_PIN = 5; // The Arduino Nano pin connected to LED's pin int led_state = LOW; // The current state of LED int prev_button_state; // The previous state of button int button_state; // The current state of button void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. 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 according 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 Nano ci-dessus.

Dans le code, l'expression led_state = !led_state est équivalente 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échargez le code sur l'Arduino Nano.
  • Appuyez plusieurs fois sur le bouton de relâchement.
  • Observez le changement d'état de la LED.

Il est possible de constater que l'état de la LED change chaque fois que le bouton est pressé. Cependant, ce comportement peut ne pas toujours être cohérent. Parfois, l'état de la LED peut changer rapidement plusieurs fois lors d'une seule pression du bouton, ou il peut ne pas changer du tout (basculer deux fois rapidement, ce qui peut être difficile à percevoir à l'œil nu).

Pour résoudre ce problème, nous devons stabiliser le bouton.

Code Arduino Nano - Bouton bascule LED avec anti-rebond

Le filtrage des rebonds d'un bouton peut être difficile pour les débutants. Heureusement, la bibliothèque ezButton facilite cette tâche.

Pourquoi est-il nécessaire de supprimer les rebonds ? Consultez le tutoriel Arduino Nano - Suppression des rebonds des boutons pour plus d'informations.

/* * Ce code Arduino Nano a été développé par newbiely.fr * Ce code Arduino Nano 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-nano/arduino-nano-button-led */ #include <ezButton.h> const int BUTTON_PIN = 2; // The number of the pushbutton pin const int LED_PIN = 5; // The number of the LED pin ezButton button(BUTTON_PIN); // create ezButton object for pin 7; int led_state = LOW; // The current state of LED void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. 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 according to the toggleed sate digitalWrite(LED_PIN, led_state); } }

Étapes rapides

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

Vous verrez que l'état de la LED est basculé exactement une fois à chaque pression sur le bouton.

Vidéo

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!