Cómo Arduino simplifica el PWM

Clase 27 de 38Curso Fundamentos de Desarrollo de Hardware con Arduino

Contenido del curso

Introducción al hardware libre

Manos a la obra

Resumen

Domina el control de brillo en LEDs con PWM en Arduino de forma directa y confiable. Aquí verás cómo pasar de la teoría a la práctica usando un potenciómetro para regular tres LEDs en pines con PWM, aprovechando funciones nativas como analogRead, map y analogWrite sin configuraciones complejas del módulo.

¿Qué harás con PWM en Arduino?

Aprenderás a leer un potenciómetro, escalar su valor y ajustar el brillo de tres LEDs en pines PWM. Todo con un flujo claro: declaración de variables, lectura analógica, mapeo de rangos y escritura PWM.

  • PWM de 8 bits: 256 niveles de brillo de 0 a 255.
  • Sin configurar pinMode: con analogWrite no necesitas declarar el pin como salida.
  • Pines con PWM: usa los pines 3, 5 y 6, marcados con la tilde en la serigrafía.
  • Productividad: sketch nuevo, guarda rápido con Ctrl + S, y nombra de forma clara.

¿Cómo es el código y por qué funciona?

El potenciómetro entrega valores de 0 a 1023 con analogRead. Para que analogWrite acepte esos datos, se usa map y se convierte ese rango a 0–255. Ese valor define el ciclo de trabajo que regula el brillo del LED.

¿Qué variables y pines se usan?

  • Variables globales claras: LED1, LED2, LED3 y potPin.
  • Convención camelCase para potValue y brightValue.
  • Pines PWM: 3, 5, 6 para los LEDs.
  • Entrada analógica: potPin = 0.

¿Cómo se lee y escala el potenciómetro?

  • analogRead(potPin) devuelve 0–1023.
  • map(potValue, 0, 1023, 0, 255) hace la “regla de tres” al rango de PWM.
  • analogWrite(LEDx, brightValue) aplica el brillo a cada LED.
  • Un delay(10) suaviza los cambios percibidos.
int LED1 = 3; int LED2 = 5; int LED3 = 6; int potPin = 0; // Entrada analógica (A0 en placas clásicas). int potValue; // Lectura del potenciómetro 0–1023. int brightValue = 0; // Brillo 0–255 para PWM. void setup() { // Con analogWrite no es necesario configurar pinMode para los pines PWM. } void loop() { potValue = analogRead(potPin); brightValue = map(potValue, 0, 1023, 0, 255); analogWrite(LED1, brightValue); analogWrite(LED2, brightValue); analogWrite(LED3, brightValue); delay(10); }

¿Cómo conectar y probar sin errores?

La conexión correcta garantiza que el brillo varíe de forma suave y visible. Cuida la tierra común, la polaridad de los LEDs y separa cada positivo al pin PWM correspondiente.

¿Qué conexiones eléctricas son clave?

  • Lleva una línea de tierra a la protoboard para todos los LEDs.
  • Conecta el negativo de cada LED a la línea de tierra.
  • Evita unir los positivos: cada LED debe ir a su pin PWM distinto.
  • Si te equivocas y todos van al mismo pin, corrige conectándolos “en escalerita” a 3, 5 y 6.

¿Qué buenas prácticas al compilar y cargar?

  • Verifica placa y puerto: en Tools > Board y COM correspondiente.
  • Compila y haz Upload antes de cablear todo.
  • Observa el brillo: al girar el potenciómetro, el LED pasa de apagado a máximo gradualmente.

¿Qué desafío puedes intentar?

  • Usa un LED RGB y un botón para cambiar colores.
  • Agrega un segundo potenciómetro para controlar cada canal.
  • Combina valores de red, green y blue o usa tres LEDs independientes para ver mezclas.

¿Te animas a compartir tu resultado? Deja tu código, fotos o un video, y cuéntame cómo resolviste el control de brillo y las combinaciones de color.

      Cómo Arduino simplifica el PWM