#include <Plaquette.h>
AnalogOut del1(11); // DEL #1 assignée à la pin digitale ~11
AnalogOut del2(10); // DEL #2 assignée à la pin digitale ~10
AnalogOut del3(9); // DEL #1 assignée à la pin digitale ~9
AnalogOut del4(6); // DEL #1 assignée à la pin digitale ~6
SineWave sineOsc1, sineOsc2, sineOsc3, sineOsc4; // 4 oscillateurs sinusoïdaux: 1/DEL
SquareWave squareOsc1, squareOsc2, squareOsc3, squareOsc4; // 4 oscillateurs à onde carrée : 1/DEL
float controlDel1, controlDel2, controlDel3, controlDel4; // Variables de contrôle utilisées dans la boucle else if
Chronometer cycleChrono; // Initialisation du chronomètre cycleChrono
void begin() {
sineOsc1.period(1.0); // La période de chaque oscillateur sinusoïdal est spécifiée à 1.0
sineOsc2.period(1.0);
sineOsc3.period(1.0);
sineOsc4.period(1.0);
sineOsc1.phase(0.0); // Aucun déphasage pour l'oscillateur sinusoïdal #1
sineOsc2.phase(0.25); // Déphasage de 0.25 (1/4 de cycle) pour l'oscillateur sinusoïdal #2
sineOsc3.phase(0.50); // Déphasage de 0.50 (1/2 de cycle) pour l'oscillateur sinusoïdal #3
sineOsc4.phase(0.75); // Déphasage de 0.75 (3/4 de cycle) pour l'oscillateur sinusoïdal #4
squareOsc1.period(0.5); // La période de chaque oscillateur à onde carrée est spécifiée à 0.5
squareOsc2.period(0.5);
squareOsc3.period(0.5);
squareOsc4.period(0.5);
squareOsc1.phase(0.0); // Aucun déphasage pour l'oscillateur à onde carrée #1
squareOsc2.phase(0.25); // Déphasage de 0.25 (1/4 de cycle) pour l'oscillateur à onde carrée #2
squareOsc3.phase(0.50); // Déphasage de 0.50 (1/2 de cycle) pour l'oscillateur à onde carrée #3
squareOsc4.phase(0.75); // Déphasage de 0.75 (3/4 de cycle) pour l'oscillateur à onde carrée #4
cycleChrono.start(); // Activation du chronomètre
}
void step() {
controlDel1 >> del1; // Variable de contrôle 1 assignée au DEL #1
controlDel2 >> del2; // Variable de contrôle 2 assignée au DEL #2
controlDel3 >> del3; // Variable de contrôle 3 assignée au DEL #3
controlDel4 >> del4; // Variable de contrôle 4 assignée au DEL #4
if (cycleChrono <= 10.0) { // Si cycleChrono est plus petit ou égal à 10.0
controlDel1 = sineOsc1;
controlDel2 = sineOsc2;
controlDel3 = sineOsc3;
controlDel4 = sineOsc4;
} else if (cycleChrono > 10.0 && cycleChrono <= 15.0) { // Si cycleChrono est plus grand que 10.0 ET plus petit ou égal à 15.0
controlDel1 = squareOsc1;
controlDel2 = squareOsc2;
controlDel3 = squareOsc3;
controlDel4 = squareOsc4;
} else {
cycleChrono.start(); // Réinitialisation de cycleChrono si aucune des conditions est TRUE
}
}