MTclock: Exemple 1
Gestion par événements pour UNO, Nano, Mega
5 lettres avec
5 métronomes
Ce programme va envoyer régulièrement toutes les secondes une lettre sur la console. Il y a 5 letrres à envoyer de A à E.
Principe: Un monostable A attend 1s puis envoie la lettre A et déclenche le deuxième monostable B. Ce dernier attend 1s, envoie
la lettre B et ainsi de suite. Il y a 5 lettres à envoyer, on va utiliser 5 monostables. C'est plus à but pédagogique pour montrer
que si MTobject possède une horloge simple et une double, on peut facilement faire des triples, quadruples, quintuples comme ici... Si
on devait faire le meilleur programme répondant à cet énoncé, j'utiliserai un métronome
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 envoie 5 lettres en boucle sur la voie série #include <MTobjects.h> // V1.0.4 Voir http://arduino.dansetrad.fr/MTobjects void envoiE(void); // Prédéfinition car elle contient référence à monostableA MTclock MonostableE(1000 milli_secondes, envoiE, 1 action_et_arret, MT_OFF); void envoiD(void) { Serial.print('D'); MonostableE.start(); } MTclock MonostableD(1000 milli_secondes, envoiD, 1 action_et_arret, MT_OFF); void envoiC(void) { Serial.print('C'); MonostableD.start(); } MTclock MonostableC(1000 milli_secondes, envoiC, 1 action_et_arret, MT_OFF); void envoiB(void) { Serial.print('B'); MonostableC.start(); } MTclock MonostableB(1000 milli_secondes, envoiB, 1 action_et_arret, MT_OFF); void envoiA(void) { Serial.print('A'); MonostableB.start(); } MTclock MonostableA(1000 milli_secondes, envoiA, 1 action_et_arret, MT_ON); void envoiE(void) { Serial.println('E'); MonostableA.start(); } void setup() { Serial.begin(115200); } void loop(){}