Voilà ce que ça donne :
Bon, juste pour l'info, voici le schéma :
Les resistances font 220 Ω et le condensateur fait 100 µF. Voici le programme qui permet de faire varier la vitesse du chenillard en fonction du potentiomètre 10 kΩ :
// Branchement du potentiomètre
const int potPin = A0;
// Branchement de la premère led
const int minLed = 2;
// Branchement de la dernière led
const int maxLed = 9;
// Vitesse minimale
const int minPace = 20;
// Vitesse maximale
const int maxPace = 100;
// Vitesse courante
int pace = 0;
// Sens du chenillard
int sens = 1;
// Led actuellement allumée
int led = minLed;
// Dernière valeur en millisecondes
unsigned long previousTime = 0;
void setup() {
// Mise en place des sorties pour toutes les led
for (int x = minLed; x <= maxLed; x++) {
pinMode(x, OUTPUT);
}
}
// Mise à jour de la vitesse depuis le potentiomètre
int updatePace() {
int potVal = analogRead(potPin);
pace = map(potVal, 0, 1023, minPace, maxPace);
}
void loop() {
// Mise à jour de la vitesse
updatePace();
unsigned long currentTime = millis();
// Si on a dépassé le temps d'allumage de la dernière led
if (currentTime - previousTime > pace) {
// On note quand est-ce qu'on fait le changement
previousTime = currentTime;
// On éteint la led en cours
digitalWrite(led, LOW);
// On sélectionne la prochaine led
led += sens;
// Si c'est la dernière ou la première led
if ((led == maxLed)||(led == minLed)) {
// On change le sens
sens = -sens;
}
// On allume la led en cours
digitalWrite(led, HIGH);
}
// On fait une micro-pause
delay(5);
}
Aucun commentaire:
Enregistrer un commentaire