Programar fácil con Arduino

Programar fácil con Arduino, entiende cómo funciona el mundo.

  • Inicio
  • Cursos
  • Blog
  • Podcast
  • ¿Quién soy?
  • Contactar
  • Acceder
Usted está aquí: Inicio / Blog / Mostrar datos de un sensor en un LCD con Arduino

Mostrar datos de un sensor en un LCD con Arduino

Luis del Valle Hernández

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:

Arduino
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
/*
  Creado: Alfonso Contreras ([email protected])
  https://programarfacil.com
*/
 
// Incluímos la libreria externa para poder utilizarla
#include <LiquidCrystal.h> // Entre los símbolos <> buscará en la carpeta de librerías configurada
 
 
// Lo primero is inicializar la librería indicando los pins de la interfaz
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
 
// Definimos las constantes
#define COLS 16 // Columnas del LCD
#define ROWS 2 // Filas del LCD
#define VELOCIDAD 300 // Velocidad para mover el texto
#define ARRAYTXT 5 // Número de textos a escribir
 
//Variables globales
float tempC; // Variable para almacenar el valor obtenido del sensor (0 a 1023)
int pinLM35 = 0; // Variable del pin de entrada del sensor (A0)
int indice; //Posicion del array de textos
 
void setup() {
  // Configuramos las filas y las columnas del LCD en este caso 16 columnas y 2 filas (Depende del hardware de cada uno)
  lcd.begin(COLS, ROWS);
  Serial.begin(9600);
}
 
void loop() {
  
  String textos[ARRAYTXT] = {"Mucho Calor", "Calor", "Confort", "Frio", "Mucho Frio"};
  
  //Obtenemos datos del sensor
  // Con analogRead leemos el sensor, recuerda que es un valor de 0 a 1023
  tempC = analogRead(pinLM35);
  
  // Calculamos la temperatura con la fórmula
  tempC = (5.0 * tempC * 100.0)/1024.0;
 
  //Mostramos texto en LCD
  // Lo primero es borrar toda la pantallas
  lcd.clear();
 
  // Escribimos un mensaje en el LCD, por defecto empieza en la fila 0 y columna 0
  lcd.print("Temp. "+String(tempC)+"C");
 
  //Instrucciones para determinar el rango de temperatura
  if (tempC > 30){
     indice = 0;
  }else{
    if (tempC > 24){
        indice = 1;
      }else{
        if (tempC > 18){
            indice = 2;
          } else{
            if (tempC > 10){
                indice = 3;
              } else{
                  indice = 4;
                }
            }
        }
    }
 
  //Escribimos en la fila de abajo
  lcd.setCursor(0,1);
      
  // Escribimos mensaje
  lcd.print(textos[indice]);
    
  // Esperamos un tiempo para repetir el loop
  delay(1000);
}

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:

Arduino
1
2
3
4
5
6
7
8
9
10
11
//Variables de función void
String primerafila;
int tamanyo;
 
//Obtenemos texto a mostrar y longitud de este
primerafila = "Temp. "+String(tempC)+"C";
tamanyo = primerafila.length();
 
//Calculamos posición de inicio y escribimos
lcd.setCursor(COLS-tamanyo,0);
lcd.print(primerafila);

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

curso programacion de arduino desde cero

Tutoriales de Arduino


Curso de Arduino
Proyectos con Arduino
Arduino UNO R3
Arduino MEGA 2560
Servomotor con Arduino
Sensor de temperatura DHT11
Sensor temperatura Arduino
Tutorial pulsadores
Tutorial RTC reloj Arduino
Tutorial potenciómetro Arduino
Tutorial display 7 Arduino
Tutorial motor paso a paso Arduino
Tutorial librerías Arduino
Tutorial ultrasonidos Arduino
Tutorial I2C Arduino
Tutorial consumo Arduino
Tutorial weareable Arduino
Tutorial interrupciones Arduino
Tutorial ADS1115 ADC Arduino
Tutorial pilas Arduino
Tutorial riego Arduino
Arduino Shield EchidnaShield
Tutorial if else Arduino

Tutoriales ESP8266


Introducción ESP8266
Tutorial NodeMCU
IDE Arduino NodeMCU
Tutorial ESP-01
Relé WiFi Sonoff

Tutoriales IoT


Proyectos IoT con Arduino
MQTT ESP8266 Raspberry Pi
Redes LPWAN Arduino
IFTTT Arduino
Geolocalización Arduino
Arduino MKRFOX1200 Sigfox
Tutorial Node-RED

Tutoriales Visión Artificial


Instalación OpenCV y Python
Introducción Vision Artificial
Detección movimiento OpenCV
Introducción OpenCV
Qué es Machine Learning
Sensor Kinect
Realidad Aumentada
Detector Canny OpenCV
Big Data Visión Artificial
Kinect y Processing
Deep Learning

Tutoriales Raspberry Pi


Tutorial Raspberry Pi
Proyectos Raspberry Pi
Vídeo Raspberry Pi
Servidor web Raspberry Pi
Servidor Raspberry Pi
Flask Raspberry Pi
Monitor bebé Raspberry Pi

Podcast


Entrevista Obijuan
Entrevista BricoGeek
Entrevista David Cuartielles
Entrevista Rinconingenieril
Entrevista Staticboards
Entrevista La Hora Maker
Entrevista OSHWDem
Entrevista Colepower
Entrevista Aprendiendoarduino
Entrevista BitFab
tertulia-maker-invierno-2021

Los Amazon Echo tendrán comunicación LoRa integrado

Hola a todos, una vez más nos encontramos por estos lados, en el inicio de la sexta temporada del podcast La Tecnología Para Todos, con muchas … [+ info...]

Protocolo i2c imagen destacada

Comunicación I2C con Arduino lo mejor de dos mundos

El protocolo de comunicación I2C con Arduino es ampliamente utilizado en multitud de sensores y actuadores. Esto se debe principalmente a dos … [+ info...]

Introducion-a-git-y-git-hub-github tutorial paso a paso

Git y GitHub tutorial paso a paso

¿Qué es Git y GitHub? En este artículo vas a entender cómo utilizar Git y GitHub, la famosa red social del código basada en Git, orientada a … [+ info...]

Copyright © 2021 · Programar Fácil · Aviso legal

Utilizamos cookies propios y de terceros para mejorar nuestros servicios y experiencia de usuario. Si continua navegando, consideramos que acepta su uso.Aceptar Política de privacidad y cookies
Política de cookies

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necesarias
Siempre activado

Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.

No necesarias

Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.

close

Te ayudo a dar los primeros pasos con Arduino

Si quieres aprender programación de electrónica con Arduino utilizando un método serio, prueba el curso que te ofrezco.


Es muy sencillo, te apuntas en este formulario y accedes a los 3 primeros módulos.


Que te gusta, sigues con el curso completo.


Que no te gusta, sin problema, te das de baja y tan amigos.


Solo para gente seria que esté cansada de copiar y pegar código sin saber lo que hace.

x