// Scanner Knight Rider à LED
// Constantes:
#define LED1 5 // défini GPIO5
#define LED2 18 // défini GPIO18
#define LED3 19 // défini GPIO19
#define LED4 21 // défini GPIO21
#define LED5 22 // défini GPIO22
#define LED6 23 // défini GPIO23
#define L 6 // Nombre de lignes du tableau
#define C 6 // Nombre de colonnes du tableau
// Tableau des sorties dans l'ordre
int LEDS[] = {LED1, LED2, LED3, LED4, LED5, LED6};
// Tableau des différents états succeccifs des leds
boolean aff[L][C] = {
{HIGH,LOW,LOW,LOW,LOW,LOW},
{LOW,HIGH,LOW,LOW,LOW,LOW},
{LOW,LOW,HIGH,LOW,LOW,LOW},
{LOW,LOW,LOW,HIGH,LOW,LOW},
{LOW,LOW,LOW,LOW,HIGH,LOW},
{LOW,LOW,LOW,LOW,LOW,HIGH},
};
void setup() {
// put your setup code here, to run once:
// Initialisation des GPIOs en sortie
for (int i = 0; i < 6; i++)
{
pinMode(LEDS[i], OUTPUT);
}
Serial.begin(115200);
Serial.println("Scanner Knight Rider à LED");
}
void loop()
{
// put your main code here, to run repeatedly:
for (int li = 0; li < L; li++) // Index de la ligne depuis la première à la dernière
{
for (int co = 0; co < C; co++) // Index de la colonne dans la ligne
{
digitalWrite(LEDS[co], aff[li][co]);
}
delay(200); // Delai entre affichages
}
for (int li = L-1; li >= 0; li--) // Index de la ligne depuis la dernière à la première
{
for (int co = 0; co < C; co++) // Index de la colonne dans la ligne
{
digitalWrite(LEDS[co], aff[li][co]);
}
delay(200); // Delai entre affichages
}
}