Los proyectos en los que se requiere la entrada del usuario para ejecutar el código Arduino, los teclados se usan normalmente. Los teclados son la forma corta de los teclados que se pueden usar para realizar las funciones necesarias como ingresar cualquier valor de personaje o valor numérico. Del mismo modo, podemos usar un módulo de visualización LCD para mostrar la entrada, ya sea dada manualmente, utilizando un teclado o por cualquier sensor en el código Arduino. Además, las salidas también se pueden mostrar en la pantalla LCD para una mejor interpretación del código Arduino. Hemos realizado un pequeño proyecto de teclado de interfaz con Arduino y mostrando la entrada del teclado en la pantalla LCD.
Cómo interactuar con el teclado con Arduino
El teclado normalmente viene en dos tamaños, uno es 3 × 3 y el otro es 4 × 4, así que aquí en este proyecto estamos usando un teclado 4 × 4. El esquema del circuito de la interfaz del teclado con Arduino y que muestra la entrada en LCD es:
Implementación de hardware
Los componentes que hemos utilizado para mostrar la entrada del teclado en LCD usando Arduino son:
- Arduino Uno
- Conectando cables
- Potenciómetro
- Un teclado de membrana 4 × 4
- Pantalla de cristal líquido
- Tablero de circuitos
Hemos usado la placa de pan para interfactar la LCD con Arduino, mientras que hemos conectado directamente el teclado con Arduino Uno Board. Esto puede ilustrarse con la figura que se proporciona a continuación y hemos utilizado el potenciómetro para controlar el brillo de la pantalla LCD.
Código Arduino para mostrar la entrada del teclado en LCD
En este proyecto, el programa Arduino calcula un índice de masa corporal (IMC) tomando el peso y la altura de la persona como un aporte del teclado. Para calcular el IMC, hemos utilizado la siguiente fórmula:
BMI = (peso [kg]/altura [cm]*altura [cm])*10000;
Para calcular el IMC en un sistema métrico y principalmente la altura se mide en centímetros, por lo que hemos convertido la altura en metros multiplicando todo el resultado por 10,000.
#Include // Biblioteca para el teclado
#Include // Biblioteca para LCD
LiquidCrystal LCD (A1, A0, 5, 4, 3, 2); // Arduino Pins para LCD
Const byte filas = 4; // Inicializando las filas del teclado
const byte cols = 4; // inicializando las columnas del teclado
Char teclas [filas] [cols] = // dando valores a cada tecla del teclado
'1', '2', '3', '&',
'4', '5', '6', 'B',
'7', '8', '9', 'c',
'*', '0', '=', 'd'
;
byte rowpins [filas] = 13,12,11,10; // Arduino Pins para filas de teclado
byte colpins [cols] = 9,8,7,6; // Arduino Pins para columnas de teclado
Keypad MyKeypad = Keypad (MakeKeyMap (teclas), Rowpins, Colpins, filas, cols); /* función para mapear los valores en las teclas*/
// Asignación del tipo de datos booleanos a las variables e inicializándolas con cero
boolean presente = falso;
boolean siguiente = falso;
Boolean final = falso;
Cadena num1, num2; // variables para mostrar la entrada entero del teclado
flotante Ans; // Variable para almacenar el resultado del IMC
Char Op; // Asignación del tipo de datos de caracteres para el carácter utilizado para el IMC
Configuración vacía ()
lcd.comenzar (16,2); // Inicializando la pantalla LCD
lcd.setCursor (3,0); // Configuración del lugar para mostrar la primera línea de datos
lcd.imprimir ("Linuxhint"); // datos que se mostrarán
lcd.setCursor (1,1); // Configuración del lugar para mostrar la segunda línea de datos
lcd.imprimir ("calculadora de IMC"); // datos que se mostrarán
retraso (2000); // 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 mostrar la segunda línea de datos
lcd.imprimir ("Ingrese WGT & HGT"); // Los datos se mostrarán
bucle void ()
// Uso de la función GetKey para obtener el valor de la tecla Presionada
Char Key = MyKeypad.obtener la clave();
if (clave != NO_KEY && (Key == '1' || Key == '2' || Key == '3' || Key == '4' || Key == '5' || Key == '6' || tecla == '7' || tecla == '8' || tecla == '9' || tecla == '0')) // Verifique qué tecla se presiona al verificar su valor entero
si está presente != verdadero)
num1 = num1 + tecla; // almacenar el valor de la tecla presionada en num1
float numlength = num1.longitud();
lcd.setCursor (0, 1); /* Disponir el lugar donde se mostrará la primera entrada*/
lcd.imprimir (num1); // Impresión del primer número ingresado
demás
num2 = num2 + tecla; // almacenar el valor de la segunda tecla presionada en num2
flotante numlength = num2.longitud();
lcd.setCursor (4, 1);/*Disponiendo el lugar donde se mostrará la segunda entrada*/
lcd.imprimir (num2); // Impresión del segundo número ingresado
final = verdadero;
// Condición si se presiona la tecla que tiene el operador asignado para el cálculo del IMC
else if (presente == false && key != No_key && (key == '&'))
if (presente == falso)
presente = verdadero;
op = clave; // Guardar la tecla presionada para calcular el IMC
lcd.setCursor (3,1); // establecer el lugar para que se muestren los datos
lcd.imprimir (op); // Mostrar el personaje utilizado para el IMC
// Condiciones para calcular el IMC
else if (final == true && key != No_key && key == '=')
if (op == '&')
Ans = (num1.tofloat () / (num2.tofloat ()*num2.tofloat ()))*10000; // Fórmula para calcular el IMC
lcd.setCursor (0,2); // establecer el lugar para que se muestren los datos
lcd.Imprimir ("Su IMC es:"); // Datos que se mostrarán
lcd.imprimir (Respuesta); // Mostrar la respuesta para el cálculo del IMC
lcd.clare (); // borde la pantalla LCD
if (Ans<18.5) // if BMI is less than 18.5 then you are under weight
lcd.setCursor (0,0);
lcd.imprimir ("usted es");
lcd.setCursor (0,1);
lcd.imprimir ("bajo peso");
más si (Ans<25)// if BMI is less than 25 then you have normal weight
lcd.setCursor (0,0);
lcd.imprimir ("tienes");
lcd.setCursor (0,1);
lcd.imprimir ("peso normal");
más si (Ans<30) if BMI is less than 30 then you are over weight
lcd.setCursor (0,0);
lcd.imprimir ("usted es");
lcd.setCursor (0,1);
lcd.Imprimir ("sobre peso")
else // de lo contrario eres obeso
lcd.imprimir ("Eres obeso");
retraso (2000); // tiempo o cuáles se mostrarán los datos
// condición para borrar la pantalla LCD o comenzar el código Arduino nuevamente
más si (clave != No_key && key == 'c')
lcd.claro();
presente = falso;
final = falso;
configurar (); // llamando a la función de configuración para iniciar el código nuevamente
num1 = "";
num2 = "";
Ans = 0;
op = ";
Para calcular el IMC, hemos compilado el código Arduino de tal manera que primero hemos definido las bibliotecas del teclado y LCD y los pines del Arduino se asignan para LCD. A continuación, después de inicializar la dimensión del teclado, le hemos dado un valor a cada clave del teclado creando una cadena.
A continuación, hemos asignado el teclado PINS a Arduino y el uso de la función de teclado asignó los valores a las teclas del teclado. En el futuro, hemos declarado algunas variables que usamos para tomar la entrada para el teclado y almacenar el resultado para el cálculo del IMC.
En la función de configuración, hemos mostrado algunos datos en la LCD y llegando a la función de bucle, hemos utilizado la condición if para las teclas que tienen valores enteros para reconocer qué valor se ingresa.
El programa toma las dos entradas del usuario uno es peso, y la otra es la altura y cuando la tecla designada para el IMC calculará el IMC y le dirá el estado decidiendo a través del valor del IMC.
Para restablecer el programa, hemos definido una clave que cuando se presiona, borrará la LCD y se llamará a la función de configuración para reiniciar el código Arduino. Aquí en el código hemos asignado la tecla "A" del teclado para realizar el cálculo del IMC y la tecla "C" del teclado se usa para borrar la pantalla LCD.
Implementación de hardware para mostrar la entrada del teclado en LCD
Hemos publicado la imagen a continuación de la implementación de hardware para mostrar la entrada del teclado en el LCD.
El código Arduino le pedirá al usuario peso y altura y utilizando el teclado, el usuario ingresará valores para el peso y la altura como en la imagen publicada a continuación.
A continuación, calcular el IMC Presione la tecla "A" del teclado y el IMC se mostrará en la pantalla LCD como en la figura a continuación.
Según el valor del IMC, el código Arduino dará el estado del IMC y se puede ver en la figura publicada a continuación.
Conclusión
Cuando tenemos que dar las entradas al programa Arduino manualmente, tenemos que interactuar un teclado con Arduino. Los teclados son versiones más pequeñas de teclados que pueden realizar algunas funciones básicas como dar entradas a cualquier dispositivo. Estas entradas pueden ser caracteres o un entero y las teclas del teclado son fácilmente configurables. En este artículo, hemos mostrado una entrada de teclado en la pantalla LCD compilando un código de calculadora de IMC en la que el código Arduino requerido por el Código Arduino: peso y altura.