Bonjour vincentm0911
L'essentiel quand il y a de grandes répétitions est l'usage des tableaux.
Je t'ai modifié, à titre d'exemple, la gestion des LED, les pin des LED sont dans un tableau:
const int ledPin[] = {8, 9, 10, 11, 12, 13, A0, A1}; // Tableau des pin des LED
On calcule le nombre de LED ainsi
const int ledNombre = sizeof(ledPin) / sizeof(ledPin[0]); // Nombre de LED
(je te laisse chercher la signification comme celle de sizeof() )
L'initialisation des pin des LED ainsi que de leur extinction, au départ se font dans cette boucle:
for (int l = 0; l < ledNombre; l ++)
{
pinMode(ledPin[l], OUTPUT); // Les pin Leds sont en sorties sur le Arduino
digitalWrite(ledPin[l], LOW); // Eteindre la LED
}
Et ton code modifié:
const int btn_1 = 0; // Bouton 1 pour allumer la led 1 sur pin 0
const int btn_2 = 1; // Bouton 2 pour allumer la led 2 sur pin 1
const int btn_3 = 2; // Bouton 3 pour allumer la led 3 sur pin 2
const int btn_4 = 3; // Bouton 4 pour allumer la led 4 sur pin 3
const int btn_5 = 4; // Bouton 5 pour allumer la led 5 sur pin 4
const int btn_6 = 5; // Bouton 6 pour allumer la led 6 sur pin 5
const int btn_7 = 6; // Bouton 7 pour allumer la led 7 sur pin 6
const int btn_8 = 7; // Bouton 8 pour allumer la led 8 sur pin 7
//const int led_1 = 8; // Led 1 sur pin 8
//const int led_2 = 9; // Led 2 sur pin 9
//const int led_3 = 10; // Led 3 sur pin 10
//const int led_4 = 11; // Led 4 sur pin 11
//const int led_5 = 12; // Led 5 sur pin 12
//const int led_6 = 13; // Led 6 sur pin 13
//const int led_7 = A0; // Led 7 sur pin A0
//const int led_8 = A1; // Led 8 sur pin A1
const int ledPin[] = {8, 9, 10, 11, 12, 13, A0, A1}; // Tableau des pin des LED
const int ledNombre = sizeof(ledPin) / sizeof(ledPin[0]); // Nombre de LED
int timeDelay = 20; // Delay pour éviter les rebonds du bouton poussoir
void setup()
{
pinMode(btn_1, INPUT); // Les pin boutons sont en entrées sur le Arduino
pinMode(btn_2, INPUT);
pinMode(btn_3, INPUT);
pinMode(btn_4, INPUT);
pinMode(btn_5, INPUT);
pinMode(btn_6, INPUT);
pinMode(btn_7, INPUT);
pinMode(btn_8, INPUT);
for (int l = 0; l < ledNombre; l ++)
{
pinMode(ledPin[l], OUTPUT); // Les pin Leds sont en sorties sur le Arduino
digitalWrite(ledPin[l], LOW); // Eteindre la LED
}
//pinMode(led_1, OUTPUT); // Les pin Leds sont en sorties sur le Arduino
//pinMode(led_2, OUTPUT);
//pinMode(led_3, OUTPUT);
//pinMode(led_4, OUTPUT);
//pinMode(led_5, OUTPUT);
//pinMode(led_6, OUTPUT);
//pinMode(led_7, OUTPUT);
//pinMode(led_8, OUTPUT);
}
void loop()
{
if (digitalRead(btn_1) == HIGH)
{
digitalWrite(ledPin[0], HIGH);
digitalWrite(ledPin[1], LOW);
digitalWrite(ledPin[2], LOW);
digitalWrite(ledPin[3], LOW);
digitalWrite(ledPin[4], LOW);
digitalWrite(ledPin[5], LOW);
digitalWrite(ledPin[6], LOW);
digitalWrite(ledPin[7], LOW);
delay(timeDelay);
}
if (digitalRead(btn_2) == HIGH)
{
digitalWrite(ledPin[0], LOW);
digitalWrite(ledPin[1], HIGH);
digitalWrite(ledPin[2], LOW);
digitalWrite(ledPin[3], LOW);
digitalWrite(ledPin[4], LOW);
digitalWrite(ledPin[5], LOW);
digitalWrite(ledPin[6], LOW);
digitalWrite(ledPin[7], LOW);
delay(timeDelay);
}
if (digitalRead(btn_3) == HIGH)
{
digitalWrite(ledPin[0], LOW);
digitalWrite(ledPin[1], LOW);
digitalWrite(ledPin[2], HIGH);
digitalWrite(ledPin[3], LOW);
digitalWrite(ledPin[4], LOW);
digitalWrite(ledPin[5], LOW);
digitalWrite(ledPin[6], LOW);
digitalWrite(ledPin[7], LOW);
delay(timeDelay);
}
if (digitalRead(btn_4) == HIGH)
{
digitalWrite(ledPin[0], LOW);
digitalWrite(ledPin[1], LOW);
digitalWrite(ledPin[2], LOW);
digitalWrite(ledPin[3], HIGH);
digitalWrite(ledPin[4], LOW);
digitalWrite(ledPin[5], LOW);
digitalWrite(ledPin[6], LOW);
digitalWrite(ledPin[7], LOW);
delay(timeDelay);
}
if (digitalRead(btn_5) == HIGH)
{
digitalWrite(ledPin[0], LOW);
digitalWrite(ledPin[1], LOW);
digitalWrite(ledPin[2], LOW);
digitalWrite(ledPin[3], LOW);
digitalWrite(ledPin[4], HIGH);
digitalWrite(ledPin[5], LOW);
digitalWrite(ledPin[6], LOW);
digitalWrite(ledPin[7], LOW);
delay(timeDelay);
}
if (digitalRead(btn_6) == HIGH)
{
digitalWrite(ledPin[0], LOW);
digitalWrite(ledPin[1], LOW);
digitalWrite(ledPin[2], LOW);
digitalWrite(ledPin[3], LOW);
digitalWrite(ledPin[4], LOW);
digitalWrite(ledPin[5], HIGH);
digitalWrite(ledPin[6], LOW);
digitalWrite(ledPin[7], LOW);
delay(timeDelay);
}
if (digitalRead(btn_7) == HIGH)
{
digitalWrite(ledPin[0], LOW);
digitalWrite(ledPin[1], LOW);
digitalWrite(ledPin[2], LOW);
digitalWrite(ledPin[3], LOW);
digitalWrite(ledPin[4], LOW);
digitalWrite(ledPin[5], LOW);
digitalWrite(ledPin[6], HIGH);
digitalWrite(ledPin[7], LOW);
delay(timeDelay);
}
if (digitalRead(btn_8) == HIGH)
{
digitalWrite(ledPin[0], LOW);
digitalWrite(ledPin[1], LOW);
digitalWrite(ledPin[2], LOW);
digitalWrite(ledPin[3], LOW);
digitalWrite(ledPin[4], LOW);
digitalWrite(ledPin[5], LOW);
digitalWrite(ledPin[6], LOW);
digitalWrite(ledPin[7], HIGH);
delay(timeDelay);
}
//if (digitalRead(btn_8) == HIGH)
//{
//digitalWrite(led_1, LOW);
//digitalWrite(led_2, LOW);
//digitalWrite(led_3, LOW);
//digitalWrite(led_4, LOW);
//digitalWrite(led_5, LOW);
//digitalWrite(led_6, LOW);
//digitalWrite(led_7, LOW);
//digitalWrite(led_8, HIGH);
//delay(timeDelay);
//}
}
J'ai laissé tes lignes en remarques.
Essaies de faire la même chose avec les boutons, si problème, n'hésites pas à poser des questions, une fois fait, on pourra supprimer la résistance de PULLDOW
par la résistance de PULLUP, interne à l'Arduino. Petite remarque concernant l'attribution des pin des boutons, tu utilises 0 et 1, or ces pin sont utilisées par la communication du port USB, d'où, peut être la cause de ceci:
Tu as encore des ports de libre comme A2 et A3, tu peux les utiliser en digitalRead
, pour btn_1 et btn_2.
La prochaine étape, sera de créer une fonction qui allume la LED en fonction d'un bouton, ça simplifie l'écriture, surtout lorsque dans une action comme:
if (digitalRead(btn_1) == HIGH)
{
digitalWrite(ledPin[0], HIGH);
digitalWrite(ledPin[1], LOW);
digitalWrite(ledPin[2], LOW);
digitalWrite(ledPin[3], LOW);
digitalWrite(ledPin[4], LOW);
digitalWrite(ledPin[5], LOW);
digitalWrite(ledPin[6], LOW);
digitalWrite(ledPin[7], LOW);
delay(timeDelay);
}
qui se répète 8 fois avec seulement un paramètre qui change.
Dis moi quand tu est prêt pour ça
A+
Cordialement
jpbbricole