Introduction

Présentation

Après les capteurs numériques la semaine dernière, nous allons découvrir aujourd'hui ce que sont les capteurs analogiques et comment les interfacer avec Arduino.

Pour comprendre la différence entre ces deux familles de capteurs, prenons deux exemples :

  • Le bouton poussoir est un capteur numérique qui peut nous donner deux informations sur l'état d'un bouton lorsqu'on le branche sur Arduino. Soit le bouton est appuyé (HIGH) soit il ne l'est pas (LOW)

  • Lorsque l’on mesure une grandeur physique la valeur de cette grandeur n’est pas toujours binaire (0 ou 1). si on prend l’exemple d’un capteur de luminosité il va renvoyer un signal (tension) variable en fonction de la luminosité mesurée, c’est un capteur analogique. Le signal envoyé par le capteur va être converti par la carte Arduino pour donner des valeurs numérique comprises entre 0 et 1023.

Nous pourrons ainsi savoir précisément si notre environnement est sombre ou lumineux selon si la valeur reçue est basse ou élevée

Pour vous aider vous pouvez consulter le site suivant :

https://icn.lycee-valin.fr/dokuwiki/doku.php?id=arduino:plaque_grove_du_lycee_valin

Les entrée analogiques

La carte Arduino Uno possède 6 entrées analogiques, reliées à un convertisseur analogique/numérique qui renvoie un code numérique sur 10 bits, soit une valeur comprise entre 0 et 1023. La pleine échelle est de 5V, c’est à dire que la valeur numérique 0 correspond à 0V et la valeur numérique 1023 correspond à 5V. Ainsi le pas de quantification est de 5V/1024 soit environ 5 mV.

Les entrées sont repérées sur la carte par les broches A0 à A5.

Initialisation d’une entrée analogique

Les entrées analogiques A0 à A5 sont automatiquement paramétrées au démarrage du programme. Il n’y a donc rien à faire pour spécifier leur utilisation.

Lecture d’une entrée analogique

Pour pouvoir lire une entrée analogique, il faut utiliser le code suivant :

1
const int analogInPin = A0;  // Entrée analogique sur laquelle est branché le capteur analogique
2
int Valeur = 0;        // variable ou sera stockée la valeur lue sur l'entrée analogique

On passe au setup qui contient une seul instruction :

Serial.begin(9600);

C'est une nouveauté, vous noterez que cette fonction est séparé par un point. Cela signifie qu'elle appartient appartient à une librairie qui s'appelle ici Serial.

Nous reviendrons la semaine prochaine sur ce qu'est une librairie mais sachez que la fonction begin qui suit le point permet de dire que l'on souhaite communiquer avec l'ordinateur en utilisant notre port USB.

En effet, le port USB que nous utilisons pour téléverser nos programmes sur l'Arduino permet aussi d'envoyer et de recevoir du texte avec un ordinateur.

Le paramètre 9600 est la vitesse on échange les caractères.

Venons en à la fonction setup

1
void setup() {
2
  // initialize serial communications at 9600 bps:
3
  Serial.begin(9600);
4
}

Nous passons ensuite au bloc loop.

Nous allons utiliser analogRead qui renvoie une valeur numérique comprise entre 0 et 1023.

Nous allons donc récupérer dans la variable Valeur un nombre que nous allons ensuite afficher dans le moniteur série.

1
Valeur = analogRead(A2);
2
Serial.print("Valeur = ");
3
Serial.println(valeur);

Cablage d’un potentiomètre

Pour tester cette entrée analogique, on peut l’associer à un potentiomètre.