CONTENIDO ►
En la página encontrarás las instrucciones para montar un circuito eléctrico con LEDs para variar gradualmente la intensidad de la luz con la ayuda de la señal PWM (Pulse Width Modulation) en una placa Arduino Uno. Para entender el principio del PWM generado por el Arduino, puedes consultar este tutorial. ¿Qué es una señal PWM en Arduino? En primer lugar, PWM son las siglas de Pulse Width Modulation (modulación por ancho o de pulso).
Para esta actividad necesitaremos:
- Arduino Uno / Arduino Nano / Arduino Mega
- LEDs y resistencias de 220 Ohm;
- protoboard;
- cables de conexion.
Señal PWM Arduino (Pulse Width Modulation)

Para variar artificialmente la tensión de salida del Arduino, tendremos que utilizar algunos pines digitales de la placa. Pero por definición, un pin digital sólo entrega una señal binaria (0 ó 1), es decir, la señal eléctrica en la salida sólo puede tener dos valores, o bien HIGH (nivel alto = 5V) o bien LOW (nivel bajo = 0V). Los pines digitales Arduino compatibles con PWM permitirán la salida de una señal digital con 256 valores diferentes.
Como controlar la intensidad de un LED con PWM

Programa Arduino variar intensidad de luz de LED
#define RED_LED 9 void setup() { pinMode(RED_LED, OUTPUT); } void loop() { for(int i=0; i<=255; i++) { analogWrite(RED_LED, i); delay(10); } for(int i=255; i>=0; i--) { analogWrite(RED_LED, i); delay(10); } }
Explicación del código para variar intensidad de luz de LED:
- el bucle for se utiliza para repetir operadores encerrados en una construcción (llaves);
- for se repite mientras la condición i<=255 o i>=0 sea verdadera.

Para utilizar la salida PWM, tendremos que utilizar los pines indicados con un ~. En la tarjeta Arduino Uno y Nano, los pines son: 3, 5, 6, 9, 10 y 11. Tenemos que indicarle a la tarjeta Arduino que ancho de pulso queremos enviarle, para el caso del Arduino, contamos con 8 bits para enviarle el valor deseado a través de la función analogWrite(pin, valor), donde pin es el número del pin físico a utilizar y valor será un valor entre 0 y 255.
Programa Arduino control de la intensidad de 2 LEDs
#define RED_LED 9 #define BLU_LED 11 void setup() { pinMode(RED_LED, OUTPUT); pinMode(BLU_LED, OUTPUT); } void loop() { for(int i=0; i<=255; i++) { analogWrite(RED_LED, i); analogWrite(BLU_LED, 255 - i); delay(10); } for(int i=255; i>=0; i--) { analogWrite(RED_LED, i); analogWrite(BLU_LED, 250 - i); delay(10); } }
Explicación del código para control de la intensidad de 2 LEDs:
- la cabecera del bucle for consta de tres partes (inicialización; condición; incremento) – la inicialización se ejecuta una vez, luego se comprueba la condición, si la condición es verdadera, se ejecuta el incremento y el bucle se repite hasta que la condición sea verdadera.
Conclusión. El LED del Arduino se enciende suavemente con una señal PWM. En el programa de ejemplo, hemos cambiado suavemente el brillo del LED con la señal PWM. Este ejemplo se puede utilizar para una luz LED decorativa en una habitación o una luz nocturna decorativa utilizando un microcontrolador Arduino Uno o Arduino Nano.

Deja una respuesta