MTobjets: Exemple 6
Gestion par événements pour UNO, Nano, Mega
Salves sur une sortie
Problème posé
Vu sur un forum:
Je veux sur une sortie avoir des salves de 1 à 5 impulsions positives, à une fréquence comprise entre 2 et 3 Hz.
Programme complet recommandé
Ce programme se fait complètement sous interruption, et libère loop qui peut être utilisé pour faire autre chose.
// Génération de salves d'impulsion sur une sortie // De 1 à 5 impulsions à 2/3Hz // Donc durée maximale 2,5s -> répétition entre 3 et 6s #include <MTobjects.h> // V1.0.6 Voir http://arduino.dansetrad.fr/MTobjects MTsoftPWM Salves(LED_BUILTIN); // Mise en place void setup() { Salves.stop(); // Arrêt car fonctionne à l'initialisation. Pourrait être fait lors de sa création! } void loop() { // Préparer de 1 à 5 impulsions à 2 à 3 Hz long periode = (300 + random(200))*1000 micro_secondes; // Entre 0,3s et 0,5s Salves.setPeriod(periode); Salves.setPulse(periode/2); long nombre_de_niveaux = (1 + random(5)) * 2; // Une impulsion c'est 2 niveaux. Entre 2 et 10 Salves.setNumberOfLevels(nombre_de_niveaux niveaux_et_arret); // Démarrer la salve Salves.start(); // Espace entre deux débuts de salves long attente = 3000 + random(3000) milli_secondes; // Entre 3s et 6s delay(attente); // Les salves se produiront pendant cette instruction }
Résultat à l'analyseur:
