Cómo crear menú en LCD usando Arduino Uno

Cómo crear menú en LCD usando Arduino Uno
Para usar los microcontroladores para realizar diferentes tareas, la forma más efectiva es usar las placas Arduino a medida que facilitan la interfaz con el microcontrolador. El Arduino proporciona a sus usuarios una gran variedad de tableros Arduino que tienen diferentes tipos de microcontroladores. Además, los microcontroladores pueden estar interactuados con una serie de periféricos como LCD y sensores con la ayuda de los tableros Arduino. Al interactuar diferentes dispositivos con Arduino, podemos hacer varios proyectos. Por ejemplo, como hacer un ventilador controlado con temperatura, medir la temperatura, hacer una alarma de incendio y muchos más. Hemos creado un pequeño proyecto para crear un menú usando Arduino IDE y mostrar ese menú en LCD. Además, los menús se pueden usar al diseñar un sistema automatizado del hogar o cualquier sistema de monitoreo.

Cómo crear un menú usando Arduino en LCD

Crear un menú usando Arduino puede ser útil para realizar múltiples tareas cuando sea necesario. Prácticamente podemos ver el uso de menús en nuestros teléfonos celulares o cualquier dispositivo inteligente capaz de hacer algunas funciones específicas. En resumen, el menú es una lista de opciones o acciones que uno puede hacer con el dispositivo respectivo, por lo que hemos utilizado el siguiente hardware para crear un menú usando Arduino en LCD:

  • Arduino Uno
  • Conectando cables
  • Un potenciómetro
  • Cuatro botones de presión
  • Un LED
  • Una pantalla de cristal líquido (16 × 2)
  • Un timbre
  • Un sensor de temperatura (LM35)

Los esquemas se dan a continuación:

Ensamblaje de hardware para crear menú usando Arduino

Hemos ensamblado los componentes de tal manera que primero hemos colocado todos los componentes en una placa de pan y luego utilizando los cables de conexión cada componente está interconectado con Arduino. Hemos publicado una imagen a continuación para el conjunto de hardware a través del cual las conexiones de los componentes se pueden entender fácilmente.

Los cables verdes conectan los pasadores de datos de la pantalla LCD con Arduino, mientras que los cables grises conectan los botones degüenza con Arduino. El sensor de temperatura está conectado directamente al Arduino sin ningún cables de conexión porque los cables de conexión a veces distorsionan la salida del sensor. Los componentes se encienden usando el pasador de 5 voltios de Arduino.

La secuencia del botón se menciona en la imagen de arriba.

Código Arduino para crear un menú

Hemos creado un menú que tiene tres opciones uno es encender y apagar el LED, el segundo es medir la temperatura y el tercero suena una alarma:

#Include // Biblioteca para la pantalla LCD
LiquidCrystal LCD (7,6, 5, 4, 3, 2); // Arduino Pins para la pantalla LCD
int vcc = a0; // suministro de pin a0 de LM35
int vout = a1; // pin A1 para la salida del LM35
int gnd = a2; // pin A2 para la salida del LM35
Flotat Temp; // Variable para almacenar el valor de temperatura
valor flotante; // almacenar el valor del sensor de temperatura
const byte upbuttonpin = 12; // arduino pin para el botón
const byte downbuttonpin = 11; // arduino pin para el botón hacia abajo
const byte right buttonpin = 10; // arduino pin para el botón derecho
const byte leftButtonpin = 8; // arduino pin para botón izquierdo
const byte buzzerpin = 9; // arduino pin para timbres
const byte ledpin = 13; // arduino pin para LED
Cadena menuitems [] = // Creando la cadena de las opciones en el menú
"Switch LED",
"Temperatura",
"Buzzer Switch"
;
Funciones de menú voides (menú int, byte a la derecha, byte izquierda) / * Creación de las funciones de las opciones proporcionadas en el menú * /

if (menú == 1) // para la primera opción

if (derecha == 1) // Si se presiona el botón derecho

