Étape 4: Écrire votre esquisse de test
Vous devez maintenant écrire un sketch sur l’Arduino pour tester vos boutons. Vous souhaitez obtenir le code pour écrire la sortie de débogage sur le port série pour vous montrer que chaque bouton fonctionne comme prévu. En substance, pour chaque broche d’entrée vous devez simplement définir la goupille pour accepter des entrées et regarder le code pin pour voir quand il passe de haut (+ 5v/Vcc) à faible (0v/Gnd). Faire ceci 12 fois et vous êtes dorée, droite ? Malheureusement la vie n’est pas aussi simple que cela.
Tout d’abord vous devez vous assurer que quand le bouton n’est pas pressé, la broche obtient un 5v continu et quand il est pressé il obtient 0v. Ceci nécessite l’utilisation d’une résistance pull-up. Si vous débutez en électronique cela peut sembler un peu étrange, mais c’est logique quand on y songe. En savoir plus sur les résistances de pull-up ici : https://learn.sparkfun.com/tutorials/pull-up-resistors. Heureusement, le Micro de l’Arduino a la possibilité d’activer les résistances de pull-up interne si vous n’avez pas de le faire vous-même. Pour chaque broche d’entrée, ensemble la broche comme suit dans la fonction void setup() :
pinMode(2, INPUT_PULLUP); // The number represents the pin number
Donc dans mon cas j’ai boucle dans un tableau de pins comme suit :
const int switchCount = 12; void setup() { for (int i=0; i <= (switchCount -1); i++) { // Make the pushButton pin an input pinMode(i, INPUT_PULLUP); } }
Maintenant vous devez lire l’état des boutons. En théorie, c’est un simple. Pour lire l’état de la broche 2 vous il suffit d’utiliser la fonction digitalRead() :
switch2State = digitalRead(2);
Toutefois, lorsqu’une touche est pressée vous obtenez généralement un peu de bruit pendant quelques millisecondes et cela peut apparaître comme si le bouton est enfoncé rapidement. Cela peut rendre la vie difficile dire le moins. Ce que vous devez faire est de « debounce » le bouton. Essentiellement, vous lire l’état du bouton, si l’État a changé alors que vous attendez un peu avant de lire à nouveau. Ce devrait vous donner l’état réel de la touche sans qu’il s’agiter follement. Voir http://arduino.cc/en/Tutorial/Debounce pour plus d’informations.
Cela devient un peu poilu pendant plus de quelques boutons alors j’ai fait usage de la Bounce2 bibliothèque pour simplifier les choses. Voir http://playground.arduino.cc/Code/Bounce pour plus de détails. Tout ce que vous devez faire est de télécharger le fichier Bounce2-master.zip depuis le lien précédent et déposez-le dans le dossier Arduino bibliothèques avant le démarrage de l’EDI. Puis ajoutez cette ligne en haut de la page de votre dessin :
#include <Bounce2.h> // http://playground.arduino.cc/Code/Bounce
Vous pouvez ensuite attacher un objet de videur à chaque broche de debounce elle et d’obtenir une lecture propre lorsque le bouton est enfoncé ou relâché.
// create a bouncer objectBounce tempBouncer = Bounce(); tempBouncer.attach(2); // Attach pin 2 to the Bouncer object tempBouncer.interval(10); // Set the DeBounce timeout in milliseconds
Maintenant vous pouvez lire proprement chaque bouton, vous avez juste besoin de garder une note de son état, chaque fois que vous lisez la broche et faire quelque chose si l’État est modifié. Le croquis ci-joint vous permettra de lire les 12 boutons et va afficher une ligne de débogage chaque fois qu’un bouton est enfoncé ou relâché. Il suffit de télécharger le croquis au Conseil d’administration, et une fois que vous voyez la presse lumineuse LED CMD + MAJ + M (Mac) ou CTRL + MAJ + M (Win) pour ouvrir le moniteur de la série. Il y a beaucoup de commentaires en ligne pour vous faire savoir ce qui se passe.