21 enero, 2020

Termómetro Arduino (Display) 3/4

Llega el momento de hablar del elemento que nos permitirá ver la temperatura, podríamos haber usado la consola pero la idea es independizarse del PC, y dentro de los diferentes interfaz de visualización:segmentos de led, barras de leds, LCDs, pantallas tactiles. Usaremos un LCD 20×4 con conexión I2C.

LCD-I2C PCF8574

La conexión del LCD podría realizarse directamente al Bus de 16 hilos o añadiendo un interfaz LCD-I2c (PCF8574) que nos permite una comunicación de 2 Hilos (ademas de la masa y lo 5V) y ademas en este BUS podríamos tener varios dispositivos hablando con esos dos Hilos, por eso sera el método que utilizaremos.

Se puede ver más información de los displays en el cuaderno técnico «comunicación exterior»

La conexión es muy sencilla, la alimentación a masa y +5V y el BUS (SDA y SCL) a las correspondientes patilla del arduino que en el UNO (es el que estamos utilizando) son A4 para SDA (Serial Data) y SCL (Reloj) en el A5 .

OJO se trata de los pines Analogicos, por eso anteponemos la A

La programación es muy sencilla, lo primero que hacemos es crear el objeto e inicializar el display, indicando que se active la retroiluminación.

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,20,4); // Poner la dirección localizada con el scaner I2C 

lcd.backlight(); //Activar la retroiluminación.
lcd.init();   // Iniciar el LCD para trabajar

Es interesante conocer la dirección del display, dispositivo I2C, que normalmente es 0x3F o como es nuestro caso 0x27, pero también podemos localizarla con el programa Scanner-I2C que nos dara la dirección de todos los dispositivos I2C que se encuentren el el BUS.

Teniendo en cuenta que el cursos se inicia en 0,0 y se posicionando según escribamos en la siguiente posición o en la posición que le indiquemos. Las funciones básicas y que más utilizaremos son:

  • clear(): Para limpiar la pantalla.
  • print(TEXTO): imprime el texto y reposiciona cursos.
  • setCursos(columna, fila): Posiciona el cursor.

Si se desea obtener todo el potencial del DISPLAY, se puede acceder a las especificaciones, nuestro caso HD44780, y programarlo directamente con sus comandos pero el uso de librerías sino queremos alguna opción que no tenga la librería nos facilita mucho las cosas.

Ejemplo

El ejemplo, esquema descrito arriba, es muy sencillo sondea el valor del potenciometro y lo escribe en la pantalla.

#include <Wire.h>
//#include <LiquidCrystal_PCF8574.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,20,4); // Poner la dirección localizada con el scaner I2C 

void setup() 
{
  lcd.backlight(); // Ponemos luz trasera
  lcd.init();
}

void loop() 
{
  lcd.clear();
  lcd.print(" www.pinguytaz.net");
  lcd.setCursor(0, 2); // Ponemos el cursos en la linea 1
  lcd.print("Display: ");
  lcd.setCursor(9, 2); 

  lcd.print((millis()/1000)); // Segundos desde el reset.
  lcd.print(" seg.");

  lcd.setCursor(0, 3); 
  lcd.print("Potenciometro: ");
  lcd.print(analogRead(A0));
  delay(1500);
}

Deja un comentario

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

Información básica sobre protección de datos

  • Responsable Javier .
  • Finalidad Moderar los comentarios. Responder las consultas.
  • Legitimación Su consentimiento.
  • Destinatarios Hostinger.es.
  • Derechos Acceder, rectificar y suprimir los datos.
  • Información Adicional Puede consultar la información detallada en el Aviso Legal.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.