Ejercicio No. 8 – Control de brillo de un LED mediante PWM

Hasta ahora hemos trabajado con señales digitales binarias: encendido (HIGH) y apagado (LOW).
En este ejercicio avanzamos hacia el control analógico simulado utilizando modulación por ancho de pulso (PWM).

Vamos a controlar el pin digital 11 del Arduino UNO, el cual dispone de capacidad PWM, para aumentar y disminuir progresivamente la intensidad de brillo de un LED conectado a este pin.

Este ejercicio permite verificar que:

Comprendemos el concepto de PWM
Sabemos utilizar la función analogWrite()
Podemos implementar variaciones progresivas mediante la estructura repetitiva for
Entendemos la relación entre ciclo de trabajo y brillo del LED


Descripción del ejercicio

En este programa vamos a controlar el pin digital 11 y el LED conectado a él.

El LED debe estar conectado al pin 11 con su respectiva resistencia limitadora (220 Ω o 330 Ω recomendada).

El comportamiento esperado será:

El brillo del LED aumenta progresivamente desde intensidad mínima hasta máxima
Posteriormente, el brillo disminuye progresivamente hasta apagarse
La secuencia se repite indefinidamente dentro de la función loop()

Este comportamiento se logra empleando la estructura repetitiva for para recorrer los valores de PWM desde 0 hasta 255 y luego de 255 hasta 0.


Objetivos de aprendizaje

Con este ejercicio aprenderás a:

Identificar pines con capacidad PWM
Utilizar la función analogWrite()
Comprender el rango de valores de 0 a 255
Implementar variaciones graduales mediante bucles for
Entender el concepto de ciclo de trabajo (duty cycle)


Conceptos clave

Antes de analizar el código, es importante conocer estos elementos fundamentales:

PWM (Pulse Width Modulation)
Técnica que permite simular una señal analógica mediante la variación del ancho de pulso de una señal digital.

Pin PWM
En el Arduino UNO, algunos pines digitales permiten salida PWM. El pin 11 es uno de ellos.

analogWrite(pin, valor)
Genera una señal PWM en el pin especificado.
El valor puede ir de 0 (apagado) a 255 (máxima intensidad).

Ciclo de trabajo (Duty Cycle)
Porcentaje del tiempo en que la señal permanece en nivel alto dentro de un periodo.

Estructura for
Permite recorrer progresivamente el rango de valores de brillo.

Frecuencia PWM
En el Arduino UNO, la señal PWM tiene una frecuencia aproximada de 490 Hz en la mayoría de los pines.

Resistencia limitadora
Controla la corriente que circula por el LED, protegiéndolo de daños.


Código fuente en GitHub

Para facilitar el aprendizaje y permitirte experimentar libremente, todos los ejercicios de esta serie estarán disponibles en un repositorio público de GitHub.

En el repositorio encontrarás:

El código del Ejercicio No. 8 – Control de brillo con PWM
Archivos organizados por ejercicio
La base para proyectos más avanzados como control de motores o regulación de potencia

👉 Repositorio GitHub:


Prompt sugerido para generar el código

Actúa como un instructor de Arduino para principiantes.
Necesito un programa en Arduino que controle el brillo de un LED conectado al pin digital 11 en un Arduino UNO utilizando PWM.
El programa debe aumentar progresivamente el brillo del LED desde 0 hasta 255 usando una estructura for y luego disminuirlo desde 255 hasta 0, repitiendo el ciclo indefinidamente dentro de la función loop().
Genera el código completo en C/C++ para Arduino, con comentarios explicativos línea por línea.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio