On a vu qu’on pouvait afficher du texte, on va maintenant afficher du texte et la valeur de variables.
Pour cela, on va à nouveau déplacer le branchement de la Led de la broche 12 vers la broche 10 et on reprend le programme de gradateur vu précédemment. On va le compléter pour afficher la valeur lue en entrée et la tension résultante.
ex6_gradateur.png
Coté structure, rien de nouveau.
Coté
syntaxe :
A l’intérieur d’une condition, avec la fonction if(condition), il est possible d’utiliser, en complément des opérateurs de comparaison, des opérateurs logiques et des calculs. Précédemment, nous avons vu l’opérateur de comparaison « == » qui permet de tester une égalité. Il y en a d'autres.
Les opérateurs de comparaison utilisables sont :
- == test d’égalité
- > supérieur
- < inférieur
- <= inférieur ou égal
- >= supérieur ou égal
- != différent de
Les termes d’un comparaison peuvent être des calculs (par exemple : valeurlue – memoire).
Les opérateurs logiques sont :
- && ET logique
- || OU logique
- ! NON
Dans notre exercice : Si la valeur lue – la mémoire est supérieure à 2 OU si la valeur lue – la mémoire est inférieure à -2 (en clair ; s’il y a une variation d’au moins 2 de la valeur lue en entrée), on affichage les informations. Sinon, on ne fait rien.
Autre point de
syntaxe :
dans les fonction » avec des variables :
- une valeur entre cotes (exemple : « valeurLue = ») est considérée comme du texte
- une valeur sans cotes (exemple : valeurLue) est considérée comme une variable
Coté
Vocabulaire :
- Serial.print affiche une information sans passage à la ligne suivantes
- Serial.println affiche une information et passe à la ligne suivante
- Si une valeur est imprimée, on peut préciser le nombre de décimales - exemple : Seriel.print(tension,2)
Donc, les compléments intégrés dans
le programme :
- Déclaration :
- déclaration de la variable mémoire
- Setup()
- initialisation de la communication avec le moniteur
- loop()
- test de variation de la valeur lue : if(condition1 OU condition2). Si variation :
- impression du texte « valeurLue = », puis impression de la variable valeurLue – aller à la ligne suivante
- impression du texte « Tension = », puis impression de la variable tension avec 2 décimales, puis impression de « V » - aller à la ligne suivante
- sauter une ligne
- mémoriser la valeur lue
- attendre 0,5 seconde avant le prochain test (ici, evite d'avoir un affichage trop rapide)
Le résultat :
moniteur_gradateur.png
Pour télécharger le programme :
BPsLeds_avec_ecran_et_memoire.zip
On dispose maintenant de presque toutes les notions qui vont nous permettre de commander des moteurs et donc de piloter nos modèles Meccano avec une carte Arduino.
On pourra aussi contrôler ce qu’on fait avec le moniteur, ce qui facilitera la mise eu point.
Nota : même si le moniteur n'est pas activé, le programme fonctionne très bien.