MTbutton: Exemple 2
Le programme va envoyer la lettre A à chaque appui sur le bouton câblé sur A0.
Le bouton
Il faut comme dans tous les programmes qui utilisent MTobjets, inclure la bibliothèque utile. Ici on utilise comme seul objet un bouton poussoir (le nom de l'objet est MTbutton):
#include "MTbutton.h" // V1.0.0 Voir http://arduino.dansetrad.fr/MTobjects
Je conseille fortement de laisser le commentaire, si une autre personne voulait essayer le programme, elle aurait directement un lien de téléchargement. C'est valable pour toutes les bibliothèques que vous utilisez.
On va commencer par donner des noms symboliques aux broches utilisées. Ici, il y en a qu'une pour le bouton:
const uint8_t PIN_BUTTON = A0; // Bouton câblé entre GND et A0
Définissons notre bouton:
MTbutton Bouton(PIN_BUTTON, envoi);
Cela définit un bouton nommé "Bouton". Il est du type MTbutton car c'est un poussoir simple. On peut passer 4 paramètres:
- le nom de la broche
- le nom de la fonction qui va être appelée si on appuie sur le bouton
- le nom de la fonction qui va être appelée si on relâche le bouton
- comment est la broche du bouton si on n'appuie pas
Les fonctions appelées ne doivent pas avoir de paramètres et ne doivent rien retourner.
Dans notre cas, le bouton est branché seul entre A0 et GND, c'est le cas conseillé, le dernier paramètre est inutile (valeur par défaut). On ne va pas utiliser le relâchement, il n'est pas utile de spécifier ce paramètre.
Notez que dans la définition de "Bouton" on parle de "envoi" qui envoie la lettre A sur la console. "envoi" doit être défini auparavant. Il va donc falloir le définir avant cette ligne. Voici sa définition:
void envoi(void) { Serial.print('A'); }
Setup() et loop()
On a tout fait pour le bouton, mais il faut aussi s'occuper de la console. Dans le setup(), il faut mettre (si la console est réglée sur 115200bauds):
void setup() { Serial.begin(115200); }
Il n'y a rien à faire de plus, loop() ne nous sert à rien. Il va rester vide. Mais vous pouvez y mettre un autre programme, celui que nous avons fait est indépendant. Donc:
void loop(){}
J'ai tout mis sur la même ligne mais vous pouvez en prendre deux ou trois. Même si la fonction est vide et ne nous sert à rien apparemment, il faut la définir. En fait, elle va servir de boucle d'attente quand notre programme ne va pas s'intéresser au bouton.
Programme complet
Voici donc le programme complet:
// Ce programme envoie sur la liaison série la lettre 'A' #include "MTbutton.h" // V1.0.0 Voir http://arduino.dansetrad.fr/MTobjects const uint8_t PIN_BUTTON = A0; // Bouton câblé entre GND et A0 void envoi(void) { Serial.print('A'); } MTbutton Bouton(PIN_BUTTON, envoi); void setup() { Serial.begin(115200); } void loop(){}