Icono del sitio Programar fácil con Arduino

Mostrar datos de un sensor en un LCD con Arduino

mostrar datos de un sensor en un LCD con Arduino

Uno de los fragmentos de codigo que más se visita en esta web es el de «Texo en movimiento en un LCD con Arduino». A partir de este fragmento y apoyándonos en el fragmento de código «Leer el sensor de temperatura LM35 en Arduino» vamos a realizar otro fragmento donde vamos a mostrar datos de un sensor en un LCD con Arduino.

Le vamos a quitar el movimiento, para eso ya tenéis el primer fragmento, pero si que vamos a ver como mostrar un texto u otro dependiendo de unos rangos de temperatura.

Lo primero que debes hacer es montar el circuito del primer fragmento, el del LCD. Aquí tienes el esquema. A este circuito tenemos que añadirle el sensor de temperatura. Tan solo hay que poner la patilla izquierda a 5V, la del medio a un puerto analógico (en este ejemplo utilizaremos el A0) y la patilla derecha a la tierra (GND).

Una vez montado el esquema eléctrico solo nos queda la programación y el resultado también es una mezcla de los dos anteriores aunque vamos hacer alguna modificación:

La mayoría de sentencias las tienes explicadas en los artículos anteriores, lo que cambia es tras obtener la temperatura del sensor la guardamos en una variable y la mostramos por el LCD a través de la función lcd.print. En esta función concatenamos los textos que queremos que acompañen a la temperatura mediante el operador + y tenemos que convertir la temperatura a carácter ya que el valor que tenemos es un float, un numero decimal, eso lo realizamos mediante el método String(). En el argot de programación se dice que se hace un cast, convertimos un tipo a otro.

Para escribir la siguiente linea de nuestro LCD y que nos muestre el estado de la estancia, primero hemos inicializado el array textos con los diferentes estados que queremos mostrar y luego mediante una secuencia de instrucciones if else if… determinamos en que rango esta la temperatura y guardamos el valor en la variable indice que luego utilizaremos para acceder a la posición de nuestro array de textos.

Ponemos el cursor en la posición donde queremos escribir en el LCD con el método lcd.setCursor y escribimos como en el primer caso en nuestro LCD. Como pone en los comentarios del código la primera vez que escribimos no es necesario poner la posición del cursor ya que por defecto comienza en la columna 0 fila 0.

Una modificación posible seria justificar el texto a la parte derecha o incluso centrarlo. Para ello tenemos que jugar con el tamaño del texto que vamos a escribir y los caracteres que se pueden escribir en nuestro LCD. Para determinar que tamaño tiene un cadena de caracteres (String) en C++ se utiliza el método length(). Para el texto a la derecha habría que modificar el código con estas lineas:

Cualquier duda que te surja, ya sabes por donde estamos.

Salir de la versión móvil