¡Hazlo Fácil! Menú en Arduino LEDs y Servo con Teclado

Agrega de forma fácil el control de LEDs y un servomotor utilizando un Menú con Arduino

En el artículo anterior, exploramos cómo crear un menú interactivo con Arduino utilizando un teclado matricial 4×4 y una pantalla LCD 16×2. Ahora, vamos a llevar tu proyecto al siguiente nivel añadiendo LEDs y un servo para realizar acciones más dinámicas y visuales. Esta continuación te guiará a través de los pasos para integrar estos componentes adicionales y mejorar la interacción y funcionalidad de tu sistema Arduino.

Menú con arduino, control de LED y servomotor

Componentes Adicionales:

Para esta actualización, necesitarás los siguientes componentes:

Paso 1: Conexión de los LEDs y el Servo

Conexiones de los LEDs:

  • LED Rojo: Conectar el ánodo al pin 4 de Arduino y el cátodo a GND a través de una resistencia de 330Ω.
  • LED Amarillo: Conectar el ánodo al pin 3 de Arduino y el cátodo a GND a través de una resistencia de 330Ω.
  • LED Verde: Conectar el ánodo al pin 2 de Arduino y el cátodo a GND a través de una resistencia de 330Ω.

Conexión del Servo:

  • Conectar el cable de señal del servo al pin 5 de Arduino.
  • Conectar el cable de alimentación (rojo) a 5V y el cable de tierra (negro) a GND en Arduino.
Pinout servomotor SG90

Tabla de conexiones:

Componente Descripción Pin Arduino Otros
Teclado Matricial 4×4 Fila 1 9
Fila 2 8
Fila 3 7
Fila 4 6
Columna 1 13
Columna 2 12
Columna 3 11
Columna 4 10
LED Rojo Ánodo 4 Cátodo a GND vía 330Ω
LED Amarillo Ánodo 3 Cátodo a GND vía 330Ω
LED Verde Ánodo 2 Cátodo a GND vía 330Ω
Servo Motor Señal 5 VCC a 5V, GND a GND
LCD 16×2 (I2C) SDA A4
SCL A5
VCC 5V
GND GND

Paso 2: Modificación del Código

A continuación, se muestran los cambios realizados en el código para integrar los LEDs y el servo motor con el teclado matricial 4×4 y la pantalla LCD 16×2.

Declaración de Pines para LEDs y Servo:

// Pines para los LEDs
const int LED_ROJO_PIN = 4;
const int LED_AMARILLO_PIN = 3;
const int LED_VERDE_PIN = 2;

// Pin para el Servo
const int SERVO_PIN = 5;
Servo servo;

Configuración de Pines en setup():

// Configurar los pines de los LEDs como salida
pinMode(LED_ROJO_PIN, OUTPUT);
pinMode(LED_AMARILLO_PIN, OUTPUT);
pinMode(LED_VERDE_PIN, OUTPUT);

// Inicializar el servo
servo.attach(SERVO_PIN);

Control de LEDs y Servo en el Menú:

void loop() {
  char tecla = teclado.getKey();

  if (tecla) {
    // Apagar todos los LEDs antes de encender el LED correspondiente
    digitalWrite(LED_ROJO_PIN, LOW);
    digitalWrite(LED_AMARILLO_PIN, LOW);
    digitalWrite(LED_VERDE_PIN, LOW);
    
    lcd.clear();  // Limpia la pantalla LCD antes de mostrar la nueva opción
    switch(tecla) {
      case '1':
        lcd.setCursor(0, 0);
        lcd.print("Opcion 1");
        lcd.setCursor(0, 1);
        lcd.print("Mensaje 1");
        // Encender LED Rojo
        digitalWrite(LED_ROJO_PIN, HIGH);
        break;
      case '2':
        lcd.setCursor(0, 0);
        lcd.print("Opcion 2");
        lcd.setCursor(0, 1);
        lcd.print("Mensaje 2");
        // Encender LED Amarillo
        digitalWrite(LED_AMARILLO_PIN, HIGH);
        break;
      case '3':
        lcd.setCursor(0, 0);
        lcd.print("Opcion 3");
        lcd.setCursor(0, 1);
        lcd.print("Mensaje 3");
        // Encender LED Verde
        digitalWrite(LED_VERDE_PIN, HIGH);
        break;
      case '4':
        lcd.setCursor(0, 0);
        lcd.print("Opcion 4");
        lcd.setCursor(0, 1);
        lcd.print("Control Servo");
        // Mover el servo a 90 grados
        servo.write(90);
        delay(1000); // Espera un segundo
        // Mover el servo de vuelta a 0 grados
        servo.write(0);
        break;
      case 'A':
        lcd.setCursor(0, 0);
        lcd.print("Menu Principal");
        lcd.setCursor(0, 1);
        lcd.print("1. Opcion 1");
        break;
      default:
        lcd.setCursor(0, 0);
        lcd.print("Tecla no valida");
        delay(1000);  // Espera para mostrar el mensaje de error
        lcd.clear();
        lcd.setCursor(0, 0);
        lcd.print("Seleccionar Menu");
        lcd.setCursor(0, 1);
        lcd.print("1. Opcion 1");
        break;
    }
  }
}

