Last active
January 13, 2019 23:42
La tension mesurée sur la pin A0 du Pinguino est affichée sur un LCD 16 X 2. Un bargraphe offre également une représentation visuelle de la mesure.
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
/******************************************************************** | |
LCD Bargraph | |
La tension mesurée sur la pin A0 du Pinguino est affichée sur un LCD | |
16 X 2. Un bargraphe offre également une représentation visuelle de | |
la mesure. | |
Branchements du LCD: | |
* LCD RS pin : digital pin 0 | |
* LCD E pin : digital pin 1 | |
* LCD D4 pin : digital pin 2 | |
* LCD D5 pin : digital pin 3 | |
* LCD D6 pin : digital pin 4 | |
* LCD D7 pin : digital pin 5 | |
* LCD R/W pin : ground | |
* Potentiometre 10K: curseur à digital pin 3 | |
* | |
* Plus de détails: | |
* http://electroniqueamateur.blogspot.com/2014/09/pinguino-et-afficheur-lcd.html | |
* | |
********************************************************************/ | |
float vieilleJauge = 0; // valeur précédente de la jauge | |
void setup() | |
{ | |
// initialisation du LCD en mode 4 bits | |
lcd.pins(0, 1, 2, 3, 4, 5, 0, 0, 0, 0); | |
// 16 colonnes, 2 lignes | |
lcd.begin(16, 2); | |
} | |
void loop() | |
{ | |
int i; | |
float nombre = analogRead(A0); // on récupère le voltage sur la broche 2 | |
float jauge = map(nombre, 0, 1023, 0, 16); // on sépare la valeur en 16 morceaux pour le bargraph | |
nombre = nombre / 1023.0 * 5.0; // conversion en volts | |
// on place le curseur pour écrire au début de la première ligne | |
lcd.setCursor(0, 0); | |
lcd.printf("Tension: %04f V", nombre); | |
if (jauge > vieilleJauge) { // on vérifie si le nombre a augmenté | |
for (i = 0; jauge >= i; i++) { | |
lcd.setCursor(i, 1); // curseur dans la deuxième ligne | |
lcd.write(1023); // écriture d'un rectangle noir | |
} | |
} | |
if (jauge <= vieilleJauge) { // si le nombre a diminué | |
for (i = 15; jauge <= i; i--) { //compte à rebours | |
lcd.setCursor(i, 1); // curseur dans la deuxième ligne | |
lcd.write(1022); // écriture d'un rectangle blanc | |
} | |
} | |
vieilleJauge = jauge; | |
delay(200); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment