Cómo Arduino simplifica el PWM

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

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