Voilà ou j'en suis pour la lecture de la sonde lambda
pour plus de "stabilité" des leds j'ai mis un délais pour les sorties.
Je ne pense pas que ce soit la meilleure (fiable) solution.
Comme suggérer plus haut il faudrait effectivement faire un échantillonnage de tensions sur quelques ms.
j'ai trouvé pas mal de choses mais je nage un peu pour programmer ce "tableau" et l'appliquer, quelqu'un aurait l'envie de me corriger et me compléter mon code, ou au moins me donner les bases ?
merci
// 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);
delay(50);
// mise à l'état haut
digitalWrite(leds[i], HIGH);
delay(50);
}
}
void loop()
{
// on récupère la valeur de la tension du potentiomètre
tension = analogRead(potar);
delay(100);
// 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); // on éteind la LED 1
if ( (valeur>=40) && (valeur<=125) )
digitalWrite(leds[1],LOW); // on allume la LED 2
else
digitalWrite(leds[1],HIGH); // on éteint la LED 2
if ( (valeur>=125) && (valeur<=169) )
digitalWrite(leds[2],LOW); // on allume la LED 3
else
digitalWrite(leds[2],HIGH); // on éteint la LED 3
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
}}