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 :
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.
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); }
Partager