Comment contrôler une broche analogique ? Comment contrôler un composant avec AnalogWrite et AnalogRead ?

L’écriture ou la lecture de broche analogique vont vous permettre de contrôler vos composants et de lire les mesures de vos capteurs.

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

  • Contrôler votre composant  (analogWrite)
  • Lire la tension aux bornes d’un capteur (analogRead)
  • Convertir la valeur obtenu ou voulu (map)

Voici les broches analogiques contrôlablent par le analogWrite et analogRead :

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

Un signal numérique peut prendre deux valeurs : HIGH ou LOW. HIGH corresponds à l’état haut et LOW à l’état bas . Ce signal est très utile pour détecter l’état d’un bouton poussoir, par exemple ou pour allumer une LED.

Néanmoins si vous voulez allumer votre LED avec la moitié de son intensité, 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.

Vous pouvez utiliser un convertisseur analogique en numérique pour convertir le signal.

analogWrite ()

L’analogWrite permet de contrôler des composants tels qu’une LED, Servomoteur…  En effet, grâce au pwm, l’analogWrite peut contrôler les composants de façon précise comme donner la position d’un servomoteur ou la puissance d’une led.

 

analogWrite(pin, value);

L’analogWrite permet de générer des valeurs intermédiaires entre 0 et 255 (sur une carte Arduino standard) en ajustant le rapport cyclique de la tension de sortie. En d’autres termes, elle module la largeur des impulsions pour simuler une tension moyenne différente. Par exemple, si vous spécifiez une valeur de 128 pour la fonction analogWrite, cela signifie que la broche produira un signal carré dont le rapport cyclique est de 50%, générant ainsi une tension moyenne d’environ 2,5V.

Voici un exemple de la fonction analogWrite sur la broche A3 :

analogWrite(A3, 128);

analogRead ()

Si vous souhaitez lire la valeur venant d’un capteur, c’est la fonction analogRead dont vous aurez besoin !

 Voici un exemple d’utilisation de la fonction analogRead() :

analogRead(broche)

broche : de A0 à A5

La fonction retourne la valeur de la broche analogique, qui est une valeur entre 0 et 1023 correspondant à la tension lue sur la broche. On va voir comment la convertir.

Conversion de la valeur

Map est une fonction mathématique qui transforme une valeur en donnant les bornes de l’ancienne valeur et les bornes auquel vous voulez que la valeur convertie appartienne.

map(valeur_a_convertir, ancienne_valeur_basse, ancienne_valeur_haute, nouvelle_valeur_basse, nouvelle_valeur_haute)
  • analogWrite () : Convertir la valeur en % ou en degrés entre 0 et 255

Comme on l’a dit précédement, la fonction analogWrite prends en paramètre des valeurs entre 0 et 255. Mais le servomoteur, par exemple,  se contrôle avec des valeurs entrent 0° et 180°. En ce qui concerne la led,celle-ci se pilote entre 0% et 100%.

On va donc  convertir ces valeurs pour qu’elles correspondent à la fonction analogWrite grâce à la fonction map.

Par exemple, si on veut la position 90° pour notre servomoteur en broche 7 :

int valeur_servomoteur=90;
valeur_servomoteur=map(valeur_servomoteur,0,180,0,255);
analogWrite(7,valeur_servomoteur);
  • analogRead () : Convertir la valeur entre 0 et 1023 en une tension entre 0 et 5V

La valeur entre 0 et 1023 ne vous parle sûrement pas, on va donc voir comment la convertir entre 0V et 5V.  Pour cela on va utiliser la fonction map, qui va nous permettre de convertir la valeur obtenue :

int valeur =analogRead(pin);
valeur=map(valeur,0,1023,0,5);

FAQ

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

Un signal numérique peut prendre deux valeurs : HIGH ou LOW. HIGH corresponds à l’état haut et LOW à l’état bas . Ce signal est très utile pour détecter l’état d’un bouton poussoir, par exemple ou pour allumer une LED.

Comment contrôler une broche analogique ?

L’analogWrite permet de contrôler des composants tels qu’une LED, Servomoteur… En effet, grâce au pwm, l’analogWrite peut contrôler les composants de façon précise comme donner la position d’un servomoteur ou la puissance d’une led.

Comment lire la valeur d'une broche analogique ?

Si vous souhaitez lire la valeur venant d’un capteur, c’est la fonction analogRead dont vous aurez besoin !