Entree analogique arduino, exemple AnalogInput.

Entree analogique arduino, exemple AnalogInput.

Nous allons nous appuyer sur l’exemple AnalogInput afin de prendre en main une entree analogique arduino (dans notre cas nous utiliserons un potentiomètre). Ce programme ainsi que son montage sont simples à prendre en main si vous avez suivi les articles traitants de la fonction delay() et des potentiomètres.

Analyse du programme d’exemple: AnalogInput.

Où trouver le programme analogInput?

Le programme que nous utiliserons se trouve dans le menu Exemple / 03.Analog / AnalogInput :

arduino analoginput

Partie déclaration des variables.

Passons le pavé de commentaire nous expliquant le but et la faon de cabler cet exemple et nous arrivons alors à la déclaration des variables.

Analoginput, déclaration des variables

  • La première ligne nomme sensorPin la borne A0 sur laquelle nous viendrons raccorder notre potentiometre.
    Arduino Uno en 5 parties

    Arduino Uno en 5 parties

    Pour rappel les entrées analogiques sont celles en bas à droite, encadré en bleu.

  • La ligne suivante commence à vous être familière, elle nomme ledPin la borne 13 (où nous viendrons naturellement brancher la LED).
  • Ensuite une variable interne nommée sensorValue sera du type integer (rappel des int ici…) et sera initialisée à 0. Ici nous viendrons stocker la valeur lue par l’entrée sensorPin.

Fonction setup().

fonction setup led

Vous y retrouvez simplement la ligne servant à déclarer la borne 13 (ledPin) comme une sortie. Alors vous serez certainement surprit de ne voir aucune ligne traitant de l’entrée analogique, mais cela est tout à fait logique. Les bornes d’entrées / sorties sont multifonctions, il est donc indispensable de leur préciser leur role (entrees, sorties ou sortie analogique). Alors que entrées analogique étant complètement dissociées dans l’arduino, il n’est pas nécéssaire de leur préciser leurs fonctions (elles ne font que cela).

Faisons l’acquisition d’une entrée analogique dans la boucles loop() de notre arduino.

Passons au coeur du programme d’exemple analoginput, la boucle loop().

void loop() {
// read the value from the sensor:
sensorValue = analogRead(sensorPin);
// turn the ledPin on
digitalWrite(ledPin, HIGH);
// stop the program for <sensorValue> milliseconds:
delay(sensorValue);
// turn the ledPin off:
digitalWrite(ledPin, LOW);
// stop the program for for <sensorValue> milliseconds:
delay(sensorValue);
}

Ligne 3: Vous découvrez la fonction analogRead dans laquelle nous ne pouvons mettre en argument qu’une entrée analogique (AX). Ici nous avions initialiser la variable sensorPin à A0. Cette fonction renvoie une integer, que nous stockons dans sensorValue, allant de 0 à 1023 proportionnellement à la tension (comprise entre 0 et 5V) présente sur l’entrée analogique (0 point pour 0 volt, 511 points pour 2.5V et 1023 points pour 5V).

Ligne 5: Nous allons la LED raccordée sur la borne 13 (ici nommée ledPin).

Ligne 7: Nous temporisons l’allumage de la LED grâce à la fonction delay() (rappel de l’utilisation de la fonction delay ici). Ici nous prenons comme valeur de temporisation celle contenue dans la variable sensorValue. C’est à dire que lorsque sensorValue vaudra 1023, la LED restera allumée 1,023 seconde; lorsque sensorValue vaudra 429, la LED restera allumée 0,429seconde…

Ligne 9: On éteint la LED.

Ligne 11: On temporise l’extinction de la LED selon la valeur contenue dans sensorValue…

Mieux comprendre le programme et son entrée analogique.

Si des notions vous paraissent obscures, voici quelques liens qui pourront certainement vous aider:

  • Vous avez des problème avec la conception d’un programme arduino de base: Alors allez jeter un œil au tutoriel sur la prise en main du logiciel arduino IDE et de sa carte (lien ici), vous y trouverez toutes les bases de la manipulation du soft et des principaux éléments de la carte.
  • Des difficultés a allumer la LED?  La vidéo de l’exemple arduino Button (dont vous avez le lien ici) vous expliquera comment allumer une LED via un bouton poussoir.
  • Vous ne comprenez pas la fonction delay()? Allez donc voir du coté de l’exemple arduino blink (lien ici) qui est intégralement consacré à cette fonction, et si vous le désirez, vous pourrez voir ce dossier expliquant le principal problème de la fonction delay() et comment le régler (en cliquant sur ce lien).
  • Si malgré cela, quelque chose vous échappe encore:  Alors rendez vous sur le forum (à cette adresse) où je me ferai un plaisir de vous aider!

Cablage de l’exemple arduino AnalogInput.

Le câblage n’est pas la partie la plus compliquée.

Pour le cablage de la LED sur l’arduino.

Nous l’avons déjà vu à maintes reprise, que ce soit dans la vidéo blink (cliquez ici pour arriver directement à l’explication du câblage de la LED) ou dans cet article (lien ici).

Et pour le potentiomètre?

Le potentiomètre possède 3 bornes, pour le faire fonctionner il suffit d’amener du 5V sur l’une de ses bornes extérieure et sur 0V sur l’autre (peut importe le sens). Puis amener la broche centrale sur l’entrée analogique A0 de la carte arduino.

Encore une fois vous pourrez trouver un rappel sur l’utilisation du potentiomètre au lien suivant (cliquez ici).

Conclusion sur l’entrée analogique arduino.

Cet exemple ne devrait pas vous poser trop de problème si vous avez suivi les précédents articles. Cela dit si vous avez des difficultés (ou si vous voulez me passer un message) n’oubliez pas qu’il y a un forum à votre disposition (lien du forum).

Sur ce amusez vous bien avec les entrées analogiques 😉


Liens externes:

Fonction DigitalRead, site officiel arduino.

Variable Int, site arduino.

Liens internes.

Exemple button.

Exemple blink.

Les potentiomètres.

About the Author: maxpeigne