// Variable globale incrémentée par le programme
// Changer le type de signé à non signé pour voir
// l'effet sur l'impression à la console.
unsigned char c = 0;
void setup() {
// Initialiser le port de communication série à 9600 bauds
Serial.begin(9600);
// Configurer les ports utilisés pour afficher la valeur en sorties.
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
}
void loop() {
// Ralentir la boucle afin de voir les inscriptions à la console.
delay (100);
// Incrémenter la variable de 1
c = c +1;
// Imprimer la valeur numérique de la variable à la console.
Serial.print("c == ");
Serial.println(int(c));
// Afficher la valeur sur les DELs
afficher_del(int(c));
}
/*
Cette fonction affiche la valeur reçue en paramètre sur les 8 DELs.
Seules les valeurs entières sont affichées.
*/
void afficher_del(int a_afficher) {
// Si la valeur à afficher est plus grande que 128
if (a_afficher >= 128) {
// Soustraire 128 de la valeur à afficher
a_afficher = a_afficher - 128;
// Allumer la DEL 9 de poids 128
digitalWrite(9, HIGH);
// Sinon
} else {
// Éteindre la DEL 9 de poids 128
digitalWrite(9, LOW);
}
if (a_afficher >= 64) {
a_afficher = a_afficher - 64;
digitalWrite(8, HIGH);
} else {
digitalWrite(8, LOW);
}
if (a_afficher >= 32) {
a_afficher = a_afficher - 32;
digitalWrite(7, HIGH);
} else {
digitalWrite(7, LOW);
}
if (a_afficher >= 16) {
a_afficher = a_afficher - 16;
digitalWrite(6, HIGH);
} else {
digitalWrite(6, LOW);
}
if (a_afficher >= 8) {
a_afficher = a_afficher - 8;
digitalWrite(5, HIGH);
} else {
digitalWrite(5, LOW);
}
if (a_afficher >= 4) {
a_afficher = a_afficher - 4;
digitalWrite(4, HIGH);
} else {
digitalWrite(4, LOW);
}
if (a_afficher >= 2) {
a_afficher = a_afficher - 2;
digitalWrite(3, HIGH);
} else {
digitalWrite(3, LOW);
}
if (a_afficher >= 1) {
a_afficher = a_afficher - 1;
digitalWrite(2, HIGH);
} else {
digitalWrite(2, LOW);
}
}