#7Intermedio

Led de marcha de velocidad regulable

4.6(71)
133 completado
Led de marcha de velocidad regulable
El proyecto que puede ajustar la velocidad de marcha del LED en tiempo real con el potenciómetro. Enseña el control dinámico del tiempo de retardo mediante la lectura del valor del potenciómetro con analogueRead.

Video

Diagrama del circuito

Led de marcha de velocidad regulable - Circuit

Código fuente

Arduino (C++)
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.

Led de marcha de velocidad regulable | BlueGrays