// Inclusion de la librairie Plaquette
#include <Plaquette.h>
// Création de trois oscillateurs de type onde sinusoïdale (SINE)
Wave redWave(SINE);
Wave blueWave(SINE);
Wave greenWave(SINE);
// Définition des sorties analogiques
// INVERTED inverse le signal. La DEL RGB utilisée est à anode commune (une valeur plus basse correspond à une intensité lumineuse plus élevée)
AnalogOut redLed(9, INVERTED);
AnalogOut greenLed(10, INVERTED);
AnalogOut blueLed(11, INVERTED);
Metronome metro (1.0);
int mySeconds = 0; // variable comme compteur
// Création d’un objet Plotter pour visualiser les signaux dans le moniteur série (baud rate 9600)
Plotter plotter(9600);
void begin() {
// Configuration de la période des oscillateurs
redWave.period(1.0);
greenWave.period(2.0);
blueWave.period(3.0);
}
void step() {
// Envoi des valeurs des oscillateurs vers le plotter
redWave >> plotter;
greenWave >> plotter;
blueWave >> plotter;
if (metro) mySeconds++; // note: you don't need accolades if you only execute one line of code
if(mySeconds > 0 && mySeconds <= 4 ){ //plus gros que zero ET plus petit ou égal 4
// Routage des oscillateurs vers les branches correspondantes (effet de pulsations déphasées)
redWave >> redLed;
blueWave >> blueLed;
greenWave >> greenLed;
}
if(mySeconds == 5) { //flash del rouge
1.0 >> redLed;
0.0 >> blueLed >> greenLed; // on pourrait enchaîner les flows
}
if(mySeconds == 6) { //flash del bleu
1.0 >> blueLed;
0.0 >> redLed >> greenLed;
}
if(mySeconds == 7) { //flash del vert
0.0 >> redLed >> blueLed;
1.0 >> greenLed;
}
if(mySeconds == 8) {
0.0 >> redLed >> greenLed >> blueLed; //ferme tout
mySeconds = 0; // remettre seconds au 0
}
}