- Portada
- Fundamentos de MentorBit
- Alimentación de circuitos y dispositivos
-
Programación y ejercicios básicos
-
Introducción
-
Driver necesario para programar la placa
-
Descripción de mBlock
-
Descripción de IDE Arduino
-
Estructura de un programa
-
Variables
-
Tipos de datos
-
Operadores
-
Sintaxis
-
Principales Bloques
-
Principales funciones C/C++
-
Monitor Serial
-
Actividad 1: Mi primer programa
-
Estructuras de control
-
Actividad 2: Bucle for
-
Actividad 3: Bucle while
-
Actividad 4: Condicional if y else
-
Actividad 5: Sentencia Switch
-
Arrays
-
Actividad 6: Los Arrays
-
Recibir por Serie
-
Actividad 7: Recepción por bus serial
-
Funciones
-
Funciones en Bloques
-
Funciones en C/C++
-
Actividad 8: Mis primeras funciones
-
Clases en C/C++
-
Actividad 9: Mi primera Clase
-
Actividad 10: Mi propia Calculadora
-
-
Programación y ejercicios con hardware
-
Introducción a MentorBit
-
LEDs
-
Actividad 11: LEDs de colores
-
El LED RGB
-
Actividad 12: LED RGB
-
El pulsador
-
Actividad 13: Pulsador en Pull Down
-
Actividad 14: Pulsador en Pull Up
-
El Potenciómetro
-
Actividad 15: Potenciómetro
-
El Zumbador
-
Actividad 16: Zumbador Pasivo
-
La Fotorresistencia
-
Actividad 17: LDR
-
Sensor de temperatura DS18B20
-
Actividad 18: DS18B20
-
El Servomotor
-
Actividad 19: Servomotor
-
Motores Corriente Continua
-
Puente en H
-
Actividad 20: Motor DC
-
Introducción a Motores paso a paso
-
Actividad 21: Motor paso a paso
-
Displays 7 Segmentos
-
Actividad 22: Display 7 Segmentos
-
Pantallas LCD
-
Actividad 23: Pantalla LCD
-
Actividad 24: Pantalla LCD
-
Pantallas OLED
-
Actividad 25: Pantalla OLED
-
Actividad 26: Pantalla OLED
-
Reloj en Tiempo Real (RTC)
-
Actividad 27: RTC
-
Tarjeta micro SD
-
Actividad 28: Micro SD
-
Actividad 29: Micro SD & RTC
-
Actividad 30: Micro SD & RTC
-
Puertos para Módulos MentorBit
-
Puertos de Comunicaciones
-
Puertos Genéricos
-
- Problemas Adicionales
- Proyectos Finales
Actividad 24: Pantalla LCD
Actividad 24

Sistema de monitoreo de Temperatura
Utilizaremos una pantalla LCD para diseñar un sistema de monitoreo de temperatura. Programaremos el MentorBit para que lea continuamente el sensor de temperatura DS18B20 y lo muestre en la pantalla en tiempo real. Además, se implementará un botón que permita cambiar entre las unidades de medida de temperatura (grados Celsius, Farenheit y Kelvin) saltando de una a otra con cada accionamiento.

Pista 1 (Bloques): Control de la Pantalla LCD
Recuerda que la extensión de MentorBit para mBlock incluye el siguiente bloque con el que podemos
controlar la Pantalla LCD:

controlar la Pantalla LCD:

