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
// 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 A0Arduino 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-255Esto 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 11PWM 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:
Divisor de voltaje: El potenciómetro divide el voltaje de 5V
Conversión ADC: Arduino convierte el voltaje analógico a digital (0-1023)
Mapeo: Adaptamos el rango a uno compatible con PWM (0-255)
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
Publicar un comentario