¡Crea una Señal de Advertencia con LEDs y Arduino! Un Proyecto Divertido y Educativo
¡Hola, entusiasta de la tecnología! Hoy te traigo un proyecto emocionante que te ayudará a crear un sistema de señalización simple usando Arduino, LEDs y un pulsador: Señal de Advertencia con LEDs. Este proyecto es perfecto para aprender sobre la programación de microcontroladores y la manipulación de hardware básico como LEDs y pulsadores. ¡Pongámonos manos a la obra! 😄
Señal de Advertencia con LEDs y Arduino: Aprende a crear un sistema de señalización con LEDs y un pulsador utilizando Arduino.
Enlace al Proyecto en Tinkercad - Señal de Advertencia
Explora cómo funciona este proyecto y experimenta con el circuito interactivo en Tinkercad. Haz clic en el siguiente enlace para acceder: Señal de Advertencia - Proyecto en Tinkercad.
Componentes Necesarios
Para realizar este proyecto, necesitarás los siguientes componentes:
- 1 x Arduino UNO
- 1 x LED Verde
- 2 x LEDs Rojos
- 1 x Pulsador
- 3 x Resistencias de 220 Ω
- 1 x Resistencia de 10 kΩ
- Cables y protoboard
Todos los materiales necesarios los encontrarás en los siguientes enlaces:
- Kit de Arduino Uno R3 - Incluye todo lo necesario
- Kit de módulos de sensores y componentes - Compatible con Arduino
Configuración del Circuito
Diagrama de Conexión
Conexiones:
- LEDs:
- Conecta el cátodo del LED verde al pin 3 de Arduino.
- Conecta el cátodo de un LED rojo al pin 4 de Arduino y el otro LED rojo al pin 5.
- Conecta los ánodos de los LEDs a resistencias de 220 Ω y luego a GND.
- Pulsador:
- Conecta un terminal del pulsador al pin digital 2 de Arduino.
- Conecta el otro terminal del pulsador a GND a través de una resistencia de 10 kΩ.
- Conecta el punto común entre la resistencia y el pulsador a 5V.
Código para Controlar la Señal de Advertencia con LEDs
¡Aquí tienes el código completo! Puedes copiarlo fácilmente haciendo clic en el botón "Copiar Código".
// Declaramos la variable para almacenar el estado del pulsador
int switchState = 0;
void setup() {
pinMode(3, OUTPUT); // LED verde
pinMode(4, OUTPUT); // LED rojo del medio
pinMode(5, OUTPUT); // LED rojo de la derecha
pinMode(2, INPUT); // Pulsador
}
void loop() {
switchState = digitalRead(2); // Leer el estado del pulsador
if (switchState == LOW) {
// El pulsador no está presionado
digitalWrite(3, HIGH); // Encender LED verde
digitalWrite(4, LOW); // Apagar LED rojo del medio
digitalWrite(5, LOW); // Apagar LED rojo de la derecha
} else {
// El pulsador está presionado
digitalWrite(3, LOW); // Apagar LED verde
digitalWrite(4, HIGH); // Encender LED rojo del medio
digitalWrite(5, LOW); // Apagar LED rojo de la derecha
delay(250); // Pausa de un cuarto de segundo
digitalWrite(4, LOW); // Apagar LED rojo del medio
digitalWrite(5, HIGH); // Encender LED rojo de la derecha
delay(250); // Pausa de un cuarto de segundo
}
}
Explicación del Código
A continuación, explicamos cada línea del código para ayudarte a comprender su funcionamiento y a desarrollar un pensamiento crítico sobre su estructura y lógica:
- int switchState = 0;: Declara una variable llamada
switchStatepara almacenar el estado del pulsador. Inicialmente, se le asigna el valor 0, lo que indica que el pulsador no está presionado. - pinMode(pin, mode): Esta función configura los pines como entradas o salidas. Los pines 3, 4 y 5 están configurados como salidas para controlar los LEDs, mientras que el pin 2 está configurado como entrada para leer el estado del pulsador.
- digitalRead(pin): Esta función lee el estado del pin 2, que está conectado al pulsador. Devuelve
HIGHsi el pulsador no está presionado yLOWsi está presionado. - if (switchState == LOW) { ... } else { ... }: Esta estructura condicional verifica si el pulsador está presionado o no. Si está presionado, los LEDs rojos parpadean secuencialmente; de lo contrario, el LED verde se enciende.
- digitalWrite(pin, value): Esta función establece el estado de los pines digitales como
HIGHoLOW. Se utiliza para encender o apagar los LEDs dependiendo del estado del pulsador. - delay(ms): Introduce una pausa de 250 milisegundos entre los cambios de estado de los LEDs rojos cuando el pulsador está presionado, creando un efecto de parpadeo.
Problemas Comunes y Soluciones
- Los LEDs no se encienden: Verifica que las conexiones sean correctas y que los LEDs estén conectados en la polaridad correcta. Asegúrate de que las resistencias sean del valor adecuado.
- El pulsador no responde: Asegúrate de que el pulsador esté conectado correctamente al pin digital 2 de Arduino y que el circuito de pull-down esté configurado adecuadamente.
- El parpadeo de los LEDs es irregular: Revisa el valor de
delay()y ajusta el tiempo según sea necesario para obtener un efecto de parpadeo deseado.
Desafío para el Usuario
¿Cómo podrías modificar el proyecto para que los LEDs parpadeen de manera más rápida o más lenta según la duración del pulsador presionado? ¡Déjanos tu idea en los comentarios!
Podrías usar la función millis() para medir el tiempo que el pulsador está presionado y ajustar el tiempo de delay() dinámicamente. Aquí tienes un ejemplo:
// Añade estas líneas al código existente
unsigned long buttonPressTime = 0; // Tiempo de pulsador presionado
void loop() {
switchState = digitalRead(2);
if (switchState == LOW) {
buttonPressTime = millis(); // Guardar el tiempo actual
} else {
unsigned long currentTime = millis();
unsigned long pressDuration = currentTime - buttonPressTime;
if (pressDuration < 1000) {
delay(100); // Parpadeo rápido
} else {
delay(500); // Parpadeo lento
}
}
}
¡Espero que disfrutes creando este proyecto tanto como yo disfruto compartiéndolo contigo! Recuerda que la práctica hace al maestro, así que sigue experimentando y adaptando este código a nuevas ideas. ¡Nos encantaría ver tus creaciones! 🚀
Si te ha gustado este artículo, por favor compártelo y suscríbete a nuestro blog para más proyectos interesantes. ¡Hasta la próxima aventura tecnológica!












