MTradioButton: Exemple 1
Gestion par événements pour UNO, Nano, Mega
LW-MW-FM
Ce programme va simuler un choix MW-LW-FM. On choisit la gamme par des boutons câblés sur A0, A1, et A2. La console nous indique les changements
Ici, on a trois boutons, on va les déclarer simplement et on fera 3 déclarations complètes.
Programme complet recommandé
Ce programme se fait complètement sous interruption, et libère loop qui peut être utilisé pour faire autre chose.
// Ce programme va simuler un choix MW-LW-FM. On choisit la gamme par des // boutons câblés sur A0, A1, et A2. La console nous indique les changements #include <MTobjects.h> // V1.0.4 Voir http://arduino.dansetrad.fr/MTobjects const uint8_t PIN_BUTTON_MW = A0; // Bouton câblé entre GND et A0 const uint8_t PIN_BUTTON_LW = A1; // Bouton câblé entre GND et A1 const uint8_t PIN_BUTTON_FM = A2; // Bouton câblé entre GND et A2 //Définition du bouton MW void choixMW(void) { Serial.println("On vient de choisir MW"); // Appelée si on appuie sur MW } void choixMWfini(void) { Serial.println("On vient d'annuler MW"); // Appelée si on appuie sur LW ou FM } MTradioButton BoutonMW(PIN_BUTTON_MW, choixMW, choixMWfini, HIGH si_non_appuye, RADIO_BUTTON_0); //Définition du bouton LW void choixLW(void) { Serial.println("On vient de choisir LW"); } void choixLWfini(void) { Serial.println("On vient d'annuler LW"); } MTradioButton BoutonLW(PIN_BUTTON_LW, choixLW, choixLWfini, HIGH si_non_appuye, RADIO_BUTTON_1); //Définition du bouton FM void choixFM(void) { Serial.println("On vient de choisir FM"); } void choixFMfini(void) { Serial.println("On vient d'annuler FM"); } MTradioButton BoutonFM(PIN_BUTTON_FM, choixFM, choixFMfini, HIGH si_non_appuye, RADIO_BUTTON_2); void setup() { Serial.begin(115200); BoutonMW.select(); // Pour qu'il y ait au moins une gamme sélectionnée delay(16); // Ainsi on est sûr que le bouton est sélectionné (retard possible de la prise en compte 16ms) } String noms[3] = {"MW", "LW", "FM"}; void loop() { Serial.print("La gamme actuelle est "); Serial.println(noms[getMTradioButtonValeur()]); // Affiche le nom du bouton sélectionné delay(2000); // Pour avoir un affichage qui ne défile pas trop vite }