Code de recherche

Pourquoi utiliser des résistances avec des boutons-poussoirs et des interrupteurs sur Arduino

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.

Arduino wiring for Push button wihthout resistor

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) :

  1. 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.
  2. 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.

Arduino wriring for push button and LED
Arduino wriring for push button and LED

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

Pourquoi devrions-nous utiliser une résistance avec un bouton-poussoir sur Arduino ?
Pourquoi devrions-nous utiliser une résistance avec un bouton-poussoir sur Arduino ?
Pourquoi devrions-nous utiliser une résistance avec un bouton-poussoir avec Arduino ?
Pourquoi devrions-nous utiliser une résistance avec un bouton-poussoir avec Arduino ?
2 pin tactile push button switch
2 pin tactile push button switch
Arduino wriring for push button and LED
Arduino wriring for push button and LED
Arduino wiring for Push button with resistor-2
Arduino wiring for Push button with resistor-2
Arduino wiring for Push button with resistor-1
Arduino wiring for Push button with resistor-1
Arduino wiring for Push button wihthout resistor
Arduino wiring for Push button wihthout resistor
132-Code example using a resistor
Langue: C++
/*
 * 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);
}
133-Code example using INPUT_PULLUP without a resistor
Langue: C++
/*
 * 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

Ressources et références

Aucune ressource pour le moment.

Fichiers📁

Aucun fichier disponible.