Skip to content

Commit

Permalink
Ajout exercices module 06
Browse files Browse the repository at this point in the history
  • Loading branch information
PiFou86 committed Dec 7, 2020
1 parent adaf496 commit 22ba295
Show file tree
Hide file tree
Showing 2 changed files with 131 additions and 2 deletions.
18 changes: 16 additions & 2 deletions Module04_ProgrammationC/Module04_ProgrammationC.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,16 @@ Effectuez le montage en vous inspirant du schéma suivant :

### Étape 2 : Programmation

Le but du programme est de lire un message provenant de la console et qui l'enregistre en mémoire. Un maximum de 5 messages doivent être conservés et affichés.
Le but du programme est de lire un message provenant de la console et qui l'enregistre en mémoire. Un maximum de 5 messages doivent être conservés et affichés : **si l'utilisateur envoie un 6 ième message, il est simplement ignoré**.
(Version optionnelle - levez cette contrainte et retenez simplement les 5 derniers messages. Pour cela inspirez-vous du [buffer circulaire](https://fr.wikipedia.org/wiki/Buffer_circulaire))

Durant la boucle, si aucun texte est disponible à la console, la DEL verte est allumée. Lorsqu'un message est arrivé, la DEL rouge s'allume durant 1 seconde. Le message s'inscrit dans un tableau de 5 occurrences. Si le message reçu est "Lire", tous les messages enregistrés sont affichés à l'écran de la console. Les messages sont effacés. Un temps d'attente de 3 secondes suivra chaque séquence de lecture.
Durant la boucle, si aucun texte est disponible à la console, la DEL verte est allumée. Lorsqu'un message est arrivé, la DEL rouge s'allume durant 1 seconde.

Si le message reçu est "Lire", tous les messages enregistrés sont affichés à l'écran de la console. Les messages sont effacés.

Sinon, le message s'inscrit dans un tableau de 5 occurrences.

Un temps d'attente de 3 secondes suivra chaque séquence de lecture.

*Version TinkerCad*

Expand Down Expand Up @@ -211,6 +218,13 @@ void loop()
// fin de Affichage8DELs.cpp
```

<details>
<summary>Indice</summary>

Inspirez vous de l'exemple du cours sur le codage d'une couleur RVB dans un entier. Ici, vous n'avez pas à traiter les informations par 8 bits, mais bit par bit. Le décalage et le masque seront donc relatifs à 1 bit au lieu des 8 du cours.

</details>

## Exercice 5 - Programmation optionnelle de la classe Affichage8DELs

À la place de prendre 8 DELs comme dans l'exercice précédent, vous devez fournir 7 constructeurs ayant de 1 à 8 paramètres qui représentent un numéro de borne. Si le programmeur utilise le constructeur à deux paramètres, il ne pourra allumer que deux DELs.
Expand Down
115 changes: 115 additions & 0 deletions Module06_RegistreDecalage/Module06_RegistreDecalage_Exercices.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
# Module 06 - Registre à décalage

Dans les exercices suivants, chaque led représente un bit d'un entier codé sur 8 bits.

## Exercice 1 - Préparation du premier montage

Reprenez le diagramme du cours et créez le sur Tinkercad.

### Matériel

- Une platine d'essais
- 8 DELs
- 8 résistances 500 Ohms
- 1 arduino
- 1 registre à décalage 75HC595N

### À coder

Effectuez les actions suivantes :

- Affichez la valeur 3 avec vos DELs et testez le
- Affichez la valeur 4 avec vos DELs et testez le
- Affichez la valeur 42 avec vos DELs et testez le
- Généralisez une fonction qui prend une valeur en paramètre, les bornes et qui l'affiche

<details>
<summary>Indice</summary>

Inspirez vous de l'exemple du cours du module 04 sur le codage d'une couleur RVB dans un entier. Ici, vous n'avez pas à traiter les informations par 8 bits, mais bit par bit. Le décalage et le masque seront donc relatifs à 1 bit au lieu des 8 du cours.

</details>

## Exercice 2 - Préparation du premier montage

Reprenez le diagramme du cours et créez le sur Tinkercad.

### Matériel

- Une platine d'essais
- 8 DELs
- 8 résistances 500 Ohms
- 1 arduino
- 1 registre à décalage 75HC595N

### À coder

Effectuez les actions suivantes :

- Codez la classe "RegistreDecalage" qui permet d'envoyer un byte au registre.
- Codez un sketch qui permet d'afficher un compteur de 0 à 255 et qui repart à 0 à la fin : chaque led correspond à l'affichage d'un bit

## Exercice 3 - Chenillard

Reprenez votre montage précédent et votre classe "RegistreDecalage".

### Matériel

- Une platine d'essais
- 8 DELs
- 8 résistances 500 Ohms
- 1 arduino
- 1 registre à décalage 75HC595N

### À coder

Faites une animation qui permet de simuler un point qui se déplace de la droite vers la gauche et inversement quand le point est arrivé à une extrémité.

## Exercice 4 - K2000

Reprenez votre montage précédent et votre classe "RegistreDecalage".

### Matériel

- Une platine d'essais
- 8 DELs
- 8 résistances 500 Ohms
- 1 arduino
- 1 registre à décalage 75HC595N

### À coder

Faites une animation qui permet de simuler trois points qui se déplacent de la droite vers la gauche et inversement quand le dernier point est arrivé à une extrémité.

<details>
<summary>Indice</summary>

Vous manipulez un byte pour l'affichage. Pourquoi ne pas manipuler un int (16 bits) et n'afficher que les 8 du centre ?

GGGG UUUU UUUU DDDD :

- GGGG : dépassement à gauche
- DDDD : dépassement à droite
- UUUU UUUU : bits utiles pour l'affichage

</details>

## Exercice 5 - Horloge binaire (Optionnel)

Reprenez votre montage précédent et votre classe "RegistreDecalage".

### Matériel

- Une platine d'essais
- 8 DELs
- 8 résistances 500 Ohms
- 1 arduino
- 1 registre à décalage 75HC595N

### À coder

La lecture de l'heure et des minutes s'effectuent par la console avec le format suivant "hh:mm" où hh est le nombre d'heure et mm le nombre de minutes.

Une fois définie, l'heure s'affiche sur les 8 DELs : on alterne l'affichage des heures et des minutes. Pour les différencier, on éteint les DELs une seconde, puis on affiche les heures une seconde, puis les minutes une seconde.

Quel délai devez-vous mettre pour avoir une vrai seconde ?

0 comments on commit 22ba295

Please sign in to comment.