Exercice : Interrupteur virtuel
Principe d'un interrupteur virtuel
Les kits Arduino ne comportent pas d'interrupteur à deux positions stables : nous ne disposons que d'un bouton poussoir à une seule position stable. On se propose donc de créer une fonction qui va simuler le fonctionnement d'un interrupteur à partir d'un bouton poussoir. Le principe de fonctionnement en est le suivant :
il faut tout d'abord décider si on souhaite un basculement de l'interrupteur virtuel sur un front montant ou un front descendant. Nous utiliserons ici le front montant comme dans le chronogramme ci-dessous :
une fois le type de front choisi, il faut le détecter : un front montant détecté lorsque l'état actuel du bouton poussoir est 1 alors que son état passé est 0. C'est dans ce cas qu'on bascule l'état de l'interrupteur virtuel.
Question
Il est demandé de créer la bibliothèque de fonctions permettant la gestion d'un interrupteur virtuel et qui pourra s'appuyer sur la bibliothèque de gestion du bouton poussoir développée précédemment. Le programme de test est imposé :
void setup() {
Serial.begin(9600);//Initialise le port série (pour l'affichage dans la fenêtre Moniteur)
if(!ivInitialise(PORT_BP)){
Serial.println("Erreur de numéro de port !");
while(1);//Boucle infinie si erreur d'initialisation du port
}
}
/*Boucle principale */
void loop() {
Serial.print("Etat bouton : ");
if(getIvEtat()){
Serial.println("enfoncé");
}
else{
Serial.println("relaché");
}
}
Question
En complément des fonctions réalisées, il est demandé d'ajouter une fonction de forçage à 0 ou à 1, void setIvEtat(bool)
, de l'interrupteur virtuel. Le programme de test sera modifié en conséquence.
Solution
Attention : Solution sur simulateur : mise en garde
Attention : il s'agit d'une solution proposée sur le simulateur Wokwi. L'implantation sur un kit peut nécessiter des ajustements dans le sens où les composants réels ne sont pas obligatoirement les mêmes que ceux de la simulation.
Travail à rendre
Vous exporterez le croquis (Outils
→ Archiver le croquis
) puis le déposerez sur la plate-forme pédagogique selon les instructions qui vous seront indiquées.


Tout programme non commenté ne sera pas corrigé.