Arduino UNO conectado a un potenciómetro de 10 kΩ para controlar la intensidad luminosa de un LED mediante una señal PWM.
Práctica de Arduino UNO: regulación del brillo de un LED utilizando un potenciómetro de 10 kΩ, entrada analógica A0 y salida PWM.

En esta práctica aprenderemos a controlar la intensidad luminosa de un LED utilizando un potenciómetro de 10 kΩ y una placa Arduino UNO.

Con este proyecto conoceremos cómo funcionan las entradas analógicas, cómo convertir valores numéricos y cómo utilizar las salidas PWM para regular el brillo de un LED.

Esta actividad es ideal para estudiantes que están comenzando a trabajar con Arduino y desean comprender la relación entre los sensores, el procesamiento de información y los actuadores.

1. Objetivo de la práctica

Construir y programar un circuito electrónico que permita aumentar o disminuir el brillo de un LED al girar un potenciómetro, utilizando las instrucciones analogRead(), map() y analogWrite().

2. Materiales necesarios

  • 1 Arduino UNO
  • 1 protoboard
  • 1 potenciómetro de 10 kΩ
  • 1 LED de cualquier color
  • 1 resistencia de 220 Ω
  • Cables de conexión
  • 1 cable USB para Arduino
  • Computadora con Arduino IDE

3. ¿Qué es un potenciómetro?

Un potenciómetro es una resistencia variable que permite modificar su resistencia eléctrica al girar una perilla o mover un control deslizante.

Tiene tres terminales: dos extremos de la pista resistiva y uno central, llamado cursor.

En esta práctica utilizaremos el potenciómetro como un divisor de voltaje. Al girarlo, cambiaremos el voltaje que recibe la entrada analógica A0 de Arduino, aproximadamente entre 0 y 5 voltios.

4. ¿Qué es una entrada analógica?

Una entrada analógica permite que Arduino mida un voltaje variable.

En Arduino UNO, la función analogRead() convierte ese voltaje en un número entero entre 0 y 1023, gracias a su convertidor analógico-digital de 10 bits.

Voltaje aproximadoLectura analógica
0 V0
1.25 V256
2.50 V512
3.75 V767
5 V1023

5. ¿Qué es PWM?

PWM significa Pulse Width Modulation, o modulación por ancho de pulso.

Es una técnica que permite controlar la potencia promedio entregada a determinados dispositivos mediante pulsos digitales.

En esta práctica, Arduino modifica el ciclo de trabajo de la señal PWM, provocando que el LED parezca aumentar o disminuir su intensidad luminosa.

La instrucción analogWrite() utiliza valores de 0 a 255.

Valor PWMResultado
0LED apagado
64Brillo bajo
128Brillo medio aproximado
192Brillo alto
255Brillo máximo

El brillo percibido por el ojo humano no aumenta necesariamente de manera proporcional al valor PWM.

6. Diagrama eléctrico y conexiones

Circuito brillo led potenciometro

Conexiones del potenciómetro:

  • Terminal lateral: 5V
  • Terminal central: A0
  • Terminal lateral opuesta: GND

Conexiones del LED:

  • Pin digital 9 → resistencia de 220 Ω → ánodo del LED.
  • Cátodo del LED → GND.

La resistencia limita la corriente eléctrica y protege al LED.

Importante: Si al girar el potenciómetro hacia la derecha el brillo disminuye, podemos intercambiar las conexiones de 5V y GND de sus terminales laterales.

7. Código de Arduino

Copia el siguiente programa en Arduino IDE:

const int potenciometro = A0;
const int led = 9;

int valorPotenciometro = 0;
int brillo = 0;

void setup() {
  pinMode(led, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  valorPotenciometro = analogRead(potenciometro);

  brillo = map(valorPotenciometro, 0, 1023, 0, 255);

  analogWrite(led, brillo);

  Serial.print("Potenciometro: ");
  Serial.print(valorPotenciometro);

  Serial.print(" | Brillo: ");
  Serial.println(brillo);

  delay(100);
}
Control de brillo led con potenciometro

8. Explicación del código

analogRead(potenciometro)

Lee el voltaje que recibe el pin A0 y lo convierte en un valor entre 0 y 1023.

map(valorPotenciometro, 0, 1023, 0, 255)

Convierte el valor de entrada analógica al rango utilizado por PWM.

Por ejemplo, una lectura cercana a 512 se convierte aproximadamente en 127.

analogWrite(led, brillo)

Genera una señal PWM en el pin 9 para controlar la intensidad luminosa del LED.

Serial.begin(9600)

Inicia la comunicación serial para observar las lecturas del potenciómetro y los valores PWM en la computadora.

9. Procedimiento de la práctica

  1. Coloca el LED y el potenciómetro en el protoboard.
  2. Conecta los componentes de acuerdo con el diagrama eléctrico.
  3. Verifica la polaridad del LED y la resistencia de protección.
  4. Conecta Arduino UNO a la computadora.
  5. Abre Arduino IDE y copia el código.
  6. Selecciona la placa y el puerto correspondiente.
  7. Carga el programa en Arduino.
  8. Gira lentamente el potenciómetro y observa cómo cambia el brillo.
  9. Abre el monitor serial a 9600 baudios para observar los valores.

10. Actividad para los alumnos

Realiza las siguientes pruebas y completa la tabla con los valores que observes en el monitor serial.

Posición del potenciómetroLectura A0Valor PWM
Mínimo
25 % aproximadamente
Mitad
75 % aproximadamente
Máximo

11. Preguntas de repaso

  1. ¿Qué es un potenciómetro y para qué sirve?
  2. ¿Por qué utilizamos el pin A0 para conectar el potenciómetro?
  3. ¿Qué valores puede entregar la función analogRead() en Arduino UNO?
  4. ¿Qué significa PWM?
  5. ¿Por qué utilizamos el pin 9 para conectar el LED?
  6. ¿Cuál es la función de map()?
  7. ¿Qué ocurre cuando enviamos un valor de 0 mediante analogWrite()?
  8. ¿Qué sucede cuando enviamos un valor de 255?
  9. ¿Por qué es necesario colocar una resistencia en serie con el LED?
  10. ¿En qué aplicaciones de la vida cotidiana se puede utilizar un potenciómetro?

12. Reto adicional

Modifica el programa para que el LED nunca se apague completamente.

Pista: Cambia el rango de salida de la función map() de 0–255 a 50–255.

Después, modifica el código para que al girar el potenciómetro hacia un extremo el LED aumente su brillo y al girarlo hacia el otro lo disminuya.

13. Conclusión

En esta práctica aprendimos a controlar la intensidad luminosa de un LED mediante un potenciómetro de 10 kΩ y Arduino UNO.

También conocimos tres instrucciones importantes de programación: analogRead(), map() y analogWrite().

Estos conocimientos son fundamentales para desarrollar proyectos más avanzados, como sistemas de iluminación regulable, controles de velocidad de motores y sistemas de automatización.

Profe Juan de Dios — Aprende electrónica, programación y robótica con Arduino.