Code d'exemple d'affichage binaire pour un bargraphe à LEDs

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

Description :

Code d'exemple d'affichage binaire pour un bargraphe à LEDs.

Code source :

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

/**
 * Code d'exemple d'affichage binaire 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 int valeur = 0;
  
  // Affiche la valeur
  afficheBargraphe(valeur);

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

/* Affiche la valeur en binaire */
void afficheBargraphe(int valeur) {
  digitalWrite(PIN_LED_1, bitRead(valeur, 0));
  digitalWrite(PIN_LED_2, bitRead(valeur, 1));
  digitalWrite(PIN_LED_3, bitRead(valeur, 2));
  digitalWrite(PIN_LED_4, bitRead(valeur, 3));
  digitalWrite(PIN_LED_5, bitRead(valeur, 4));
  digitalWrite(PIN_LED_6, bitRead(valeur, 5));
  digitalWrite(PIN_LED_7, bitRead(valeur, 6));
  digitalWrite(PIN_LED_8, bitRead(valeur, 7));
  digitalWrite(PIN_LED_9, bitRead(valeur, 8));
  digitalWrite(PIN_LED_10, bitRead(valeur, 9));
}