En este ejercicio ampliaremos el uso de la modulación por ancho de pulso (PWM) para trabajar con múltiples salidas al mismo tiempo.
Vamos a controlar todos los pines digitales con capacidad PWM del Arduino UNO.
En el Arduino UNO, los pines PWM son:
3, 5, 6, 9, 10 y 11
El objetivo será modificar la intensidad de brillo de los LEDs conectados a estos pines utilizando estructuras repetitivas FOR anidadas.
Este ejercicio permite verificar que:
Comprendemos el uso de múltiples salidas PWM
Sabemos implementar bucles FOR anidados
Podemos generar variaciones progresivas simultáneas
Entendemos cómo escalar un programa para manejar múltiples canales
Descripción del ejercicio
En este programa vamos a controlar todos los pines digitales PWM del Arduino UNO.
Se conectarán LEDs (cada uno con su resistencia limitadora de 220 Ω o 330 Ω) a los siguientes pines:
3
5
6
9
10
11
El comportamiento esperado será:
Se utilizará un primer bucle FOR para recorrer los valores de brillo desde 0 hasta 255
Un segundo bucle FOR (anidado o estructurado en secuencia lógica) permitirá aplicar ese valor a cada uno de los pines PWM
El brillo aumentará progresivamente en todos los LEDs
Posteriormente el brillo disminuirá desde 255 hasta 0
El proceso se repetirá indefinidamente dentro de la función loop()
Esto genera un efecto de variación de intensidad sincronizada en todos los LEDs.
Objetivos de aprendizaje
Con este ejercicio aprenderás a:
Identificar todos los pines PWM del Arduino UNO
Utilizar múltiples salidas analógicas simuladas
Implementar estructuras FOR anidadas
Controlar múltiples dispositivos con un mismo patrón lógico
Optimizar código para evitar repeticiones innecesarias
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 variando el ciclo de trabajo de una señal digital.
analogWrite(pin, valor)
Permite generar una señal PWM con valores entre 0 y 255.
Estructuras FOR anidadas
Un bucle FOR dentro de otro FOR.
El bucle externo puede controlar el nivel de brillo.
El bucle interno puede recorrer cada uno de los pines PWM.
Arreglos (arrays)
Es recomendable almacenar los pines PWM en un arreglo para facilitar su recorrido dentro del bucle.
Sincronización
Todos los LEDs pueden compartir el mismo valor de brillo para generar un efecto uniforme.
Resistencia limitadora
Cada LED debe contar con su resistencia para proteger el circuito.
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. 9 – Control múltiple de pines PWM
Archivos organizados por ejercicio
La base para aplicaciones más avanzadas como control de matrices LED o efectos dinámicos
👉 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 LEDs conectados a los pines PWM 3, 5, 6, 9, 10 y 11 en un Arduino UNO.
El programa debe utilizar estructuras FOR anidadas para aumentar el brillo desde 0 hasta 255 y luego disminuirlo desde 255 hasta 0 en todos los LEDs simultáneamente, 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.
