Introduction
Bienvenue dans votre premier projet Arduino avec entrée ! Dans ce tutoriel, vous allez construire un circuit où un bouton poussoir contrôle une LED. Lorsque vous appuyez sur le bouton, la LED s’allume ; relâchez-le, et la LED s’éteint. Ce projet simple vous initie à la lecture des entrées numériques, à l’utilisation des résistances pull-up internes et à l’écriture d’un code Arduino propre.
Nous utiliserons le simulateur en ligne Velxio, qui offre un environnement précis au niveau SPICE pour tester votre circuit sans aucun matériel. C’est parti !
Présentation du circuit

Le circuit se compose de trois éléments principaux :
- Arduino Uno – le cerveau de l’opération.
- Bouton poussoir – un interrupteur momentané qui connecte deux broches lorsqu’il est enfoncé.
- LED rouge – le dispositif de sortie.
Détails du câblage
-
Bouton vers Arduino :
- Une patte du bouton (broche
1.l) se connecte à la broche numérique 2 de l’Arduino via un fil bleu (#00aaff). - L’autre patte (broche
2.l) se connecte à GND via un fil noir.
- Une patte du bouton (broche
-
LED vers Arduino :
- L’anode (patte longue, broche
A) se connecte à la broche numérique 13 de l’Arduino via un fil rouge (#ff0000). - La cathode (patte courte, broche
C) se connecte à GND via un fil noir.
- L’anode (patte longue, broche
Remarquez que le bouton n’a pas de résistance pull-up externe. À la place, nous utiliserons la résistance pull-up interne de l’Arduino dans le code. Lorsque le bouton n’est pas enfoncé, la broche d’entrée est tirée HIGH ; lorsqu’il est enfoncé, elle lit LOW.
Explication du code

Voici le sketch Arduino complet :
// Button LED Control
// Press button to turn LED on
const int BUTTON_PIN = 2;
const int LED_PIN = 13;
void setup() {
pinMode(BUTTON_PIN, INPUT_PULLUP);
pinMode(LED_PIN, OUTPUT);
}
void loop() {
int buttonState = digitalRead(BUTTON_PIN);
if (buttonState == LOW) {
digitalWrite(LED_PIN, HIGH);
} else {
digitalWrite(LED_PIN, LOW);
}
}
Explication
- Constantes :
BUTTON_PINest défini sur 2,LED_PINsur 13. L’utilisation de constantes rend le code plus facile à lire et à modifier. setup():pinMode(BUTTON_PIN, INPUT_PULLUP)configure la broche 2 en entrée avec la résistance pull-up interne activée. Cela signifie que la broche lit HIGH par défaut, et LOW lorsque le bouton est enfoncé (la connectant à GND).pinMode(LED_PIN, OUTPUT)définit la broche 13 comme sortie pour piloter la LED.
loop():digitalRead(BUTTON_PIN)lit l’état du bouton. S’il est LOW (bouton enfoncé), nous allumons la LED avecdigitalWrite(LED_PIN, HIGH). Sinon, nous l’éteignons.
Concepts clés
Entrée numérique et résistances pull-up
Lorsqu’une broche numérique est configurée en entrée, elle lit soit HIGH (5V) soit LOW (0V). Sans résistance pull-up ou pull-down, la broche peut flotter entre les états, provoquant des lectures erratiques. La résistance pull-up interne (généralement 20k-50k ohms) garantit un état HIGH stable lorsque le bouton est ouvert. Appuyer sur le bouton connecte la broche directement à GND, annulant le pull-up et donnant une lecture LOW.
Anti-rebond
Les boutons mécaniques ont souvent des rebonds, provoquant des transitions rapides multiples. Dans cet exemple simple, nous ignorons l’anti-rebond car la LED répond rapidement et l’effet est minime. Pour des applications plus critiques, vous pouvez ajouter un petit délai ou utiliser une bibliothèque d’anti-rebond.
Utilisation des constantes
Définir les numéros de broches comme constantes en haut du sketch facilite le changement de câblage sans avoir à chercher dans le code. Cela améliore également la lisibilité.
Pièges courants et conseils de débogage
- Câblage du bouton : Assurez-vous qu’une patte va à la broche Arduino et l’autre à GND. Si vous connectez les deux pattes à la même rangée, le bouton ne fonctionnera pas.
- Polarité de la LED : L’anode (patte longue) doit être connectée à la broche numérique, et la cathode (patte courte) à GND. Les inverser n’endommagera pas la LED, mais elle ne s’allumera pas.
- Pull-up non activé : Si vous oubliez
INPUT_PULLUPet utilisez simplementINPUT, la broche flottera et la LED pourra clignoter aléatoirement. - Mauvais numéros de broches : Vérifiez que votre code correspond au câblage. Dans cet exemple, le bouton sur la broche 2, la LED sur la broche 13.
Utilisation du simulateur Velxio

Cliquez sur le bouton Exécuter dans la barre d’outils pour compiler et démarrer la simulation. Vous pouvez ensuite cliquer sur le bouton poussoir sur le canevas pour voir la LED réagir.

Utilisez la barre d’outils du canevas pour mettre en pause, réinitialiser ou ajuster la vitesse de simulation.

Pour ajouter d’autres composants, ouvrez le sélecteur de composants et parcourez les catégories comme “Entrée” ou “Sortie”.

Si vous avez besoin de bibliothèques supplémentaires (par exemple, pour l’anti-rebond), utilisez le gestionnaire de bibliothèques.
Extensions suggérées
Une fois que vous avez le circuit de base fonctionnel, essayez ces améliorations :
- Mode bascule : Modifiez le code pour que chaque pression alterne l’état de la LED (allumée/éteinte) au lieu de la maintenir.
- LED multiples : Ajoutez plus de LED et de boutons pour créer un panneau d’entrée simple.
- Anti-rebond : Implémentez un anti-rebond logiciel avec un délai de 50 ms ou une minuterie.
- Moniteur série : Affichez l’état du bouton sur le moniteur série pour le débogage.
- Luminosité PWM : Remplacez l’écriture numérique par
analogWrite()pour contrôler la luminosité de la LED en fonction de la durée d’appui sur le bouton.
Appel à l’action
Prêt à construire votre propre LED contrôlée par bouton ? Ouvrez l’exemple en direct sur Velxio et commencez à expérimenter : Exemple LED avec bouton. Aucun matériel nécessaire – juste votre navigateur. Bon bricolage !