lcd.setCursor (0, 1); // Establecer el lugar para los datos en LCD
lcd.imprimir ("apagado"); // Imprimir la opción OFF
lcd.setCursor (10, 1); // Establecer el lugar para los datos en LCD
lcd.imprimir sobre <<");// move the cursor on the ON option
DigitalWrite (LEDPIN, High); // enciende el LED

if (izquierda == 1) // Si se presiona el botón izquierdo, entonces

lcd.setCursor (0, 1); // establecer el lugar para los datos en LCD
lcd.imprimir <<");// printing the off option
lcd.setCursor (10, 1); // Establecer el lugar para los datos en LCD
lcd.imprimir ("encendido"); // imprimir la opción ON
DigitalWrite (LEDPIN, Low); // Apagando el LED


if (menú == 2) // Si se selecciona la segunda opción en el menú

valor = anicoGread (vout); // Lectura de la salida del sensor
temp = valor*0.48; // Convertir valores analógicos a valores de temperatura
lcd.setCursor (0, 1); // Establecer el lugar para los datos en LCD
lcd.imprimir ("temperatura:"); // Mostrar los datos
lcd.setCursor (12, 1); // Establecer el lugar para los datos en LCD
lcd.imprimir (temp); // Mostrar el valor de la temperatura

if (menú == 3) // Si se selecciona la tercera opción

if (derecha == 1) // Si se presiona el botón derecho

lcd.setCursor (0, 1); // Establecer el lugar para los datos en LCD
lcd.imprimir "); // Impresión de la opción OFF
lcd.setCursor (10, 1); // Establecer el lugar para los datos en LCD
lcd.imprimir sobre <<");// move the cursor on the ON option
tono (buzzerpin, 125); // enciende el timbre

if (izquierda == 1) // Si se presiona el botón izquierdo

lcd.setCursor (0, 1); // Establecer el lugar para los datos en LCD
lcd.imprimir <<");// move the cursor on the off option
lcd.setCursor (10, 1); // Establecer el lugar para los datos en LCD
lcd.imprimir sobre "); // Impresión de la opción ON
noone (buzzerpin); // apagar el timbre



// Creación de la plantilla del menú
plantilla /* variable para el nombre de la opción y para el tamaño del menú* /
size_t menuitemssize (t (&) [numberOfSize]) return numberOfSize; /* nombre de opción de menú y el número de opciones*/
int numberOfMenuitems = MenuitemsSize (menuitems) - 1;
int centreRMenuitem = 0; // variable para almacenar la opción actual
int anteriorMenuitem = 1; // variable para almacenar la opción anterior
byte button_flag = 0;
Unsigned Long Anteriormillis = Millis ();
// función de configuración
Configuración vacía ()

PinMode (LEDPIN, salida); // Definición del modo PIN para LED
PinMode (VCC, salida); // Definición del modo PIN para el PIN de suministro para el sensor
PinMode (Vout, entrada); // Definición del modo PIN para el pin de salida del sensor
PinMode (GND, salida); // Definición del modo PIN para PIN de tierra del sensor
// Definición de los estados para los pasadores de suministro y tierra para los sensores
DigitalWrite (VCC, High); // Dar el estado de alto Pin A0 Arduino A0
DigitalWrite (GND, Low); // Dar el estado bajo Arduino A2 Pin
PinMode (UpButtonPin, input_pullup); // Asignando el botón Up input_pullup Modo
PinMode (downbuttonpin, input_pullup);/*Asignando el botón Up input_pullup*/
PinMode (RightButtonpin, input_pullup);/*Asignando el botón UP Input_pullup*/
PinMode (LeftButtonpin, input_pullup); /*Asignación del botón Up input_pullup*/
lcd.begin (16,2); // Inicializando las dimensiones de LCD
lcd.clare (); // borde la pantalla LCD
lcd.setCursor (0, 0); // Establecimiento de lugar para que los datos se muestren en LCD
lcd.imprimir ("bienvenido a"); // los datos que se mostrarán en LCD
lcd.setCursor (3, 1); // Configuración del lugar para que los datos se muestren en LCD
lcd.imprimir ("menú Arduino"); // Los datos se mostrarán en LCD
retraso (6000); // tiempo para el cual los datos se mostrarán en LCD
lcd.clare (); // borde la pantalla LCD
lcd.setCursor (0, 0); // Configuración del lugar para que los datos se muestren en LCD
lcd.Imprimir ("Linuxhint.com "); // Los datos se mostrarán en LCD
retraso (7000); // tiempo para el cual los datos se mostrarán en LCD
lcd.clare (); // borde la pantalla LCD

