Exercice : Chenillard

Simulateur

Cet exercice est à réaliser avec le simulateur en ligne Wokwi

Schéma

Nous utiliserons le schéma suivant :

Schéma pour réalisation d'un chenillardInformations[1]

Les 8 diodes électroluminescentes (LED) sont connectées aux bits de ports allant de 0 à 7

Question

Il est demandé de réaliser le schéma ci-dessus sur la plate-forme Wokwi ou d'importer le fichier ci-dessous dans le simulateur.

Fonctionnement du port

Il y a plusieurs moyens d’accéder à un port sur Arduino : soit par bit à l'aide d'instructions comme digitalRead() ou digitalWrite() soit par octet en utilisant des variables prédéfinies. Dans ce dernier cas, et pour le port correspondant aux broches 0 à 7, il faut :

  • tout d'abord fixer la direction du port avec la variable DDRD,

  • utiliser la variable PORTD pour écrire ou lire (pour les bits de port placés en sortie),

  • ou la variable PIND pour lire uniquement (pour le bits de port placés en entrée).

Question

Quelle est, d'après la documentation, la valeur à écrire dans DDRD pour mettre le port (broches 0 à 7) entièrement en sortie ?

Accès aux ports par octetInformations[2]

Question

Écrivez un programme permettant de faire clignoter toutes les LEDs en même temps

Remarque : il est interdit d'utiliser ici l'instruction digitalWrite(), il faudra obligatoirement passer par les variables prédéfinies de gestion du port.

Solution

1
#define ALLUME B11111111;
2
void setup(){
3
  DDRD = B11111111;
4
}
5
6
void loop(){
7
  PORTD = ALLUME;
8
  delay(1000); 
9
  PORTD = ~PORTD;
10
  delay(1000);
11
}

Question

En utilisant la fonction de décalage gauche, réalisez un programme allumant successivement chaque LED pendant une seconde.

Solution

1
2
3
void setup(){
4
  DDRD = B11111111;
5
  PORTD = B00000001;
6
}
7
8
void loop(){
9
  delay(1000); // Wait for 1000 millisecond(s)
10
  PORTD = PORTD << 1;
11
}
12