Code d'exemple d'affichage par niveaux pour un bargraphe à LEDs

par skywodd | | Langue : C++ | Licence : GPLv3

Description :

Code d'exemple d'affichage par niveaux pour un bargraphe à LEDs.

Code source :

Voir le code source brut | Télécharger bargraph_led_levels.ino | Télécharger bargraph_led_levels.ino.zip

/**
 * Code d'exemple d'affichage par niveaux pour un bargraphe à LEDs.
 */

/* Les broches */
const byte PIN_LED_1 = 4;
const byte PIN_LED_2 = 5;
const byte PIN_LED_3 = 6;
const byte PIN_LED_4 = 7;
const byte PIN_LED_5 = 8;
const byte PIN_LED_6 = 9;
const byte PIN_LED_7 = 10;
const byte PIN_LED_8 = 11;
const byte PIN_LED_9 = 12;
const byte PIN_LED_10 = 13;

void setup() {
  
  /* Met les broches en sorties */
  pinMode(PIN_LED_1, OUTPUT);
  pinMode(PIN_LED_2, OUTPUT);
  pinMode(PIN_LED_3, OUTPUT);
  pinMode(PIN_LED_4, OUTPUT);
  pinMode(PIN_LED_5, OUTPUT);
  pinMode(PIN_LED_6, OUTPUT);
  pinMode(PIN_LED_7, OUTPUT);
  pinMode(PIN_LED_8, OUTPUT);
  pinMode(PIN_LED_9, OUTPUT);
  pinMode(PIN_LED_10, OUTPUT);
  
  /* Eteint les LEDs */
  afficheBargraphe(0);
}

void loop() {
  static byte valeur = 0;
  
  // Affiche la valeur
  afficheBargraphe(valeur);
  //afficheBargraphe_inverse(valeur);

  // Incrémente la valeur de 1, revient à 0 si > 10
  if (++valeur == 11) {
    valeur = 0; 
  }
  
  // Delai pour la démo
  delay(1000);
}

/* Affiche la valeur (valeur = n°LED allumée) */
void afficheBargraphe(byte valeur) {
  digitalWrite(PIN_LED_1, valeur >= 1);
  digitalWrite(PIN_LED_2, valeur >= 2);
  digitalWrite(PIN_LED_3, valeur >= 3);
  digitalWrite(PIN_LED_4, valeur >= 4);
  digitalWrite(PIN_LED_5, valeur >= 5);
  digitalWrite(PIN_LED_6, valeur >= 6);
  digitalWrite(PIN_LED_7, valeur >= 7);
  digitalWrite(PIN_LED_8, valeur >= 8);
  digitalWrite(PIN_LED_9, valeur >= 9);
  digitalWrite(PIN_LED_10, valeur >= 10);
}

/* Affiche la valeur (valeur = n°LED allumée) */
void afficheBargraphe_inverse(byte valeur) {
  digitalWrite(PIN_LED_1, valeur < 1);
  digitalWrite(PIN_LED_2, valeur < 2);
  digitalWrite(PIN_LED_3, valeur < 3);
  digitalWrite(PIN_LED_4, valeur < 4);
  digitalWrite(PIN_LED_5, valeur < 5);
  digitalWrite(PIN_LED_6, valeur < 6);
  digitalWrite(PIN_LED_7, valeur < 7);
  digitalWrite(PIN_LED_8, valeur < 8);
  digitalWrite(PIN_LED_9, valeur < 9);
  digitalWrite(PIN_LED_10, valeur < 10);
}