Exercice : Mesures avec affichage type « bargraphe »
Simulateur

Ce projet est à réaliser avec le simulateur en ligne Wokwi. Les instructions pour le rendu du projet sont indiquées en fin de document.
Présentation
On souhaite afficher, sur un système de type « bargraphe » à LED, le résultat de mesures issues d'un capteur. Le nombre de LED utilisées, 5 ou 10, du bargraphe sera un paramètre du programme et permettra l'initialisation d'une classe Bargraph
.
Le schéma ressemble à celui-ci :
Fonctionnement général
2 classes sont à prévoir :
Sensor
, pour la gestion du capteur,Bargraph,
pour la gestion du bargraphe
Il est cependant conseillé de mettre en place une troisième classe Led
, pour le pilotage des LEDs du bargraphe.
La classe Sensor
gère la lecture du capteur. Elle comportera, au minimum, une fonction membre getValue()
qui renvoie la valeur générée par le capteur. Son constructeur permettra, notamment, l'initialisation de la connexion au(x) port(s) (à voir selon le schéma fourni sur la plate-forme pédagogique[2]).
La classe Bargraph
gère l'affichage qui doit s'adapter au nombre de LED (et qui est fourni en argument au constructeur de la classe). Lorsque ce nombre est égal à 5, une LED sur deux sera utilisée :
La classe Bargraph
comportera la fonction membre setDisplay()
qui permet de mettre à jour l'affichage à partir d'une valeur numérique fournie en argument. Le constructeur permettra notamment l'initialisation de la connexion au port (seul le numéro de port correspondant à la LED la plus à droite sera fourni) ainsi que le nombre de LED utilisées pour l'affichage (constante MAX_LED
qui ne peut avoir que 5 ou 10 comme valeur)
Démonstration
Voici comment fonctionne l'affichage pour chacun des modes, 5 ou 10 LEDs, les valeurs les plus élevées étant vers la droite, les plus faibles vers la gauche :
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.
Transcription textuelle
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.
Transcription textuelle
Programme principal
Pour des raisons d'équité dans la correction, la structure du programme principal est imposée :
/*
- Les valeurs numériques seront à adapter en fonction du schéma fourni ou pour changer le nombre de LED utilisées (5 ou 10).
- Il est possible également d'ajouter (ou modifier) des constantes si nécessaire
*/
//Adresse de la première LED du bargraphe, à ajuster en fonction du schéma
// à ajuster en fonction du schéma fourni
//à ajuster en fonction du nombre de mesures par seconde souhaité
// Deux valeurs possibles : 5 ou 10. Le projet doit fonctionner pour chacune des 2 valeurs (après relance du programme).
/*
**************************************************************
* La structure générale suivante ne doit pas être modifiée *
* Il est cependant possible d'augmenter le nombre d'arguments*
* du constructeur de la classe Sensor en fonction du type de *
* capteur utilisé *
**************************************************************
*/
Sensor sensor(PORT_SENSOR); //Création d'un objet pour lire le capteur
Bargraph bargraph(PORT_LED,MAX_LED); //Création d'un objet bargraphe : on fournit le numéro de port de la première LED et le nombre de LEDs (5 ou 10)
void setup() {
}
void loop() {
bargraph.setDisplay(sensor.getValue()); //Lecture du capteur et affichage sur le bargraphe
delay(TEMPO_MESURES);//Pour éviter d'avoir trop de mesures.
}
Eléments fournis
Le schéma, disponible sur la plate-forme pédagogique, est fourni sous forme d'un fichier JSON à copier/coller dans l'onglet
diagram.json
, en replacement du schéma existant. Attention, le schéma fourni est différent pour chaque étudiant/étudiante et ne doit pas être modifié.le programme principal est à respecter mais il sera nécessaire d'ajuster la définition des constantes en fonction du schéma fourni ainsi que les arguments d'appel de fonctions membres ou de constructeurs. Il est également possible d'ajouter de nouvelles constantes.
Recommandation
Il est fortement recommandé de consulter la documentation liée aux composants utilisés :
Wokwi fournit de nombreux exemples d'utilisation des différents composants (bargraphe et capteurs notamment)
Concernant la notation du projet, la grille d'évaluation qui sera utilisée pour l'évaluation de votre travail est consultable en cliquant sur « Dépôt du projet » (sur la plate-forme pédagogique, rubrique « Projet »).
Question
Proposez une solution en appliquant obligatoirement les principes de la Programmation Orientée Objet. Le programme doit fonctionner pour les 2 situations (réglées par la constante MAX_LED
) : 5 ou 10 LEDs.
Question
Il n'y aura pas de compte-rendu pour ce projet : les commentaires intégrés au projet devront donc être les plus explicites possible.