Este proyecto consiste en ajustar el brillo de un LED mediante dos pulsadores conectados a un Arduino. Uno de los pulsadores incrementa el brillo, mientras que el otro lo disminuye. Para ello, se utiliza el control PWM (Modulación por Ancho de Pulso) para variar la intensidad del LED de forma suave y controlada.
Materiales:
Los materiales que utilizaremos para este proyecto son los siguientes:
- 1 Arduino Uno.
- 2 Pulsadores
- 2 Resistencias de 1k
- 1 Resistencia de 220 Ohms.
- 1 Diodo led (Cualquier color).
Diagrama de Conexiones:
Explicación del funcionamiento:
Para este proyecto, el led debe ir conectado si o si a un pin con pwm, los pulsadores están conectados en los pines A1 y A2 respectivamente.
Al igual que en el proyecto anterior, para controlar el brillo del led modificaremos el valor del pwm, en este caso no utilizaremos ninguna función, simplemente crearemos una variable llamada pwm, el valor de esta variable lo sumaremos o restaremos dependiendo del pulsador que presionemos.
Código documentado:
/** Código escrito por: Esteban Carrillo para EDEPTEC.* Página web: https://www.edeptec.com* Facebook: @edeptec* Youtube: https://youtube.com/c/EDEPTEC*/// Definición de pines utilizados en el proyecto#define led 3 // Pin al que está conectado el LED controlado por PWM#define pulSuma A1 // Pin al que está conectado el botón para aumentar el brillo#define pulResta A2 // Pin al que está conectado el botón para disminuir el brillo// Declaración de variable para almacenar el valor del PWMbyte pwm = 0;void setup() {// Configuración de pines como entrada o salidapinMode(led, OUTPUT); // Configura el pin del LED como salidapinMode(pulSuma, INPUT); // Configura el pin del botón de suma como entradapinMode(pulResta, INPUT); // Configura el pin del botón de resta como entrada}void loop() {// Incrementar o decrementar el valor del PWM según el estado de los botones(digitalRead(pulSuma) == HIGH) && pwm++; // Si el botón de suma está presionado, incrementa el PWM(digitalRead(pulResta) == HIGH) && pwm--; // Si el botón de resta está presionado, decrementa el PWMdelay(20); // Retardo para evitar rebotes del botón// Limitar el rango del valor PWM entre 0 y 255if (pwm > 255) pwm = 255; // Si el valor PWM supera 255, lo limita a 255if (pwm < 0) pwm = 0; // Si el valor PWM baja de 0, lo limita a 0// Actualizar el valor del PWM del LEDanalogWrite(led, pwm); // Escribe el valor PWM en el pin del LED}
Publicar un comentario