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

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

11. Ejemplos Básicos de Leds y Pulsadores

Lectura de Potenciómetro con Arduino Uno en Tinkercad