Explicación del Código:

  • Control de LEDs: Cada opción del menú (‘1’, ‘2’, ‘3’) enciende un LED específico (rojo, amarillo o verde), proporcionando una señal visual clara de la opción seleccionada.
  • Control del Servo: Al seleccionar la opción ‘4’, el servo se mueve a 90 grados y luego regresa a 0 grados. Esto simula una acción mecánica, como abrir o cerrar una puerta, y puede personalizarse para diferentes aplicaciones.
  • Optimización Visual con la Pantalla LCD 16×2: La pantalla LCD 16×2 proporciona una interfaz clara para los usuarios, mostrando opciones del menú y confirmaciones de acciones. Es una herramienta poderosa para mejorar la interacción en proyectos con Arduino.

Simulación con Tinkercad

A continuación, te proporcionamos la simulación en Tinkercad, donde podrás visualizar todas las conexiones y el código completo del proyecto. Esta herramienta es ideal para realizar pruebas y ajustes en tu configuración antes de ensamblar el circuito de manera física, ahorrándote tiempo y evitando posibles errores en el montaje.

Instrucciones para la simulación en Tinkercad:

  • Para ver el código: Haz clic en el botón «Código» en la esquina superior derecha de la interfaz.
  • Para correr la simulación: Haz clic en «Iniciar simulación» y observa cómo funcionan los componentes en tiempo real.

Funcionamiento del menú en el teclado:

  • Botón 1: Enciende el LED verde.
  • Botón 2: Enciende el LED amarillo.
  • Botón 3: Enciende el LED rojo.
  • Botón 4: Activa el servomotor, moviéndolo a 90 grados y luego regresándolo a su posición original.

Explora la simulación y experimenta con las opciones del menú para comprender mejor cómo cada acción controla los LEDs y el servomotor.

Conclusión

Al añadir LEDs y un servo a tu proyecto Arduino con teclado matricial 4×4 y pantalla LCD 16×2, no solo mejoras la interacción del sistema, sino que también abres la puerta a múltiples aplicaciones prácticas. Desde señales visuales hasta movimientos mecánicos, estas adiciones permiten que tu proyecto se convierta en una plataforma mucho más robusta y versátil. Con estos elementos, puedes llevar tus habilidades de programación y electrónica al siguiente nivel.

Si estás en México y necesitas componentes electrónicos, te invitamos a visitar nuestra tienda de electrónica en la CDMX. ¡Te esperamos con todo lo que necesitas para tus proyectos!

¡Empieza a experimentar con estos componentes y observa cómo transforman tu proyecto!

Documentación y ligas externas

Ficha técnica: SG90 Datasheet

Github: Descarga el proyecto para arduino menú con teclado matricial 3×4 aquí.

Related Posts

¿Qué Son las Compuertas Lógicas? La Base de la Electrónica Digital

Aprende los distintos tipos de compuertas lógicas y domina la innovación en cada circuito. Con técnicas avanzadas impulsa tu creatividad y optimiza soluciones en electrónica digital.

¡Controla Arduino desde tu PC con HTML y JavaScript! 🚀

Controla tu Arduino desde la web usando HTML y JavaScript. ¡Mueve servomotores y motores DC con comandos fáciles! Aprende más aquí.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

You Missed

¿Qué Son las Compuertas Lógicas? La Base de la Electrónica Digital

¿Qué Son las Compuertas Lógicas? La Base de la Electrónica Digital

¡Controla Arduino desde tu PC con HTML y JavaScript! 🚀

¡Controla Arduino desde tu PC con HTML y JavaScript! 🚀

Transforma Tu Proyecto con el Sensor de Voltaje 0-25V para Arduino 🚀🔋

Transforma Tu Proyecto con el Sensor de Voltaje 0-25V para Arduino 🚀🔋

Guía Definitiva: Aprende a Usar un Termopar Tipo K con Módulo MAX6675

Guía Definitiva: Aprende a Usar un Termopar Tipo K con Módulo MAX6675

🛠️ Todo sobre Resistencias: Tipos, Usos y Cómo Leerlas Eficazmente ⚡

🛠️ Todo sobre Resistencias: Tipos, Usos y Cómo Leerlas Eficazmente ⚡

¡Domina el Divisor de Tensión! ⚡️ Aprende a Calcularlo Fácilmente

¡Domina el Divisor de Tensión! ⚡️ Aprende a Calcularlo Fácilmente