Activité pratique 1 : 1 LED + 1 BP⚓
Introduction
Matériel
Breadboard: Cette carte d'expérimentation permet de relier les composants entre eux grâce à des trous qui sont interconnectés ou pas. Les trous connectés correspondent aux lignes noires (cuivre) de la représentation ci dessus à droite.

Un bouton poussoir :

Une carte Arduino UNO permetra de contrôler l'état de la LED en fonction de l'état du bouton poussoir.

LED Rouge

Deux résistances : 10kΩ et 560Ω
TP1 : Les rebonds⚓
1 LED + 1 BP
A quelles broches sont connectées la LED et le Bouton Poussoir. Entrées ou sorties ?(remplir le tableau suivant).
Composants | Numéro de broches Arduino | Entrée ou sortie ? |
LED | ||
BP |
Flécher sur le schéma la tension VIO2 et VIO3 correspondant aux tensions aux bornes des broche IO2 et IO3 de la carte Arduino.
Lorsque le BP est activé, que vaut VIO2 ?
Lorsque le BP est inactif, que vaut VIO2 ?
Quel est l'état de la LED lorsque VIO3 = 5V et quel est la valeur de l'intensité du courant dans la LED ?
Proposer un câblage ci-dessous :

Programme 1 : compter le nombre d'appuis⚓
Dans un premier temps et pour comprendre le phénomène de rebonds, nous allons essayer de programmer un premier programme qui initialise un variable entière à 0 et ajoute 1 (incrémentation) lorsque le bouton poussoir est appuyé.
Lors de l'exécution du programme il est possible d'envoyer et de recevoir des informations au PC grâce à la liaison série.
Dans le programme, un objet nommé Serial doit être initialisé Serial.begin(9600) à une vitesse comprise entre 9600 et 115200 bauds (Nombre de symboles transmis par secondes). Puis une méthode println("Bonjour") permet d'envoyer les informations.
Tester le programme suivant :
On souhaite créer un programme permettant d'afficher le nombre de fois que l'on a appuyé sur le bouton poussoir.
Réaliser l'organigramme (voir cours) du programme Arduino correspondant (SETUP et LOOP) :
Dans l'environnement Arduino, à partir de l'exemple, écrire un programme correspondant à l'organigramme ci-dessus et le tester.
Que constate-t-on ?
Boucle while⚓
La solution proposée ici consiste dans la fonction loop à :
- Tester si il y un appui
- S'il y a un appui on incrémente compteur et on attend le relâchement du BP.
Attendre le relâchement du BP peut se faire en utilisant une boucle TANT QUE dans laquelle on lit l'état du BP. On reste dans cette boucle tant que le BP est activé.
La boucle while permet d'exécuter des instructions jusqu'à ce qu'une certaine expression (à l'intérieur de la parenthèse) devienne fausse. Autrement dit, tant que le test est vérifié, on répète les instructions entre accolade :
Réaliser quelques tests simples permettant que comprendre cette boucle :
Afficher au terminal série une variable que l'on incrémente tant qu'elle est inférieure à 100.
Réaliser l'organigramme du nouveau programme Arduino avec boucle de gestion du relâchement du bouton :
Programmer et tester cette solution sur votre carte.
Que constate-t-on ?
Délais anti-rebonds⚓
Pour se prémunir des rebonds une solution consiste à insérer un délais après chaque lecture du bouton poussoir :

Réaliser l'organigramme du nouveau programme Arduino avec les délais anti-rebonds adéquats :
Programmer et tester cette solution sur votre carte.