Comment contôler une broche numérique ? Comment contrôler un composant avec digitalWrite et digitalRead ?

L’écriture ou la lecture de broche numérique vont vous permettre de contrôler vos composants et de lire leurs états.

Voici ce que l’on va voir dans ce cours :

  • Configurer la broche en entrée ou sortie (pinMode)
  • Contrôler votre composant  (digitalWrite)
  • Lire la tension aux bornes d’un capteur (digitalRead)

Voici les broches numériques :

A quoi correspondent les "~" ?

Comme vous pouvez voir il y a certaines broches qui possedent une vague (“~”). La vague indique que les broches sont contrôlables avec le pwm (Pulse width modulation). Ces broches peuvent être contrôlées de deux manières : Avec digitalWrite ou analogWrite.

Le digitalWrite va permettre de contrôler la broche à l’état haut ou bas, alors que l’analogWrite permet de faire varier la tension comme pour allumer une led à la moitié de sa puissance par exemple.

En ce qui concerne les broches sans vague (“~”), seul le digitalWrite peut les contrôler.

Quelle est la différence entre analogique et numérique ?

Un signal numérique est une tension qui peut prendre deux valeurs : l’état haut (HIGH) ou l’état bas (LOW). HIGH corresponds au 5V et LOW au 0V. Ce signal est très utile pour détecter l’état d’un bouton poussoir, ou pour allumer une LED.

Néanmoins si vous voulez allumer votre LED avec la moitié de sa puissance, vous aurez besoin d’un signal analogique.

Celui-ci peut prendre une infinité de valeur entre 0V et 5V. Ce signal va vous être utile pour mesurer et envoyer des valeurs beaucoup plus précises comme 0.45V au lieu de 0V et 5V comme dans un signal numérique.

Il existe un convertisseur analogique en numérique pour convertir le signal.

pinMode ()

Le pinMode est une fonction qui permet d’indiquer à la carte Arduino si la broche sera une entrée ou une sortie. Autrement dit, si la carte Arduino doit attendre des valeurs venant d’un capteur par exemple ou bien contrôler un composant.

Le pinMode possède donc deux paramètres, le nom de la broche et le mode, en INPUT ou OUTPUT :

pinMode(broche, mode);

Les broches de la carte Arduino peuvent aller de 0 à 13 (comme vu sur le schéma). Néanmoins les pins 0 et 1 sont utilisés pour la liaison UART (TX et RX).

Le mode lui est soit INPUT pour une entrée ou OUPUT pour une sortie.

Voici un exemple de la broche 10 initialisée en sortie :

pinMode(10, OUTPUT);

Voici un exemple de la broche 5 initialisée comme entrée :

pinMode(5, INPUT);

digitalWrite ()

Si le pinMode a été configurée en sortie (OUTPUT), alors vous aurez besoin du digitalWrite pour contrôler votre composant. La fonction digitalWrite permet d’apporter de la tension (3,3V ou 5V) à votre composant, ou bien 0V  pour l’éteindre .

La fonction digitalWrite prends en compte deux paramètres : la broche et la valeur entre HIGH (état haut) et LOW (état bas) :

digitalWrite(broche, valeur);

Ici nous pouvons voir que la fonction a deux paramètres :

  • broche :  2 à 13
  • valeur : HIGH (état haut) ou LOW (état bas)

Un exemple de composant allumé sur la broche 7 :

digitalWrite(7, HIGH);

Un autre exemple de composant éteint sur la broche 10 :

digitalWrite(10, LOW);

Si vous allumez votre LED avec le digitalWrite, elle sera soit allumée avec le mode HIGH ou éteinte sinon. Si vous souhaitez des valeurs intermédiaires comme la faire briller qu’à moitié, on vous conseille l’analogWrite.

digitalRead ()

Le digitalRead permet d’écouter de lire les informations venant d’un composant extérieur. Un exemple d’utilisation serait de  savoir si on a appuyé sur un bouton poussoir par exemple.

 Le digitalRead fonctionne que si votre broche a été configuré en entré avec le pinMode.

Le digitalRead prends en paramètre la pin sur laquelle est connecté le composant que vous souhaitez lire :

digitalRead(pin);

Le digitalRead peut retourner que deux valeurs possibles : HIGH ou LOW

Voici un exemple ou l’on écoute la broche 8 :

digitalRead(8);

Si vous voulez des valeurs plus précise que HIGH ou LOW, alors il vous faudra utiliser AnalogRead.

FAQ

A quoi sert la fonction pinMode() ?

La fonction PinMode est utilisé pour indiqué si une pin est une entrée ou une sortie pour la carte Arduino.

Quel est l'utilité de la fonction digitalWrite ?

La fonction digitalWrite permet d’envoyer une valeur (HIGH ou LOW) à une broche de l’Arduino.