
Vidéo
Schéma du circuit

Code source
1int ledPins[] = {2, 3, 4, 5, 6, 7};
2int potValue;
3
4void setup() {
5 for(int i = 0; i < 6; i++) {
6 pinMode(ledPins[i], OUTPUT);
7 }
8}
9
10void loop() {
11 for(int i = 0; i < 6; i++) {
12 potValue = analogRead(A0);
13 digitalWrite(ledPins[i], HIGH);
14 delay(potValue);
15 digitalWrite(ledPins[i], LOW);
16 }
17}FAQ
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.
