Bonjour,
Je suis sur le protoypage d'un gestionnaire de niveau de pellets pour mon poêle à granulés.
Il y a des réalisations qui existent sur cette base technique: un capteur ultrason 'sonar'.
j'ai pris celui de Grove pour raisons pratique. l'idée est de mesurer la distance entre le couvercle et le sommet de la pile de granulés restant dessous. Ca c'est ok.
les 1ers essais ne sont pas mauvais mais j'ai un souci avec la gestion de 5 leds que je veux allumer ou éteindre en fonction du niveau de granulés dans le réservoir.
j'ai 5 leds sur D2,3...6 (chacune est de couleur différente (vert, bleue, jeune orange rouge)
si je suis dans une tranche de remplissage estimée à "100" toutes sont ON
si je suis dans une tranche estimée de remplissage à 75%, la verte sera OFF les autres ON et ainsi de suite jusqu'au rouge uniquement ON
Là, ca parait simple. et je veux passer par des tableaux.
voici les lignes d'initialisation
int pinLEDSniv[] = {2, 3, 4, 5, 6}; //pins D2 to D6 for level indicators leds (Green, Blue, Yellow, Orange, Red)
// leds init output mode
for (indexLeds = 0; indexLeds < 5; indexLeds++) {
pinMode(pinLEDSniv[indexLeds], OUTPUT);
}
char LEDSniv[] = {LOW, LOW, LOW, LOW, LOW}; // or bool ??
mais
lorsque je traite leur extinction /allumage avec par exemple:
LEDSniv[0] = LOW; LEDSniv[1] = LOW; LEDSniv[2] = LOW; LEDSniv[3] = HIGH; LEDSniv[4] = HIGH;
la trace série ne remonte qu'une valeur VIDE
pour chaque entrées de LEDSniv[] ....
mauvais typage ??
merci