This is default featured slide 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

Mostrando las entradas con la etiqueta Pulsador. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Pulsador. Mostrar todas las entradas

domingo, 18 de agosto de 2024

Proyecto Inicial: Señal de Advertencia con LEDs y Arduino - Aprende a Crear un Sistema de Señalización

Proyecto Inicial: Señal de Advertencia con LEDs y Arduino - Proyecto Educativo

¡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:

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:

  1. int switchState = 0;: Declara una variable llamada switchState para almacenar el estado del pulsador. Inicialmente, se le asigna el valor 0, lo que indica que el pulsador no está presionado.
  2. 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.
  3. digitalRead(pin): Esta función lee el estado del pin 2, que está conectado al pulsador. Devuelve HIGH si el pulsador no está presionado y LOW si está presionado.
  4. 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.
  5. digitalWrite(pin, value): Esta función establece el estado de los pines digitales como HIGH o LOW. Se utiliza para encender o apagar los LEDs dependiendo del estado del pulsador.
  6. 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!