====== Jalon 2: Allumer/Eteindre la diode interne à partir de ''Button'' ====== [[in202:seance_6|Retour à la séance 6]] Désormais, nous devons tester le montage. En conséquence, il est nécessaire de connecter le ''bouton poussoir'' à la carte. Le boutton poussoir se présente comme un composant avec 4 pattes. Cependant, le fonctionnement d'un tel boutton n'est pas tout à fait celui d'un pur boutton analogique, c'est d'ailleurs pour cela qu'il a 4 pattes. Les deux schéma suivants expliquent ce qui se passe quand le bouton est relâché ou quand le bouton est pressé. {{:in202:seance_6:4PinsPressButtonUnpressedSchematic.png?600|Fonctionnement par défaut}} {{:in202:seance_6:4PinsPressButtonPressedSchematic.png?600|Fonctionnement quand le bouton est appuyé}} ===== Question 1 ====== Positionner correctement le bouton sur la //breadboard//. Pour mémoire, vous avez le schéma de connexion de la //breadboard// qui est rappelé par le schéma suivant : {{:in202:seance_6:breadsmall.png?600|}} **Il faudra faire attention à ce que deux pins ne soient pas sur la même ligne de connexion de la breadboard.** ===== Question 2 ===== ==== Question 2.1 ==== Une fois que vous avez positionné le bouton sur la //breadboard//, il faut désormais connecté chacune des pins sur la carte ** ARDUINO **. Identifier les ports dont vous avez besoin pour : * Obtenir une tension (attention jamais plus de 3,3 V sinon vous risquez d'endommager la carte). * Mesurer le signal. **Indication :** Sur la carte ARDUINO, il existe un port sortant du 3,3 V. De plus il existe une banque de port pouvant générer ou lire des signaux numériques (soit 0 ou 3,3 V) dans la banque PWM. Connecter le bouton sur ces ports. ==== Question 2.2 ==== En fait, nous allons faire un peu plus compliqué, nous allons mettre la diode verte en série avec l'interupteur selon le schéma suivant : + --- Interrupteur ---- + ----- diode verte ------- + | | | | | | | | | 3,3 V (mesure GND port x sur ARDUINO) Quand vous appuez sur l'interrupteur, la diode verte doit s'allumer. L'intérêt, c'est que quand vous coupez l'interrupteur, la charge mesurée diminue immédiatement puisque la diode a une certaine résistance. Sinon, elle mettrait plus de temps pour disparaitre et créerait des variations de mesure. Autre montage possible : + --- diode blanche ---- + ----- interrupteur ------- + | | | | | | | | | 3,3 V (mesure GND port x sur ARDUINO) Attention, dans ce cas, l'interuppteur est ''on'' quand la mesure sur le port est ''LOW''. ===== Question 3 ====== Nous allons tester si cela fonctionne correctement. Pour ce faire, nous allons faire un petit programme qui va tester régulièrement l'état du bouton. Le programme sera quelque chose du type : Button myButton(portNumber, "bouton"); // portNumber correspond au port // que vous avez sélectionné pour connecter // votre bouton pressoir. void setup() { Serial.begin(9600); } void loop() { if(myButton.isPressed()) // J'ai appelé la fonction qui retourne l'état ''isPressed''. Serial.print("Button is pressed\n"); delay(500); } - Adapter le code pour votre classe ''Button'' et les ports que vous avez sélectionnés en interne. - Tester le bon fonctionnement de votre circuit en vérifiant que les messages sont bien affichés dans la console. ===== Question n°4 ====== Désormais, nous souhaitons que chaque fois que nous appuyons sur le bouton, la diode interne s'allume si elle était éteinte ou au contraire, elle s'éteint si jammais elle était allumée. Modifier le programmer précédent pour : - créer un objet associé à la diode interne. - chaque fois que le bouton est pressé, allumer ou éteindre la diode interne. Tester le bon fonctionnement de l'ensemble. ====== Navigation ====== Précédent: ** Jalon 1: **[[.:jalon_1|La classe ''Button'']] Suivant: ** Jalon 3: **[[.:jalon_3|Détermination des limites de l'approche synchone.]]