
Vidéo
Schéma du circuit

Code source
1// ─────────────────────────────────────────
2// BlueGrays · bluegrays.com
3// Chenillard à LED à vitesse réglable
4// ─────────────────────────────────────────
5// Un potentiomètre règle la vitesse de l'effet de LED en marche. A0 est lu
6// à chaque pas et sa valeur de 0-1023 devient le temps de pause (ms).
7//
8// Broches :
9// D2, D3, D4, D5, D6, D7 -> 6 LED (dans l'ordre)
10// Chaque LED avec une résistance de 330 ohm
11// A0 -> Curseur du potentiomètre
12// (pattes extérieures sur 5V et GND)
13
14int ledPins[] = {2, 3, 4, 5, 6, 7}; // Broches des LED dans l'ordre d'allumage
15int potValue; // Valeur du potentiomètre = pause (ms)
16
17void setup() {
18 // Mettre toutes les broches de LED en sortie
19 for(int i = 0; i < 6; i++) {
20 pinMode(ledPins[i], OUTPUT);
21 }
22}
23
24void loop() {
25 for(int i = 0; i < 6; i++) {
26 potValue = analogRead(A0); // Lire la vitesse (0-1023)
27 digitalWrite(ledPins[i], HIGH);
28 delay(potValue); // Attendre autant de ms que la valeur du potentiomètre
29 digitalWrite(ledPins[i], LOW);
30 }
31}
32FAQ
Quelles valeurs la fonction analogRead renvoie-t-elle ?▾
Les entrées analogiques de l'Uno lisent les tensions comprises entre 0 et 5 V avec une résolution de 10 bits et renvoient une valeur comprise entre 0 et 1 023. Lorsque le potentiomètre est tourné d'une extrémité à l'autre, la valeur passe de 0 à 1 023.
Comment convertir la valeur du potentiomètre en vitesse ?▾
La fonction map() te permet de convertir l'intervalle 0–1023 en l'intervalle de délai de ton choix (par exemple 20–500 ms) : map(valeur, 0, 1023, 20, 500). Lorsque cette valeur est utilisée dans la fonction delay(), la vitesse change instantanément.
Comment raccorder les broches d'un potentiomètre ?▾
Les deux broches extérieures se connectent à 5 V et à la masse (GND), tandis que la broche du milieu (essuie-glace) se connecte à une entrée analogique (par ex. A0). Si vous inversez les broches extérieures, seul le sens de rotation s'inverse ; le circuit ne subit aucun dommage.
Le changement de vitesse est perçu avec un certain retard, pourquoi ?▾
Si la valeur du potentiomètre n'est lue qu'au début de la boucle, la nouvelle valeur n'est pas appliquée tant que toutes les LED n'ont pas défilé. Si vous intégrez la lecture à chaque étape de défilement des LED, la vitesse change instantanément.
