#include <Plaquette.h>
Alarm ledAlarmEvent(0.08); // fait clignoter la LED pendant 80 millisecondes à chaque battement du métronome
Alarm ledAlarmSignal(0.5); // durée pendant laquelle le signal (onde) est actif
DigitalOut redLed(13);
AnalogOut blueLed(11); // sortie analogique connectée à la broche PWM 11
Wave mySine(SINE, 0.5); // onde sinusoïdale utilisée comme signal avec l’Alarm
Metronome myMetro(1.5); // initialise le métronome avec une période de 1,5 seconde
int firstMetro = 0; // petite astuce pour éviter que blueLed s’allume au chargement
Plotter plotter(9600);
void step() {
ledAlarmSignal >> plotter; // visualiser les ondes creer par Alarm
if (myMetro){ // à chaque battement du métronome
redLed.on(); // allume la LED rouge
// redémarre les alarmes
ledAlarmEvent.start();
ledAlarmSignal.start();
firstMetro = 1; // nous avons eu la premier bang du metro.
}
// vérifier l’alarme courte (flash)
if (ledAlarmEvent.rose()) // lorsque le temps de l’alarme est écoulé (elle passe de 0 à 1)
redLed.off();
// pendant que l’alarme longue n’a pas encore "sonné"
if (!ledAlarmSignal && firstMetro == 1) // restera à 0 jusqu’à ce que l’alarme se termine
mySine >> blueLed;
else
0 >> blueLed; // éteint la LED bleue lorsque l’alarme se déclenche
}