// Uso de condiciones if para definir la funcionalidad de cada botón
bucle vacío ()

if (digitalRead (RightButtonPin) == Low && Button_flag == 0)/ *Si se presiona el botón derecho */

MenuFunctions (CurrentMenuitem + 1, 1, 0); // mover un paso a la derecha
button_flag = 1;
Anteriormillis = Millis ();

if (digitalRead (LeftButtonPin) == Low && Button_Flag == 0)/*Si se presiona el botón izquierdo*/

MenuFunctions (CurrentMenuitem + 1, 0, 1);
button_flag = 1;
Anteriormillis = Millis ();

if (digitalRead (upbuttonpin) == low && button_flag == 0) /*Si se presiona el botón hacia arriba* /

++CurrentMenuitem;
if (currentMenuitem> numberOfMenuitems)

CurrentMenuitem = NumberOfMenuitems;

button_flag = 1;
Anteriormillis = Millis ();

else if (digitalRead (downbuttonpin) == low && button_flag == 0) /*Si se presiona el botón* /

CurrentMenuitem--;
if (currentMenuitem = 400)

Anteriormillis = Millis ();
button_flag = 0;

Para resumir el funcionamiento del código Arduino dado anteriormente, podemos decir que al principio, hemos asignado pines a LCD, sensor de temperatura, timbre y botones de presión. Luego hemos creado un menú al tener algunas opciones como el cambio de LED, la detección de temperatura y el cambio de timbre.

Hemos utilizado las condiciones IF para cada opción que hemos dado en el menú y después de eso hemos creado una plantilla para hacer el menú y definir algunas variables para recordar las opciones en el menú.

En la función de configuración, a todos los pines Arduino se les asigna sus modos y se inicializa la dimensión de la pantalla LCD.

Al llegar a la función de bucle hemos definido la funcionalidad de cada botón utilizado en el programa Arduino. Hay cuatro botones que se utilizan en este programa: dos son los botones de alternancia y los otros dos se usan como un interruptor de encendido/apagado para los dispositivos conectados.

Implementación de hardware para crear un menú usando Arduino Uno

Las imágenes de la salida del programa Arduino en hardware se publican en la secuencia del flujo del código Arduino. Para navegar en el menú, presione los botones "arriba" y "hacia abajo" para realizar funciones presione los botones "izquierda" y "derecha".

La primera opción del menú es el interruptor de LED:

Cuando el LED está en el estado fuera del estado:

Cuando se presione el botón derecho, se enciende el LED:

La segunda opción en el menú es la temperatura:

La siguiente opción es el cambio de timbre:

Cuando el timbre está en estado cuando se presiona el botón derecho:

El timbre se apaga cuando se presiona el botón izquierdo:

Conclusión

Para hacer diferentes proyectos en el nivel principiante o avanzado, la forma más factible que se le ocurre es usar la plataforma Arduino. Esta plataforma proporciona una variedad de opciones para los usuarios en función de los requisitos del proyecto. Del mismo modo, esta plataforma es una especie de paquete completo, ya que proporciona ambos tipos de software de asistencia y hardware. Entonces, hacer proyectos con Arduino ofrece la oportunidad de aprender y comprender diferentes conceptos sobre los circuitos. También hemos realizado un proyecto para crear un menú utilizando una placa Arduino Uno y mostrándolo en un LCD de 16 × 2.