Leçon 98-2 : Comment allumer et éteindre une LED à l'aide d'un bouton poussoir avec Arduino
Ce projet vous montre comment contrôler une LED avec un bouton-poussoir à l'aide d'un Arduino. Au lieu de laisser la LED clignoter toute seule, c'est vous qui décidez quand elle s'allume : maintenez le bouton enfoncé et la LED s'allume, relâchez-le et elle s'éteint. C'est l'étape suivante naturelle après un simple sketch de clignotement, car elle introduit deux notions présentes dans presque tous les projets Arduino que vous réaliserez un jour — lire une entrée numérique, et utiliser cette entrée pour prendre une décision dans le code.
Le véritable intérêt ici est d'apprendre comment un microcontrôleur perçoit le monde physique. Un bouton-poussoir est le dispositif d'entrée humain le plus simple qui existe, mais le même schéma — lire une entrée, tester une condition, piloter une sortie — est exactement ce que vous feriez pour lire un interrupteur de fin de course sur une imprimante 3D, détecter l'ouverture d'une porte sur un système de sécurité, ou démarrer un moteur depuis un panneau de commande. Une fois ce circuit compris, vous pouvez remplacer la LED par presque n'importe quoi.
Voici quelques réalisations pratiques que vous pouvez construire avec la même technique :
- Une sonnette ou un bouton d'appel momentané qui allume une lampe tant qu'il est pressé.
- Un « interrupteur homme mort » qui ne maintient un relais (et tout ce qu'il alimente) sous tension que tant que le bouton est maintenu.
- Un bouton de test manuel pour une machine, où une LED témoin confirme que l'entrée est bien prise en compte.
- Un bouton de démarrage pour un pilote de moteur ou une pompe, la LED servant de voyant d'état.
- Un simple buzzer de jeu où le premier joueur à appuyer gagne et la LED annonce le vainqueur.
- Un bouton de calibration ou d'« apprentissage » sur un projet de capteur qui s'allume tant que le mode est actif.
Matériel et composants
La liste des pièces est volontairement réduite, ce qui en fait un excellent premier projet avec entrée :
- Une carte Arduino — Uno, Nano, Mega, ou toute carte compatible.
- Une LED, de 5 mm ou 3 mm, de n'importe quelle couleur.
- Une résistance pour la LED, entre 200 Ω et 1000 Ω.
- Un interrupteur à bouton-poussoir momentané.
- Une plaque de prototypage et quelques fils de liaison DuPont.
Si vous vous demandez pourquoi une résistance est nécessaire, la transcription détaille le calcul (dans la vidéo à 03:49). Une LED typique chute environ 2 V à ses bornes et demande environ 10 mA de courant. Avec une alimentation de 5 V, les 3 V restants doivent être chutés par la résistance, donc la loi d'Ohm donne R = 3 V / 0,01 A = 300 Ω. Tout ce qui va de 300 Ω jusqu'à environ 1000 Ω fonctionnera — plus la valeur est élevée, plus la LED est faible, mais plus c'est sûr et efficace. Le courant n'est pas critique ; vous échangez simplement de la luminosité contre une consommation plus faible.
Guide de câblage
Le circuit est le même que celui d'une LED pour un sketch de clignotement, avec un bouton-poussoir en plus. L'anode de la LED (la patte la plus longue) se connecte via la résistance à la broche 3 de l'Arduino, et la cathode (la patte la plus courte, repérée par le côté plat du bord en plastique) va à la masse. Le bouton-poussoir se connecte entre la broche 2 et la masse.
Un détail à connaître : le bouton-poussoir possède quatre pattes, mais elles sont appairées en interne. Deux des pattes sont connectées en permanence entre elles, et les deux autres sont connectées en permanence entre elles — appuyer sur le bouton relie les deux paires. Si vous avez un multimètre, utilisez son mode continuité (bip) pour trouver quelles pattes sont déjà connectées lorsque le bouton n'est pas pressé ; ces deux-là forment la paire à ne pas utiliser. Choisissez une patte de chacune des deux paires indépendantes (dans la vidéo à 07:50).
Comment fonctionne le code
Le sketch est court, et presque tout y est de la configuration que vous pouvez ajuster. Les trois lignes du haut sont celles que vous modifierez réellement :
const int pushButtonPin = 2;//define a pin number for push button
const int LEDPin = 3;//define a pin that is connected to LED
const int delayLED = 0;//how long the LED should stay ON
pushButtonPin est la broche numérique à laquelle le bouton est câblé. Modifiez-la si vous déplacez le bouton vers une autre broche — pensez simplement à déplacer le fil physique en conséquence.
LEDPin est la broche qui pilote la LED. N'importe quelle broche numérique fera l'affaire, mais gardez à l'esprit que les broches 0 et 1 sont utilisées par la connexion série, il vaut donc mieux les éviter.
delayLED est le paramètre le plus intéressant. Il contrôle combien de temps la LED reste allumée après que vous relâchez le bouton, mesuré en millisecondes. Le régler à 0 signifie que la LED s'éteint à l'instant où vous levez le doigt. Le régler à 1000 maintient la LED allumée pendant une seconde complète après le relâchement, et 5000 la maintient allumée pendant cinq secondes (dans la vidéo à 16:31). Ce simple nombre change complètement la sensation du projet, et c'est une bonne façon de voir comment une variable dans le code se traduit directement en un comportement que vous pouvez observer.
Deux autres choses dans la configuration méritent d'être notées. Premièrement, la broche du bouton est configurée avec INPUT_PULLUP plutôt qu'avec INPUT simple :
pinMode(pushButtonPin, INPUT_PULLUP);//define a pin for push button switch
Cela active la résistance de tirage interne de l'Arduino, qui maintient la broche à un niveau HIGH stable lorsque le bouton n'est pas pressé. Sans cela, une broche d'entrée flottante capterait le bruit électrique parasite et donnerait des lectures aléatoires, et vous auriez besoin d'une résistance externe pour corriger cela. Avec le pull-up interne activé, le câblage reste simple : un côté du bouton vers la broche, l'autre côté vers la masse. Lorsque vous pressez le bouton, la broche est tirée vers la masse et lit LOW (dans la vidéo à 14:08).
Deuxièmement, le moniteur série est démarré à 9600 bauds afin que vous puissiez observer les changements d'état au fur et à mesure qu'ils se produisent :
Serial.begin(9600);//initialize the serial monitor
Serial.println("Robojax LED with push button");//print this text on Serial Monitor
Dans la boucle principale, la logique est un simple if/else. Le code lit la broche du bouton et la compare à LOW. Si le bouton est pressé, la broche de la LED passe à HIGH, le message « LED ON » est imprimé, et le sketch attend pendant delayLED millisecondes. Si le bouton n'est pas pressé, la broche de la LED passe à LOW et la LED s'éteint. Comme loop() s'exécute encore et encore, cette vérification se produit des milliers de fois par seconde, donc la réponse semble instantanée.
Démonstration en direct
Avec delayLED réglé à 1000, appuyer sur le bouton allume la LED et elle reste allumée pendant une seconde après que vous la relâchez. Réduisez la valeur à 5000 et la LED persiste pendant cinq secondes — assez longtemps pour que vous puissiez vous éloigner du bouton et la voir toujours allumée. Réglez-la à 0 et la LED suit votre doigt exactement : appuyez, allumée ; relâchez, éteinte (dans la vidéo à 17:02).
Une fois le code téléversé, vous pouvez déconnecter l'Arduino de l'USB et l'alimenter avec une batterie ou un adaptateur 5 V. La carte n'a pas besoin d'un ordinateur pour fonctionner — le programme est stocké dans sa mémoire et démarre automatiquement chaque fois qu'elle est mise sous tension (dans la vidéo à 12:27).
Si vous préférez que la LED reste allumée après une seule pression et s'éteigne à la pression suivante, c'est un comportement différent appelé basculement, et il est couvert dans Leçon 98-3 : Comment allumer/éteindre une LED à bascule à l'aide d'un bouton poussoir avec Arduino. Le câblage du bouton poussoir est identique, vous pouvez donc réutiliser exactement ce circuit.
Projets associés de cette vidéo
- Leçon 98-1 : Comment allumer et éteindre une LED avec Arduino
- Leçon 98-3 : Comment allumer/éteindre une LED à bascule à l'aide d'un bouton poussoir avec Arduino
- Leçon 98-4 : Faire varier l'intensité d'une LED avec Arduino : contrôle de la luminosité
- Leçon 98-5 : Faire varier la lumière lorsqu'un bouton est pressé avec Arduino
- Leçon 98-6 : Jeu de LED bascule avec Arduino
- Leçon 98-7 : Lumière défilante avec Arduino et 5 LED
- Leçon 98-8 : Lumière défilante avec bouton poussoir et LED avec Arduino
- Leçon 98-9 : Indicateur de niveau de tension à LED avec Arduino ou lumière défilante avec potentiomètre
- Leçon 98-10 : Feu de circulation Arduino
Chapitres
- [00:00] Aperçu des 10 projets de cette vidéo
- [01:00] Introduction au cours Arduino étape par étape
- [02:29] Qu'est-ce qu'une LED : symbole, anode, cathode et forme physique
- [03:49] Calcul de la résistance de la LED avec la loi d'Ohm
- [07:32] Câblage de la LED et du bouton poussoir sur la plaque de prototypage
- [08:50] Explication du code : broches, configuration et boucle principale
- [12:43] Comment fonctionne un interrupteur à bouton poussoir
- [13:22] Câblage du bouton poussoir à la broche 2 et à la masse
- [13:43] Analyse du code : INPUT_PULLUP et lecture du bouton
- [16:14] Démonstration : changement de delayLED de 1 s à 5 s puis à 0
- [19:52] Applications pratiques d'une bascule à bouton poussoir
Images
This code has not been parsed yet. Please return to the admin panel to parse it.
Ce dont vous pourriez avoir besoin
-
AmazonSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amazon
-
Amazon
-
Amazon
Ressources et références
-
DocumentationDocumentation pour le kit d'apprentissage IoT/Smart Car/en 3 en 1 de SunFounderdocs.sunfounder.com
-
Externe
-
Externe
-
Externe
Fichiers📁
Bibliothèques Arduino (zip)
-
Code source du kit d'apprentissage Smart Car 3-en-1 de SunFounder.
3in1-kit-main-v2.zip12.80 MB
Manuel de l'Utilisateur
-
Manuel d'assemblage de la voiture intelligente SunFounder 3-en-1 ArduinoCe document montre l'assemblage étape par étape de la voiture intelligente SunFounder 3-en-1 Arduino
SunFounder_car_assembly_manual.pdf1.20 MB