Pourquoi utiliser des résistances avec des boutons-poussoirs et des interrupteurs sur Arduino
Ce tutoriel explique pourquoi l'utilisation d'une résistance avec les boutons poussoirs et les interrupteurs connectés à un Arduino est cruciale pour un fonctionnement fiable. Comprendre ce concept est fondamental pour tout projet Arduino impliquant une entrée utilisateur. Ce savoir permet d'éviter des comportements inattendus et garantit que vos projets fonctionnent correctement. Voici quelques idées de projets où cette connaissance est essentielle :
- Interrupteur marche/arrêt simple pour une LED
- Manette de jeu interactive
- Télécommande pour appareils électroménagers
- Système de sécurité à activation par bouton-poussoir
Explorons les raisons pour lesquelles on utilise des résistances dans ces circuits.

Matériel/Composants
Les composants essentiels pour ce projet sont peu nombreux : une carte Arduino, un bouton-poussoir et une résistance (supérieure à 300 ohms). La valeur de la résistance n'est pas critique ; des valeurs comme 1kΩ, 10kΩ ou même 100kΩ conviendront généralement (dans la vidéo à 00:41).
Guide de câblage
Il y a deux configurations de câblage principales (dans la vidéo à 00:30) :
- Configuration 1 :Connectez le bouton-poussoir entre la broche Arduino et +5V. L'autre côté du bouton-poussoir est relié à la masse via une résistance. Lorsque le bouton est enfoncé, la broche est à l'état HAUT ; lorsqu'il est relâché, la broche est à l'état BAS.
- Configuration 2 :Connectez le bouton-poussoir entre la broche de l'Arduino et la masse. L'autre côté du bouton-poussoir est relié au +5 V via une résistance. Lorsque le bouton est pressé, le signal sur la broche est LOW ; lorsqu'il est relâché, il est HIGH.

Un schéma de câblage visuel serait utile ici.
Explication du code
Le code Arduino utilise lepinMode()fonction pour configurer la broche en entrée. La partie cruciale est l'utilisation deINPUT_PULLUP(dans la vidéo à 04:06, 04:23). Cette résistance de tirage interne élimine la nécessité d'une résistance externe dans certaines configurations, simplifiant le câblage. LedigitalRead()la fonction lit l'état de la broche, et un simpleif-elsel'instruction détermine si le bouton est appuyé (LOW) ou non (HIGH) (dans la vidéo à 08:34).
pinMode(2, INPUT_PULLUP); // Configures pin 2 as input with internal pull-up resistor
int pushButton = digitalRead(2); // Reads the state of pin 2
if (pushButton == LOW) {
// Button is pressed
} else {
// Button is not pressed
}
Projet en direct / démonstration
La vidéo montre les deux configurations de câblage et leurs comportements respectifs. Elle met en évidence les problèmes pouvant survenir lorsque la résistance est omise, tels que des lectures erratiques dues au bruit et au couplage capacitif (dans la vidéo à 06:18, 06:39, 07:21). La démonstration montre clairement le fonctionnement stable et fiable obtenu lorsque la résistance est en place (dans la vidéo à 08:08).
Chapitres
- [00:00] Introduction
- [00:30] Configurations de câblage
- [04:12] Explication du code utilisant INPUT_PULLUP
- [05:36] Retrait de la résistance : démonstration pratique
- [08:33] Explication du code
Images
/*
* This is an Arduino Sketch for a tutorial video
* explaining why a resistor is needed to be used with a push button
* with Arduino.
*
* Written by Ahmad Shamshiri on July 17, 2018 at 23:11 in Ajax, Ontario, Canada
* For Robojax.com
* Watch the instruction video for this code: https://youtu.be/TTqoKcpIWkQ
* This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.
*/
void setup() {
// Robojax.com push button tutorial
pinMode(3,INPUT_PULLUP);
Serial.begin(9600);
Serial.println("Robojax Push Button Tutorial");
}
void loop() {
// Robojax.com push button tutorial
int pushButton = digitalRead(3);
if(pushButton == LOW)
{
Serial.println("Pin 3 LOW");
}else{
Serial.println("Pin 3 HIGH");
}
delay(500);
}
/*
* This is an Arduino Sketch for a Tutorial video
* explaining why a resistor is needed to be used with a push button
* with an Arduino to connect the pin to Ground (GND)
*
* Written by Ahmad Shamshiri on July 18, 2018 at 17:36 in Ajax, Ontario, Canada
* For Robojax.com
* Watch the instruction video for this code: https://youtu.be/TTqoKcpIWkQ
* This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.
*/
void setup() {
// Robojax.com push button tutorial
pinMode(2,INPUT_PULLUP);
Serial.begin(9600);
Serial.println("Robojax Push Button Tutorial");
}
void loop() {
// Robojax.com push button tutorial
int pushButton = digitalRead(2);
if(pushButton == LOW)
{
Serial.println("Button is pushed.");
}else{
Serial.println("Button is NOT pushed.");
}
delay(500);
}
Ce dont vous pourriez avoir besoin
-
Amazon
Ressources et références
Aucune ressource pour le moment.
Fichiers📁
Aucun fichier disponible.
