Petit retour et petit problème !
j'ai ce code !
// Déclaration et remplissage du tableau...
// ...représentant les broches des LEDs
const int leds[10] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
// le potentiomètre sera branché sur la broche analogique 0
const int potar = 0;
// variable stockant la tension mesurée
int tension = 0;
void setup()
{
int i = 0;
for (i = 0; i < 10; i++)
{
//tension de référence de 1.1V
analogReference(INTERNAL);
// déclaration de la broche en sortie
pinMode(leds[i], OUTPUT);
// mise à l'état haut
digitalWrite(leds[i], HIGH);
}
}
void loop()
{
// on récupère la valeur de la tension du potentiomètre
tension = analogRead(potar);
// et on affiche sur les LEDs cette tension
afficher(tension);
}
void afficher(int valeur)
{
int i;
for (i = 0; i < 10; i++)
{
if ( (valeur>=0) && (valeur<=40) )
digitalWrite(leds[0],LOW); // on allume la LED 1
else
digitalWrite(leds[0],HIGH);
if ( (valeur>=40) && (valeur<=125) )
digitalWrite(leds[1],LOW); // on allume la LED 2
else
digitalWrite(leds[1],HIGH);
if ( (valeur>=125) && (valeur<=169) )
digitalWrite(leds[2],LOW); // on allume la LED 3
else
digitalWrite(leds[2],HIGH);
if ( (valeur>=169) && (valeur<=211) )
digitalWrite(leds[3], LOW); // on allume la LED 4
else
digitalWrite(leds[3], HIGH); // ou on éteint la LED 4
if ( (valeur>=211) && (valeur<=515) )
digitalWrite(leds[4], LOW); // on allume la LED 5
else
digitalWrite(leds[4], HIGH); // ou on éteint la LED 5
if ( (valeur>=515) && (valeur<=770) )
digitalWrite(leds[5], LOW); // on allume la LED 6
else
digitalWrite(leds[5], HIGH); // ou on éteint la LED 6
if ( (valeur>=770) && (valeur<=815) )
digitalWrite(leds[6], LOW); // on allume la LED 7
else
digitalWrite(leds[6], HIGH); // ou on éteint la LED 7
if ( (valeur>=815) && (valeur<=854) )
digitalWrite(leds[7], LOW); // on allume la LED 8
else
digitalWrite(leds[7], HIGH); // ou on éteint la LED 8
if ( (valeur>=854) && (valeur<=897) )
digitalWrite(leds[8], LOW); // on allume la LED 9
else
digitalWrite(leds[8], HIGH); // ou on éteint la LED 9
if ( (valeur>=897) && (valeur<=1000) )
digitalWrite(leds[9], LOW); // on allume la LED 10
else
digitalWrite(leds[9], HIGH); // ou on éteint la LED 10
}}
je l'ai appliqué au compte tour de ma voiture et cela a l'air de fonctionner correctement.
par contre quand je l'utilise sur la sonde lambda j'ai un scintillement de plusieurs leds. Ces leds se "déplacent" dans le "bon sens" mais il y a un manque de "précision" de fourchette de tension.
j'ai pourtant programmé chaque led pour une fourchette de tension mais plusieurs sont allumées ...
faudrait il placé un filtre quelque part ? Programmer autrement ?
merci