Arduino leçon 5 : entrée analogique

nombres décimaux
Jusqu'à maintenant, nous n'avions utilisé que des nombres entiers.
|
Le programme float.ino vous montre l'emploi de nombres décimaux
/* essai pour découvrir les 'float' */
|
entrée analogique
Nous connaissons les entrées digitales qui valent soit 0 (0 volt) soit 1 (5 volts).
Nous allons voir l'autre type d'entrées, celles qui varient progressivent entre 0 et 5 volts.
Nous utilisons un potentiomètre entre le +5 et la masse, avec le curseur relié à la broche
analogique A10.
On choisit une broche de numéro > 7 parce que les premières seront inaccessibles quand on utilisera l'afficheur.

mesure d'une entrée analogique
La tension présente sur une broche analogique est lue par Arduino avec une précision sur 10 bits.
Puisque 2 à la puissance 10 vaut 1024, on lit un nombre entre 0 et 1023.
On relie le curseur d'un potentiomètre à la borne analogique 10 d'Arduino.
Les autres broches du potentiomètre sont reliées au +5 et à la masse.
/* entrée analogique et Serial */
|
calcul de tension
Puisqu'on a une amplitude de 1023 pour mesurer un intervalle de 5 volts, on obtient le nombre de volts en divisant le nombre lu par 204.6 (1023/5). Pour avoir un nombre décimal, on déclare une variable en virgule flottante et le programme devient.
le programme
/* entrée analogique et Serial 2 */
|
Suggestion pour ceux qui veulent améliorer ce programmeN'afficher la tension que si elle a varié depuis le dernier affichage |
l'afficheur
description
depuis le haut vers le bas, nous voyons:
- Le potentiomètre qui sert à règler le contraste de l'affichage.
- l'afficheur
- 6 boutons poussoirs
celui de droite est équivalent au bouton reset de la carte, les autres sont programmables.

initialisation
Il existe une bibliothèque de fonctions Arduino que nous devons ajouter à notre programme
par la directive #include pour pouvoir utiliser les afficheurs.
Cette bibliothèque est contenue dans le fichier LiquidCrystal.h .
Une directive est une information pour le compilateur.
Une bibliothèque est un ensemble de fonctions spécifiques à un type d'applications.
La bibliothèque s'appelle LiquidCrystal.h
Dans cette bibliothèque, il existe un type de variables objets qui s'appelle LiquidCrystal.
Nous déclarons une telle variable que nous appelons afficheur.
En même temps que nous déclarons cette variable, nous indiquons les bornes utilisées.
C'est pour pouvoir travailler avec les fonctions qui étaient écrites pour les afficheurs standard du commerce.
1er programme : un seul affichage
On se contente d'afficher dans le setup() et on ne fait rien dans la boucle
/* hello décembre 2013 */
|
2ème programme : on compte les secondes
On va afficher un compteur de secondes.
/* bonjour décembre 2013 */
|
3ème programme : on affiche la tension
On réunit les informations des programmes vus pour afficher la tension présente sur l'entrée analogique 10.
Cette fois je vous laisse faire le programme tous seuls.
méthode :
- ouvrez le programme bonjour_dec_2013.ino et
sauvegardez le immédiatement sous un autre nom,
- ouvrez à côté le programme entree_analogique_et_serial.ino,
- faites un copier-coller des commandes utiles de ce programme dans l'autre.
- Vérifiez que votre programme est correct (1er bouton de la fenêtre) même si vous n'avez pas la plaquette Arduino.
Si vous êtes en forme, gérez le pluriel du mot volt(s).
Les bibliothèquesUn grand nombre de fonctions d'Arduino ne sont pas présentes par défaut. Quand on en a besoin, on précise au compilateur
d'aller les chercher dans une bibliothèque par la directive #include.
Nous avons appelé ici la blibliothèque LiquidCrystal.h qui contient les fonctions liées aux afficheurs
à cristaux liquides.
attention aux faux amisLibrary veut dire bibliothèque.
|
27 Juin 2014
Les boutons de la carte afficheurs
Pour économiser des entrées de la carte, les 5 boutons sont reliés à la même entrée de la carte, l'entrée analogique 0.
Chacun envoie sur cette entrée une tension différente. la lecture de cette tension nous indique quel bouton est enfoncé.
On ne traitera pas les cas de plusieurs boutons enfoncés en même temps.
bouton appuyé | tension sur A0 | valeur lue |
aucun | 4,99 | 1023 |
select | 3,61 | 741 |
up | 0,69 | 142 |
down | 1,59 | 326 |
right | 0,00 | 0 |
left | 2,46 | 504 |
Il suffit de tester la valeur lue sur A0 pour savoir quel bouton est enfoncé.
Faites un programme qui testera si on a une de ces valeurs sur l'entrée analogique 0.
On se donnera une marge d'incertitude de 1 bit en plus ou en moins, par exemple 740 et 742 seront considérés comme 741.
le programme
cliquez ici pour récupérer le programme
Utilisez ce programme pour vérifier votre montage.
Essayez de l'améliorer en écrivant un sous programme auquel on passe une chaîne en paramètre au lieu d'écrire plusieurs fois
des lignes qui se ressemblent.
autre afficheur
Il existe une ancienne version de cette page. Elle ne concerne pas l'afficheur spécial pour Arduino mais l'afficheur générique sans boutons. Allez la consulter si votre afficheur est de ce modèle :

sinon vous pouvez passer à la leçon suivante.
haut de la page

