#include <Plaquette.h>
Ramp zigzagRamp(0.1); // durée du ramp
AnalogOut blueLed(11);
AnalogOut rgbRed(6);
AnalogOut rgbGreen(5);
AnalogOut rgbBlue(3);
DigitalIn rampSwitchButton(2, INTERNAL_PULLUP);
Metronome myMetro(0.5); // initialise le métronome avec une période de 3 secondes
Plotter plotter(9600);
void begin() {
// on peut personnaliser les objets Ramp dans begin()
zigzagRamp.easing(easeOutSine);
zigzagRamp.fromTo(1.0, 0.0); // redéfinit les valeurs de début et de fin
rampSwitchButton.debounce();
zigzagRamp.start();
}
void step() {
//visualiser les ramps
zigzagRamp >> plotter;
zigzagRamp >> blueLed;
if (myMetro) { // à chaque battement du métronome
//part a un destination random en 0.2 secondes
zigzagRamp.go(randomFloat(0.0, 1.0), 0.2);
// ******version duration random
//zigzagRamp.go(0.5, randomFloat(0.5, 0.01));
// ******version destination et duration fixe
//zigzagRamp.go(0.2, 0.2);
if (rampSwitchButton){
// le temps de fin du ramp est plus long que la période du métronome,
// ce qui rend le comportement étrange
// cette méthode pourrait être intéressante pour simuler de fausses données de capteur
zigzagRamp.go(randomFloat(0.0, 1.0), 1.0);
}
}
if(zigzagRamp.finished()) {
zigzagRamp.go(0.0, 0.05);
}
}