Bonjour
j'ai un projet pour l'école dans laquelle je travaille.
J'aimerai faire un robot programmable pour lequel on enregistre dans sa mémoire un parcours à exécuter.

Avant de m'attaquer aux moteurs, j'essaye de faire la même chose avec des leds et je suis bloqué.
j'arrive bien à enregistrer mon programme de bouton dans un tableau mais je bloque sur comment allumer mes leds une fois que mon programme est fini.
J'ai 4 boutons et 4 leds + un bouton pour lancer le programme une fois fini.

Si quelqu'un a une idée ou un conseil, ce serait super sympa !

Voici mon script :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
int arr[10];
boolean previous = LOW;
unsigned long time1 = 0;
int debounce = 200;
unsigned long time2 = 0;
int index_state = 0;
 
int play_button = 13; //define pin # for play button
 
int button[4] = {2,4,6,8}; //store button pins in an array
int leds[4] = {3,5,7,9}; //store led pins in an array
 
void setup()
{
  for(int n=0;n<10;n++) arr[n] = 0;//initialisition
 Serial.begin(9600);
}
 
void loop(){
 boolean mode = digitalRead(2) || digitalRead(4) || digitalRead(6) || digitalRead (8);
 while(mode == LOW) mode = digitalRead(2) || digitalRead(4) || digitalRead(6) || digitalRead (8);//wait here till one of the pushbutton goes high;
 //Serial.println("value");
 if( mode == HIGH && previous == LOW && millis() - time1 > debounce) {
 //find out which one is high and store that value in array;
 if(digitalRead(2)) arr[index_state] = 2;
 else if(digitalRead(4)) arr[index_state] = 4;
 else if(digitalRead(6)) arr[index_state] = 6;
 else if(digitalRead(8)) arr[index_state] = 8;
 else ;
 
 //print the value and the index;
 Serial.print(arr[index_state]);
 Serial.print(" Stored in index: ");
 Serial.println(index_state);
 index_state = (index_state + 1) % 10;
 //update value of time1 for button debouncing
 time1 =  millis();
}
 
 
  //update the value of previous button state
  previous = digitalRead(2) || digitalRead(4) || digitalRead(6) || digitalRead(8);
 
 
  }
C'est un script que j'ai trouvé tout fait et que j'ai adapté à mes besoins, mais je n'arrive pas à répéter ma séquence de boutons avec mes leds.