1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| const byte sondeMoteur = A5; // entrée sonde, donne un résultat entre 0 et 1V
const long borneMaxSonde = 1024.0 / 1.1; // 1024 pas correspondront à 1,1V donc 1V correspond à 1024/1,1
const byte pinsAfficheur[] = { 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; // les pins associées à nos LEDs, dans l'ordre croissant d'affichage
const byte nombreDeLeds = sizeof(pinsAfficheur) / sizeof (pinsAfficheur[0]); // le nombre de LEDs dans l'affichage. 10 dans notre cas
void setup()
{
// on mesurera moins de 1.1V, donc on peut utliser la référence interne
analogReference(INTERNAL);
// on met les pins des LEDs en sortie
for (byte i = 0; i < nombreDeLeds; i++) pinMode(pinsAfficheur[i], OUTPUT);
}
void loop()
{
byte compteurLed = map (analogRead(sondeMoteur), 0, borneMaxSonde, 0, nombreDeLeds + 1); // on transforme la valeur en nombre de LED à allumer
compteurLed = constrain(compteurLed, 0, nombreDeLeds); // on s'assure de ne pas déborder
for (byte i = 0; i < compteurLed; i++) digitalWrite(pinsAfficheur[i], HIGH); // on allume celles là
for (byte i = compteurLed; i < 10; i++) digitalWrite(pinsAfficheur[i], LOW); // on éteint le reste
// comme on n'a pas besoin de le faire trop souvent, on attend un peu
delay(1000); // attente d'une seconde
} |
Partager