Pista 1 (C/C++): Incluir librería de pantallas
Recuerda que para incluir una librería previamente instalada en nuestro programa, debemos utilizar
la sentencia siguiente:
En nuestro ejemplo incluiremos la librería MentorBitPantallas, que facilita el uso de las diferentes pantallas
con MentorBit.
la sentencia siguiente:
#include <MentorBitPantallas.h>
En nuestro ejemplo incluiremos la librería MentorBitPantallas, que facilita el uso de las diferentes pantallas
con MentorBit.
Pista 2 (C/C++): Conexiones de la Pantalla LCD
Ten en cuenta que la librería de MentorBitPantallas no da acceso directo a la conexión de la pantalla LCD,
ya que se comunica por I2C. Sin embargo, se dispone de una referencia para poder utilizar las funciones
necesarias para controlarla:
- miObjetoMentorBitPantallas.lcd
ya que se comunica por I2C. Sin embargo, se dispone de una referencia para poder utilizar las funciones
necesarias para controlarla:
- miObjetoMentorBitPantallas.lcd
Pista 3 (C/C++): Configuración de la Pantalla LCD
Recuerda que la Pantalla LCD para utilizarla primero debes inicializarla y habilitar la luz trasera de la
misma con el fin de ver los mensajes impresos en el display. Esto se consigue con las siguientes líneas:
misma con el fin de ver los mensajes impresos en el display. Esto se consigue con las siguientes líneas:
miMentorBitPantallas.inicializarLCD();
miMentorBitPantallas.lcd.backlight();
Pista 4 (C/C++): Uso de la Pantalla LCD
Recuerda que para controlar la pantalla LCD necesitamos dos funciones principales; la primera nos
permite colocar el cursor en la posición de la pantalla que deseemos (fila y columna), mientras la
segunda de ellas nos permite imprimir valores o cadenas de caracteres en el display. Estas funciones
son:
miMentorBitPantallas.lcd.setCursor(COLUMNA, FILA);
Donde COLUMNA y FILA indican la posición donde queremos imprimir el siguiente mensaje.
Donde MENSAJE es el valor o cadena de texto que queremos imprimir en la pantalla.
permite colocar el cursor en la posición de la pantalla que deseemos (fila y columna), mientras la
segunda de ellas nos permite imprimir valores o cadenas de caracteres en el display. Estas funciones
son:
miMentorBitPantallas.lcd.setCursor(COLUMNA, FILA);
Donde COLUMNA y FILA indican la posición donde queremos imprimir el siguiente mensaje.
miMentorBitPantallas.lcd.print(MENSAJE);
Donde MENSAJE es el valor o cadena de texto que queremos imprimir en la pantalla.
Solución (C/C++)
#include <MentorBit.h>
#include <MentorBitSensores.h>
#include <MentorBitPantallas.h>
// Declaración de instancia de las clases
MentorBit miMentorBit;
MentorBitSensores miSensor;
MentorBitPantallas miLCD;
// Variables para controlar la unidad impresa
int unidad_escogida = 0;
// Inicialización del sketch
void setup() {
// Inicializamos la pantalla LCD
miLCD.inicializarLCD();
// Configuramos la pantalla
miLCD.lcd.backlight();
// Mostramos un mensaje inicial por la pantalla
miLCD.lcd.clear();
miLCD.lcd.setCursor(0, 0);
miLCD.lcd.print(" Monitoreo de ");
miLCD.lcd.setCursor(0, 1);
miLCD.lcd.print(" Temperatura ");
// Esperamos un poco antes de empezar
delay(2000);
}
// Bucle principal del sketch
void loop() {
// Comprobamos que se haya pulsado el botón que cambia a grados Celsius
if(digitalRead(miMentorBit.PULSADOR_PULLDOWN_DIGITAL) == HIGH) {
// Esperamos que se deje de pulsar el botón
while(digitalRead(miMentorBit.PULSADOR_PULLDOWN_DIGITAL) == LOW) {}
// Aumentamos en uno la unidad escogida
unidad_escogida += 1;
// Comprobamos que la unidad no supere el máximo
if(unidad_escogida > 2) {
unidad_escogida = 0;
}
}
// Limpiamos la pantalla del anterior mensaje
miLCD.lcd.clear();
// Mostramos el mensaje en la pantalla
miLCD.lcd.setCursor(0, 0);
miLCD.lcd.print(" Temperatura: ");
// Mostramos la temperatura en la pantalla según la unidad seleccionada
miLCD.lcd.setCursor(0, 1);
// Obtenemos la lectura del sensor de temperatura
float temperatura = miSensor.obtenerLecturaDS18B20();
// Comprobamos la unidad escogida para imprimir
switch(unidad_escogida) {
case 0: // Celsius
// Mostramos la temperatura en Celsius por pantalla
miLCD.lcd.print(" " + String(temperatura) + "C");
break;
case 1: // Farenheit
// Mostramos la temperatura en Farenheit por pantalla
miLCD.lcd.print(" " + String(temperatura*1.8 + 32) + "F");
break;
case 2: // Kelvin
// Mostramos la temperatura en Kelvin por pantalla
miLCD.lcd.print(" " + String(temperatura + 273.15) + "K");
break;
}
// Esperamos un poco antes de continuar
delay(200);
}
Actualmente no se dispone de una solución que no emplee nuestra librería.
| Vistas | |
|---|---|
| 13 | Número de vistas |
| 13 | Vistas de miembros |
| 0 | Vistas públicas |
| Acciones | |
|---|---|
| 0 | Gustos |
| 0 | No me gusta |
| 0 | Comentarios |
Compartir por correo
Por favor iniciar sesión para compartir esto webpage por correo.
