Je m'attendais à quelque chose de moyennement compliqué, comme par exemple être obligé de créer mes propres polices de caractères en forme de rectangle, mais c'est finalement assez simple: il s'agit d'afficher des rectangles noirs ou blancs aux endroits appropriés.
Dans le schéma de circuit illustré ci-dessus, R1 est un potentiomètre de 5 kΩ qui permet de faire varier la tension à l'entrée analogique numéro 2 de l'Arduino et, par conséquent, de faire varier la longueur de la barre indicatrice sur l'afficheur. Bien entendu, dans un projet utile, ce voltage pourrait provenir d'un capteur afin d'afficher une valeur mesurée. La barre horizontale pourrait également indiquer la valeur d'un paramètre modifiable par l'utilisateur, comme par exemple le volume sonore.
Pour plus de détails sur le reste du circuit, consultez cet article plus complet . R2 est un potentiomètre de 10 kΩ qui ne sert qu'à modifier le contraste de l'afficheur (vous pouvez le remplacer par une résistance fixe lorsque vous connaissez la valeur qui permet un affichage net).
-
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/****************************************************************************************** | |
Valeur analogique mesurée sur l'entrée A2 affichée sur un LCD sous la forme d'un bargraphe. | |
http://electroniqueamateur.blogspot.ca/2011/07/diagramme-en-baton-sur-un-afficheur.html | |
*******************************************************************************************/ | |
#include <LiquidCrystal.h> // LiquidCrystal Library | |
int analogPin = 2; // Voltage mesuré sur la broche 2 | |
float d = 0; | |
float oldit = 0; | |
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //afficher à cristaux liquides | |
// branché sur les broches | |
// 12, 11, 5, 4, 3 et 2 | |
void setup() { | |
lcd.begin(16, 2); | |
lcd.setCursor(0, 0); // curseur dans le coin supérieur droit | |
lcd.println("Tension "); // on écrit le mot "Tension" | |
} | |
void loop() { | |
float num = analogRead(analogPin); // on récupère le voltage sur la broche 2 | |
float it = map(num, 0, 1023, 0, 16); // on sépare la valeur en 16 morceux | |
lcd.setCursor(8, 0); | |
lcd.print(num/1024*5); // on écrit la valeur numérique du voltage | |
if (it > oldit) { // on vérifie si le nombre a augmenté | |
for (d = 0; it >= d; d++) { | |
lcd.setCursor(d, 1); // curseur dans la deuxième ligne | |
lcd.write(1023); // écriture d'un rectangle noir | |
} | |
} | |
if (it <= oldit) { // si le nombre a diminué | |
for (d = 15; it <= d; d--) { //compte à rebours | |
lcd.setCursor(d, 1); // curseur dans la deuxième ligne | |
lcd.write(1022); // écriture d'un rectangle blanc | |
} | |
} | |
oldit = it; | |
} |
À lire également:
Et peut on utiliser un Arduino nano ?
RépondreSupprimerBien le bonjours. Petit commentaire sur ce blog que je viens de trouver et que je trouve formidable. Je proffite donc de la réponse à cette question pour remercier grandement l'auteur pour son blog qui est vraiment passionnant et tres inspirant ! Donc : Merci !! ( je pense meme que votre blog serras celui quin me ferras passer le pas en en créant un. Pour le partage ! )
SupprimerDonc a la question peut on utiliser un arduino nano, oui, tout à fait.La constitution de l'arduino nano est éxactement la meme que celle d'un UNO la seul différence résidant dans la taille. Moi j'utilise mon uno pour faire les prototype. Et je monte les version finales quand elle on lieux d'etre sur des Nano. voilà ;)
Bonjour, le branchement est-il le même pour la mega?
RépondreSupprimerMerci!
Merci beaucoup de nous tenir toujours compagnie dans le développement de nos projets
RépondreSupprimerj'ai l'impression que dans le 1er sketch, le debounce time est si long que le keypad ne reagit pas tout le temps. faut le mettre à 0
RépondreSupprimer