Variar la luminosidad de un LED mediante PWM controlado por Potenciómetro

Variar la luminosidad de un LED mediante PWM controlado por Potenciómetro

¡Hola! En este tutorial vamos a controlar la intensidad luminosa de un LED usando un potenciómetro y la técnica PWM (Modulación por Ancho de Pulso). Es una práctica un poco más compleja que las básicas, pero al final igual de sencilla una vez que la comprendas.

📋 Materiales necesarios

  • Arduino Uno o similar

  • 1 LED

  • 1 Resistencia de 220Ω a 330Ω

  • 1 Potenciómetro de 10kΩ

  • Protoboard

  • Cables jumper

🔌 Diagrama de conexiones

Para el potenciómetro:

  • Pin izquierdo → 5V de Arduino

  • Pin derecho → GND de Arduino

  • Pin central (salida) → A0 de Arduino

Para el LED:

  • Ánodo (+) → Pin 11 de Arduino (a través de resistencia)

  • Cátodo (-) → GND de Arduino

💻 Código Arduino

arduino
// Definición de pines
const int POT = A0;    // Pin analógico para el potenciómetro
const int LED = 11;    // Pin PWM para el LED

void setup() {
  // No necesitamos declarar entradas/salidas en este caso básico
  // Los pines analógicos se configuran automáticamente como entradas
  pinMode(LED, OUTPUT); // Aunque por buena práctica, declaramos el LED como salida
}

void loop() {
  // Leer el valor del potenciómetro (0-1023)
  int lecturaPOT = analogRead(POT);
  
  // Mapear el valor de 0-1023 a 0-255 (rango PWM)
  int valorPWM = map(lecturaPOT, 0, 1023, 0, 255);
  
  // Aplicar el valor PWM al LED
  analogWrite(LED, valorPWM);
  
  // Pequeña pausa para estabilidad
  delay(10);
}

🔍 Explicación paso a paso

1. Configuración del potenciómetro

  • Al conectar 5V y GND a los extremos del potenciómetro, creamos un divisor de voltaje

  • El pin central nos da un voltaje variable entre 0V y 5V según la posición

2. Lectura analógica

  • analogRead(POT) lee el voltaje en el pin A0

  • Arduino convierte este voltaje a un valor digital entre 0 y 1023

  • 0 = 0V, 1023 = 5V

3. Conversión de valores

  • La función map() convierte el rango 0-1023 a 0-255

  • Esto es necesario porque analogWrite() trabaja con valores de 0 a 255

4. Salida PWM

  • analogWrite(LED, valorPWM) genera una señal PWM en el pin 11

  • PWM simula un voltaje variable encendiendo y apagando rápidamente el pin

  • Ciclo de trabajo 0% = siempre apagado, 100% = siempre encendido

🎯 ¿Qué está sucediendo realmente?

No estamos simplemente "controlando un LED con un potenciómetro". El proceso completo es:

  1. Divisor de voltaje: El potenciómetro divide el voltaje de 5V

  2. Conversión ADC: Arduino convierte el voltaje analógico a digital (0-1023)

  3. Mapeo: Adaptamos el rango a uno compatible con PWM (0-255)

  4. Modulación PWM: Arduino genera pulsos rápidos que controlan la intensidad

✅ Prueba y funcionamiento

Al girar el potenciómetro verás cómo:

  • El LED se enciende progresivamente

  • La intensidad luminosa varía suavemente

  • Puedes controlar desde apagado completamente hasta máxima intensidad

💡 Conceptos importantes

  • PWM (Pulse Width Modulation): Técnica para simular voltajes variables

  • ADC (Analog to Digital Converter): Conversor analógico-digital integrado en Arduino

  • Divisor de voltaje: Circuito que divide un voltaje usando resistencias

🚀 Siguiente paso

En el próximo tutorial trabajaremos con una fotorresistencia para crear un control automático de luminosidad.

Comentarios

Entradas más populares de este blog

11. Ejemplos Básicos de Leds y Pulsadores

12. Demostracion de como usar Tinkercad para simular Arduino con circuitos

Tutorial: Controlar la Intensidad de un LED con Potenciómetro (PWM)