
Video
Diagrama del circuito

Código fuente
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}Preguntas frecuentes
¿Qué valores devuelve la función analogRead?▾
Las entradas analógicas del Uno leen valores de 0 a 5 V con una resolución de 10 bits y devuelven un número comprendido entre 0 y 1023. A medida que se gira el potenciómetro de un extremo a otro, el valor varía de 0 a 1023.
¿Cómo convertimos el valor del potenciómetro en velocidad?▾
Con la función map(), puedes convertir el intervalo 0–1023 al intervalo de retardo que desees (por ejemplo, 20–500 ms): map(valor, 0, 1023, 20, 500). Cuando se utiliza este valor dentro de `delay()`, la velocidad cambia al instante.
¿Cómo se conectan las patillas del potenciómetro?▾
Las dos patillas exteriores se conectan a 5 V y a GND, y la patilla central (limpiaparabrisas) a una entrada analógica (p. ej., A0). Si conectas las patillas exteriores al revés, solo se invierte el sentido de giro; el circuito no se estropea.
El cambio de velocidad se percibe con retraso, ¿por qué?▾
Si el potenciómetro solo se lee al inicio del ciclo, el nuevo valor no se aplica hasta que todos los LED se hayan encendido. Si se incluye la lectura dentro de cada paso de los LED, la velocidad cambia al instante.
