Skip to content

Instantly share code, notes, and snippets.

@ypelletier
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.
/********************************************************************
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