Exercice : Chenillard : test de rebouclage
Simulateur

Cet exercice est à réaliser avec le simulateur en ligne Wokwi
Schéma
Nous utiliserons le schéma suivant :
Les 8 diodes électroluminescentes (LED) sont connectées aux bits de ports allant de 0 à 7
Question
Modifiez la version précédente du chenillard (allumage successif de chaque LED pendant une seconde) à l'aide d'un structure « if » pour que le défilement ne s'arrête jamais : lorsque la dernière LED est atteinte, on recommence à la première.
Question
Modifiez la version précédente pour que le défilement change de sens en fin de cycle comme dans la vidéo ci-dessous :
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.
Chenillard avec cycle de fonctionnement (réalisé sous le simulateur Tinkercad)
Solution
Solution 1
1
2
3
4
int i ;
5
void setup(){
6
i = NB_LEDS - 1;
7
DDRD = B11111111;
8
PORTD = INITIALE;
9
}
10
11
void loop(){
12
if(i>=0){
13
delay(1000); // Wait for 1000 millisecond(s)
14
PORTD = PORTD << 1;
15
}
16
else{
17
i=NB_LEDS;
18
PORTD = INITIALE;
19
}
20
i--;
21
}
Solution 2
1
2
3
4
int i ;
5
void setup(){
6
DDRD = B11111111;
7
PORTD = INITIALE;
8
}
9
10
void loop(){
11
for(i=0; i<NB_LEDS;i++) {
12
delay(1000); // Wait for 1000 millisecond(s)
13
PORTD = PORTD << 1;
14
}
15
PORTD = INITIALE;
16
}
Solution 3
1
2
void setup(){
3
DDRD = B11111111;
4
PORTD = INITIALE;
5
}
6
void loop(){
7
delay(1000); // Wait for 1000 millisecond(s)
8
PORTD = PORTD << 1;
9
if(PORTD == 0){PORTD = INITIALE;}
10
}