LOCODUINO

Forum de discussion
Dépôt GIT Locoduino
Flux RSS

jeudi 25 mai 2017

46 visiteurs en ce moment

Entrées numériques et résistance pull-up

. Par : Marc-Henri

Cet article précise comment utiliser les entrées numériques en y connectant un bouton poussoir. Il introduit le concept de résistance pull up et décrit comment utiliser les résistances pull up internes au microcontrôleur.

Lorsque l’on utilise les entrées numériques de l’Arduino, celles que l’on peut lire par l’instruction digitalRead(...), certains principes de base doivent être pris en compte.

La présentation générale des entrées sorties de l’Arduino fait l’objet de l’article de Jean-Luc : Les entrées sorties de l’Arduino.

Les images suivantes sont adaptées des exemples présentés dans www.arduino.cc.

Un premier exemple

À titre d’exemple, considérons la connexion d’un bouton poussoir à une entrée numérique de l’Arduino. On pourrait penser qu’il suffit de connecter un poussoir comme suit :

Lorsque le bouton est pressé, l’entrée est à 5 V, mais lorsque le bouton n’est pas pressé, elle n’est pas définie car elle est "en l’air". Les entrées du microcontrôleur équipant l’Arduino sont très sensibles et elles réagissent à la tension qui leur est appliquée. En conséquence, l’entrée laissée en l’air peut avoir n’importe quelle valeur comprise entre 0 et 5 V et être interprétée comme un LOW ou un HIGH par l’instruction digitalRead(...).

Résistance pull down

Pour fixer la tension lorsque le bouton n’est pas pressé, on insère une résistance pull down (résistance de tirage vers le bas) entre l’entrée et la masse (GND) dont le rôle est d’assurer que l’entrée est à 0 V lorsque le poussoir n’est pas pressé.

Lorsque le poussoir est pressé, un courant égal à 5 V / R circule dans la résistance. Pour une alimentation de 5 V, une bonne valeur pour R est d’au moins 4.7 Kilo-Ohm, le courant sera alors de 1.1 mA.

Résistance pull up

Pour des raisons liées aux technologies des circuits logiques, les électroniciens préfèrent utiliser une résistance pull up (résistance de tirage vers le haut) entre l’entrée et l’alimentation (5 V dans le schéma ci-après) et connecter le poussoir comme suit.

La résistance pull up doit aussi avoir une valeur d’au moins 4.7 Kilo-Ohm. Le raisonnement est le même que pour la résistance pull down, lorsque le bouton est pressé, l’entrée est à 0 V et un courant de 1.1 mA circule dans la résistance. Lorsque le bouton n’est pas pressé, l’entrée est à 5 V et il ne circule aucun courant dans la résistance. Dans le programme, il faut inverser le résultat retourné par digitalRead(...) comme suit pour tester que le bouton est pressé :

  1. if (digitalRead (2) == LOW)
  2. {
  3. // Actions à faire lorsque le bouton est pressé.
  4. ...
  5. }

Pour faciliter la compréhension de cet exemple, le numéro de la pin est codé en dur, la bonne pratique serait de définir une constante avec un nom significatif comme par exemple : int pinBouton = 2;

Résistance pull up intégrée au microcontrôleur

Les résistances pull up sont très communes en électronique numérique, raison pour laquelle le microcontrôleur qui équipe l’Arduino dispose de résistances pull up internes qui évitent l’utilisation de résistances externes. Ces résistances internes ont une valeur comprise entre 20 et 50 Kilo-Ohm, certes plus élevée que la valeur recommandée pour une résistance externe, mais suffisante. Le schéma ci-après illustre le câblage du poussoir sans résistance pull up externe, la résistance pull up interne étant représentée en traitillé et à l’intérieur de la carte Arduino,

Pour activer la résistance pull up interne d’une entrée, par exemple la no 2, il suffit d’écrire, dans la fonction setup :

pinMode (2, INPUT_PULLUP);

à la place de :

pinMode (2, INPUT);

Le test de l’état du bouton s’effectue de la même manière qu’avec une pull up externe.

En se basant sur cet exemple, nous verrons dans un autre article comment connecter un ILS ou une détection de présence aux entrées numériques de l’Arduino.

Réagissez à « Entrées numériques et résistance pull-up »

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.

Lien hypertexte

(Si votre message se réfère à un article publié sur le Web, ou à une page fournissant plus d’informations, vous pouvez indiquer ci-après le titre de la page et son adresse.)

Rubrique « Atelier »

LOCODUINO, l’Arduino pour le train miniature

Un minimum pour jouer rapidement avec un Arduino

Où acheter ?

Comment alimenter l’Arduino sans ordinateur ?

Faire de jolis schémas avec Fritzing

Les entrées sorties de l’Arduino

De nouveaux composants pour continuer à jouer

Installer une bibliothèque

Les indispensables du prototypage

Monter une bibliothèque !

Démarrer en électronique

Conférence sur Arduino faite à Trainsmania (avril 2017)

Les derniers articles

Conférence sur Arduino faite à Trainsmania (avril 2017)


Christian Bézanger

Démarrer en électronique


Christian Bézanger

Monter une bibliothèque !


Thierry

Entrées numériques et résistance pull-up (2)


Marc-Henri

Entrées numériques et résistance pull-up


Marc-Henri

Faire de jolis schémas avec Fritzing


Dominique, Guillaume

De nouveaux composants pour continuer à jouer


Dominique, Guillaume, Jean-Luc, Thierry

Les indispensables du prototypage


Thierry

Comment alimenter l’Arduino sans ordinateur ?


Dominique, Guillaume, Jean-Luc

Installer une bibliothèque


Dominique, Guillaume, Jean-Luc, Thierry

Les articles les plus lus

Comment alimenter l’Arduino sans ordinateur ?

Les entrées sorties de l’Arduino

Faire de jolis schémas avec Fritzing

Installer une bibliothèque

Entrées numériques et résistance pull-up

LOCODUINO, l’Arduino pour le train miniature

Conférence sur Arduino faite à Trainsmania (avril 2017)

Les indispensables du prototypage

Un minimum pour jouer rapidement avec un Arduino

Où acheter ?