MThardPWM: Exemple 2
Gestion par événements pour UNO, Nano, Mega
Flashs avec une LED
Ce programme va faire clignoter LED_BUILTIN avec des flashs
On va utiliser le PWM hard pour faire une succession de flashs. Un double métronome va allumer et éteindre ces flashs. C'est le PWM qui fera donc les flashs et le double métronome qu donnera globalement le clignotement. Sur une Mega, LED_BUILTIN correspond à une broche acceptant ce PWM hard, il n'y a rien à faire de plus. Sur une Uno/Nano, la broche LED_BUILTIN ne l'acceptant pas, on peut utiliser la sortie 9 pour faire le PWM et mettre un fil de pontage entre la broche 9 et la broche 13. Si on ne dit rien, la broche 13 sera en entrée ce qui est parfait.

ou:

ou:

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 fait clignoter une led avec des flashs. Il faut un pontage // (fil) entre la broche 9 et 13 pour une Uno/Nano #include <MTobjects.h> // V1.0.4 Voir http://arduino.dansetrad.fr/MTobjects // Mise en place des flashs // Sur Uno/Nano les broches utilisables sont: 9, 10 et le pontage 9-13 MThardPWM CinqFlash(9, impulsions_de 50000 micro_secondes, periodes_de 100000 micro_secondes); // Sur Mega: 2, 3, 5, 6, 7, 8, 11, 12, 13, 44, 45, 46 //MThardPWM CinqFlash(13, impulsions_de 50000 micro_secondes, periodes_de 100000 micro_secondes); // Clignotement global void marche(void) // Démarrer les flashs { CinqFlash.attach(); } void arret(void) // Arrêter les flashs { CinqFlash.detach(); pinMode(9, OUTPUT); // Après unn detach, la broche est en INPUT, et la BUITLIN_LED s'allume alors } MTdoubleClock Metronome(500 milli_secondes, 1000 milli_secondes, arret, marche); void setup(){} void loop(){}