Bonjour à tous,
Je me suis lancé dans un projet de montage leds représentant notre logo associatif (Chorale Cantabile) et après de longues recherches sur Internet la carte Arduino Nano s'imposa à moi afin des gérer diverses variantes de fonctionnement. Malgré les différents tutos visionnés, étant novice, je bloque encore sur la fusion de deux programmes. Ceux-ci,chenillard et enseigne, comportent la fonction "Delay" qui je sais me bloquent le programme. Pour les fusionner j'ai bien pris en compte un "void setup1", "void setup2", ainsi que "void loop1" et "void loop2" avec la fonction "millis"mais les messages d'erreurs que je ne comprends pas encore m'empéchent de continuer. Je ne vais pas pour autant abandonner ma formation d'Arduino, mais à cet instant serait'il possible que quelqu'un me vienne en aide. Merci d'avance.P.S. Après les soudures terminées je posterais la photo du projet.
Voiçi donc les deux codes:
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 //Fonction chenillard pour le projet Cantabile //Représentant les notes // Initialisation des lignes 4 à 7 en sortie void setup () { pinMode (4, OUTPUT) ; pinMode (5, OUTPUT) ; pinMode (6, OUTPUT) ; pinMode (7, OUTPUT) ; } // Fonction loop void loop () { // Extinction de toutes les DEL au départ du programme for (byte i = 4 ; i <= 7 ; i++) { digitalWrite (i, LOW) ; // éteint la DEL reliée à la broche i } // Boucle pour faire flasher les DEL for (byte i = 4 ; i <= 7 ; i++) { digitalWrite (i, HIGH) ; // allume la DEL sur broche i delay (500) ; // durée du flash 500 millisecondes digitalWrite (i, LOW) ; // éteint la DEL } // délai de 500 millisecondes delay (500) ; // Recommence la séquence }
Le deuxième:
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
46
47 //fonction enseigne pour le projet Cantabile //représentant le nom //Initialisation des lignes 9 et 10, PWM, en sorties int pin1 = 9; //PWM pin int pin2 = 10; //PWM pin void setup() { pinMode(pin1, OUTPUT); pinMode(pin2, OUTPUT); } byte number = 0; bool goingUp = true; //This sets the direction void loop() { if(goingUp) //this will be true the first time we run and true until we set it false { analogWrite(pin1, number); analogWrite(pin2, 230 - number); //write the opposite number++; //increase number if(number == 230) { goingUp = false; //switch direction, we reached the top } } else //we are going down here { analogWrite(pin1, number); analogWrite(pin2, 230 - number); number = number - 5; //decrease number by a factor of 5 //normally -1 means 1 second for 255 loops() //but we want 0.2 seconds, so that's a 1/5th of a second //so go 5 times faster than on the fadeUp if(number <= 5) { goingUp = true; //switch direction again, going up number = 5; //just in case it went in the negative, reset to 0 } } delayMicroseconds(8000); //IMPORTANT. for 3.9 milliseconds, we do nothing //This means roughly, every 255 cycles that equals 1 second }
Partager