Volver

Atenuar un LED con PWM en Arduino – Tutorial para principiantes

Introducción

¡Bienvenido a tu primer proyecto de PWM (Modulación por Ancho de Pulso)! En este tutorial, construiremos un circuito simple que atenúa suavemente un LED desde apagado hasta brillante y viceversa. Este es un proyecto clásico para principiantes en Arduino que te enseña a usar analogWrite() para controlar el brillo, la velocidad de un motor o cualquier dispositivo que responda a un voltaje promedio variable.

Usaremos Velxio, un simulador de circuitos en el navegador con soporte analógico preciso basado en SPICE. ¡No necesitas hardware, solo tu navegador! Puedes seguir el tutorial, editar el código y ver los resultados al instante.

Diagrama del circuito de atenuación de LED en el simulador Velxio

Explicación del Circuito

Veamos los componentes y el cableado para este proyecto.

Componentes

ComponenteCantidadNotas
Arduino Uno1El cerebro de la operación
LED (cualquier color)1Usaremos un LED azul
Resistencia (220 Ω)1Resistencia limitadora de corriente (no mostrada en el esquema pero recomendada)
Cables de puente2Para las conexiones

Cableado

  1. Ánodo del LED (pata larga) → Conectar al pin 9 del Arduino (un pin compatible con PWM).
  2. Cátodo del LED (pata corta) → Conectar a GND en el Arduino.

Importante: Usa siempre una resistencia limitadora de corriente (típicamente de 220 Ω a 1 kΩ) en serie con el LED para evitar que se queme. En el simulador Velxio, el modelo del LED incluye resistencia interna, pero en la vida real debes añadir una.

Aquí está el cableado en detalle:

¡Eso es todo! Solo dos conexiones. El pin 9 del Arduino puede emitir una señal PWM, que usaremos para variar el brillo del LED.

Código fuente para atenuación de LED en el editor Monaco de Velxio

Explicación del Código

Abre el editor de código en Velxio. Verás el siguiente sketch de Arduino:

// Fade LED with PWM
// Smoothly fade LED brightness

const int LED_PIN = 9; // PWM pin

int brightness = 0;
int fadeAmount = 5;

void setup() {
  pinMode(LED_PIN, OUTPUT);
}

void loop() {
  analogWrite(LED_PIN, brightness);

  brightness += fadeAmount;

  if (brightness <= 0 || brightness >= 255) {
    fadeAmount = -fadeAmount;
  }

  delay(30);
}

Cómo Funciona

Conceptos Clave

Problemas Comunes y Consejos de Depuración

  1. ¿El LED no se enciende?

    • Verifica que el LED esté conectado correctamente (ánodo al pin 9, cátodo a GND).
    • Asegúrate de que el código esté cargado (haz clic en el botón Ejecutar de la barra de herramientas).
    • Comprueba que LED_PIN coincida con el pin real utilizado.
  2. ¿El LED se queda al máximo brillo?

    • Asegúrate de usar un pin compatible con PWM (3, 5, 6, 9, 10, 11 en el Uno). El pin 13 no es PWM.
    • Verifica que se llame a analogWrite(), no a digitalWrite().
  3. ¿La atenuación es demasiado rápida o lenta?

    • Ajusta el valor de delay(30). Más grande = atenuación más lenta.
    • Cambia fadeAmount para controlar el tamaño del paso (por ejemplo, 1 para muy suave, 10 para más rápido).
  4. ¿El simulador no responde?

    • Usa el botón Restablecer en la barra de herramientas del lienzo.
    • Refresca la página si es necesario.

Barra de herramientas del editor de Velxio con controles de compilación y ejecución

Extensiones Sugeridas

Una vez que domines la atenuación básica, prueba estos desafíos:

  1. Múltiples LEDs: Añade dos LEDs más en los pines 10 y 11. Haz que se atenúen en secuencia o a diferentes velocidades.
  2. Control con botón: Añade un pulsador para iniciar/detener la atenuación.
  3. Control de velocidad con potenciómetro: Usa un potenciómetro para ajustar la velocidad de atenuación (reemplaza delay(30) con una variable leída de una entrada analógica).
  4. LED RGB: Usa un LED RGB y atenúa diferentes colores controlando tres pines PWM.
  5. Monitor serie: Imprime el valor de brillo en el Monitor Serie para depuración.

¡Pruébalo Tú Mismo!

¿Listo para verlo en acción? Abre el ejemplo en vivo en Velxio:

👉 Iniciar el ejemplo de atenuación de LED

Puedes editar el código, cambiar la velocidad de atenuación o incluso añadir nuevos componentes. El simulador se ejecuta completamente en tu navegador, sin descargas ni configuración.

¡Feliz atenuación!


Compartir en:
David Montero

Escrito por

David Montero

Creator of Velxio, the open-source circuit and Arduino simulator.

GitHub velxio.dev

Artículos relacionados


Artículo anterior
Serial Hello World: Tu Primer Proyecto de Comunicación con Arduino
Artículo siguiente
LED controlado por pulsador: tu primer proyecto de entrada con Arduino