LOCODUINO

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

mardi 19 mars 2024

Visiteurs connectés : 79

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

.
Par : Marc-Henri

DIFFICULTÉ :

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

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

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.

28 Messages

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

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

Débuter en Arduino sans Arduino ! (1)

Débuter en Arduino sans Arduino ! (2)

Comment alimenter l’Arduino sans ordinateur ?

Faire de jolis schémas avec Fritzing

Les entrées sorties de l’Arduino

Installer une bibliothèque

La compilation d’un projet Arduino

Monter une bibliothèque !

Démarrer en électronique

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

LOCODUINO à Fédérail 2017

Comment réussir son projet Arduino

Utiliser les composants CMS

Que peut-on alimenter avec un Arduino

Salade de broches

Comment utiliser Arduino sans apprendre à programmer ?

Du sketch à l’exécutable

Programmer vos Arduino avec un fichier hexadécimal

Où et comment demander de l’aide ?

LOCODUINO raconté sur la chaîne Aiguillages

Les derniers articles

LOCODUINO raconté sur la chaîne Aiguillages


Dominique

Débuter en Arduino sans Arduino ! (2)


Christian

Où et comment demander de l’aide ?


Christian, Dominique, Jean-Luc, msport, Thierry

Débuter en Arduino sans Arduino ! (1)


Christian

Comment utiliser Arduino sans apprendre à programmer ?


Christian

Programmer vos Arduino avec un fichier hexadécimal


Christian

Du sketch à l’exécutable


Christian

Salade de broches


Thierry

Que peut-on alimenter avec un Arduino


Jean-Luc

La compilation d’un projet Arduino


Thierry

Les articles les plus lus

Les entrées sorties de l’Arduino

Comment alimenter l’Arduino sans ordinateur ?

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

Démarrer en électronique

Comment utiliser Arduino sans apprendre à programmer ?

Que peut-on alimenter avec un Arduino

Installer une bibliothèque

Faire de jolis schémas avec Fritzing

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

Utiliser les composants CMS