Les exercices de l'Atelier des Outils Pour le Numérique
Un vu-mètre à intensité variable
Cet exercice est une évolution du vu-mètre que nous avons traité plus tôt.
Cette fois, l'objectif est de faire varier l'intensité de chaque LED du vu-mètre sur la partie de l'intervalle qu'elle représente. Par exemple, la première LED, au lieu de rester éteinte jusqu'à son seuil (qui était de 256 dans l'exercice précédent), verra son intensité varier graduellement de éteinte pour 0 jusqu'à complètement allumée pour des valeurs supérieures ou égales à 256.
En terme d'apprentissage, rien de bien nouveau côté Arduino. Par contre, c'est à l'algorithme général de résolution de ce problème auquel vous devez porter le plus d'attention.
Matériel nécessaire
Pour cet exercice vous devez disposer du matériel ci-dessous.
Type
Quantité
Platine Arduino
1
Plaque à essais
1
Fil de câblage
9
Résistance de 330 Ω
4
LED (couleurs variées)
4
Potentiomètre
1
Le montage à réaliser est le suivant :
Correction et commentaires
Ce programme étant une évolution du vu-mètre, il va lui ressembler fortement. Nous ajoutons simplement dans l'initialisation la correction qui a été vue pour le signal en dents de scies.
Nous en profitons pour utiliser deux tableaux pour simplifier l'écriture :
un tableau pour stocker les pins sur lesquelles les LED sont branchées (ce sont des pins où le PWM est possible) ;
un tableau pour stocker les valeurs des seuils associées à chaque LED.
La suite est globalement semblable, à cela près que nous ne pouvons plus réagir à une valeur « supérieure ou égale » au seuil. En effet, nous sommes à présent intéressés par toutes les valeurs inférieures au seuil. Il faut donc inverser les conditions.
De plus, il faut contrôler toutes les LED à chaque étape, pour chaque intervalle de notre vu-mètre. Pour chacun de ces intervalles, il y a une LED à piloter finement et les autres à allumer ou éteindre intégralement. Celle qui est pilotée finement doit recevoir une valeur comprise entre 0 et 255. Pour obtenir cette valeur, nous utilisons la fonction map() qui prend en intervalle de départ l'intervalle du vu-mètre affecté à la LED et en intervalle de sortie la plage [0;255].
Tout ça dans la boucle loop() permet à notre vu-mètre de fonctionner correctement.
Pour le besoin de l'exercice nous pilotons le vu-mètre au travers d'un potentiomètre, mais il est bien entendu possible de brancher n'importe quel dispositif analogique qui aurait des valeurs de sortie variant de 0 à 5 Volts. Un thermomètre par exemple ...