Control de Variables con Pulsadores y Visualización en Pantalla LCD con Arduino

En este tutorial aprenderás a manejar una variable de tipo flotante o double utilizando tres pulsadores y una pantalla LCD. 

El sistema está diseñado para que uno de los pulsadores permita incrementar el valor de la variable, mientras que otro pulsador lo decremente. Sin embargo, el funcionamiento está condicionado por un tercer pulsador, que actúa como botón de confirmación. Hasta que este botón no sea accionado, no será posible modificar el valor de la variable ni mostrarlo en la pantalla LCD. Una vez confirmado, podrás utilizar los pulsadores de incremento y decremento para ajustar el valor, que se actualizará y visualizará en la pantalla LCD. Este tutorial te guiará paso a paso para implementar esta lógica, combinando hardware y software de forma efectiva, lo que lo convierte en un excelente ejercicio para fortalecer tus conocimientos en Arduino.

Materiales usados:

  1. Tarjeta arduino Uno
  2. Placa de pruebas
  3. Tres (3) pulsadores de cuatro (4) terminales
  4. Tres (3) resistencia de 220 Ohmnios
  5. Pantalla LCD I2C 16x2

Diagrama de conexión:

Pines de conexión:

  • Pantalla LCD I2C:
    • SDAA4
    • SCLA5
    • VCC5V
    • GNDGND
  • Pulsadores:
    • Incremento: D4
    • Decremento: D3
    • Confirmación: D2

Código de programación:

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x20,16,2);

double contador = 0;

int btn_ok = 2;
int btn_dec = 3, btn_inc = 4;

int status_btn_ok = false;

void setup()
{
  lcd.init();
  lcd.backlight();
  
  pinMode(btn_ok, INPUT);
  pinMode(btn_dec, INPUT);
  pinMode(btn_inc, INPUT);
 
  Serial.begin(9600);
}

void loop()
{
  if(digitalRead(btn_ok) == 1){
    status_btn_ok = true;
  }
  
  while(status_btn_ok){
    lcd.setCursor(0,0);
    lcd.print(contador);
    if(digitalRead(btn_dec) == 1){
      contador = contador - 0.1;
    }else if(digitalRead(btn_inc) == 1){
      contador = contador + 0.1;
    }
    break;
  }
}

Este código es un programa en Arduino que permite controlar una variable de tipo double mediante tres pulsadores y visualizar su valor en una pantalla LCD con interfaz I2C. Aquí se explica paso a paso el funcionamiento del código:

Declaración de librerías y variables

Se incluye la librería LiquidCrystal_I2C.h para manejar la pantalla LCD con comunicación I2C. Luego, se crea un objeto lcd que inicializa la pantalla con la dirección I2C 0x20, y se define el tamaño de la pantalla como 16 columnas y 2 filas.

La variable contador es de tipo double y se inicializa en 0. Se utilizan tres variables (btn_ok, btn_dec, btn_inc) para asociar los pines digitales 2, 3 y 4 del Arduino con los tres pulsadores: el de confirmación, el de decremento y el de incremento, respectivamente. También se declara una variable booleana status_btn_ok para verificar si el pulsador de confirmación ha sido presionado.

Configuración inicial en setup()

En la función setup():

  1. Inicialización de la pantalla LCD: Se llama a los métodos lcd.init() y lcd.backlight() para inicializar la pantalla y encender la retroiluminación.
  2. Configuración de los pines: Los tres pines correspondientes a los pulsadores se configuran como entradas mediante pinMode().
  3. Comunicación Serial: Se inicializa el puerto serie con Serial.begin(9600) para posibles depuraciones o monitoreos desde la computadora.

Lógica principal en loop()

En la función loop() se implementa la lógica para manejar los pulsadores y la interacción con la variable contador:

  1. Detección del pulsador de confirmación:
    • Se verifica si el pulsador conectado al pin btn_ok (pin 2) ha sido presionado mediante digitalRead(btn_ok) == 1.
    • Si el pulsador es presionado, se cambia el estado de status_btn_ok a true. Esto indica que el programa puede comenzar a mostrar y modificar el valor de contador.
  2. Bucle de control del contador:
    • Si status_btn_ok es true, el programa entra en un bucle while donde se visualiza y modifica el valor de la variable contador.
    • En cada iteración del bucle:
      • Se muestra el valor actual de contador en la pantalla LCD con lcd.setCursor(0,0) y lcd.print(contador).
      • Se verifica si alguno de los otros pulsadores ha sido presionado:
        • Si el pulsador de decremento (btn_dec) es presionado, el valor de contador se reduce en 0.1.
        • Si el pulsador de incremento (btn_inc) es presionado, el valor de contador aumenta en 0.1.
    • Después de procesar los pulsadores, se utiliza break para salir del bucle while. Sin embargo, este comportamiento podría impedir que el valor se modifique continuamente mientras el pulsador está presionado.

Aspectos clave del código

  1. Inicialización de la pantalla LCD:
    • Se configura para mostrar datos al usuario y permite actualizar dinámicamente el valor de contador.
  2. Uso de pulsadores:
    • Los pulsadores se utilizan para confirmar, incrementar o decrementar el valor de la variable.
    • Es importante tener resistencias de pull-down para evitar lecturas erróneas en los pines de entrada.
  3. Control del flujo:
    • status_btn_ok actúa como un interruptor que permite modificar la variable únicamente después de que el pulsador de confirmación ha sido presionado.

 

Para entender mejor este tutorial puede acceder a la simulación mediante el siguiente enlace: https://www.tinkercad.com/things/6MD8mdA36mm-control-de-variables-con-arduino-y-pulsadores


(0) Comentarios

No registra comentarios, se el primero en comentar.
Publicar

Pública tu duda o comentario

Resuelve tus dudas con la comunidad.

*Obligatorio*
Total de impresiones: 112