- 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 26: Pantalla OLED
Actividad 26

Monitoreo de Temperatura y Luminosidad
Vamos a utilizar una pantalla OLED para crear un medidor de temperatura y luminosidad en tiempo real. Debemos programar el MentorBit para leer los datos del sensor DS18B20 y la lectura de la LDR (convertida a un porcentaje de luminosidad), mostrando los valores en la pantalla OLED. Las medidas deben irse actualizando de manera constante en el tiempo para que obtengamos los valores leídos en la pantalla en tiempo real.

Pista 1 (Bloques): Mostrar mensajes por la pantalla OLED
Recuerda que la extensión de MentorBit para mBlock incluye el siguiente bloque con el que podemos
controlar la pantalla OLED:

controlar la pantalla OLED:

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 OLED
Recuerda que la librería de MentorBitPantallas da acceso a la conexión de la Pantalla OLED empleando las
siguientes referencias:
- miObjetoMentorBitPantallas.oled
siguientes referencias:
- miObjetoMentorBitPantallas.oled
Pista 3 (C/C++): Configuración de la Pantalla OLED
Recuerda que la Pantalla OLED para utilizarla primero debes inicializarla. Esto se consigue con las
siguientes líneas:
siguientes líneas:
miMentorBitPantallas.inicializarOLED();
Pista 4 (C/C++): Uso de la Pantalla OLED
Recuerda que para controlar la pantalla OLED necesitamos varias funciones:
miMentorBitPantallas.oled.clearDisplay();
clearDisplay; vacía la pantalla, limpiándola.
clearDisplay; vacía la pantalla, limpiándola.
miMentorBitPantallas.oled.setTextSize(TAMAÑO);
setTextSize; configura el tamaño de la letra a imprimir en la pantalla OLED, con TAMAÑO como número
entero.
setTextSize; configura el tamaño de la letra a imprimir en la pantalla OLED, con TAMAÑO como número
entero.
miMentorBitPantallas.oled.setCursor(X, Y);
setCursor; configura la ubicación del cursor para determinar dónde imprimir el próximo mensaje en la pantalla, con
X e Y como las coordenadas cartesianas en la OLED.
setCursor; configura la ubicación del cursor para determinar dónde imprimir el próximo mensaje en la pantalla, con
X e Y como las coordenadas cartesianas en la OLED.
miMentorBitPantallas.oled.println(MENSAJE);
println; imprime el MENSAJE donde se haya colocado por última vez el cursor. Por defecto se imprime en
las coordenadas X = 0 e Y = 0.
println; imprime el MENSAJE donde se haya colocado por última vez el cursor. Por defecto se imprime en
las coordenadas X = 0 e Y = 0.
miMentorBitPantallas.oled.display();
display; Actualiza la pantalla con todos los cambios indicados con las instrucciones anteriores.
display; Actualiza la pantalla con todos los cambios indicados con las instrucciones anteriores.
Solución (C/C++)
#include <MentorBitSensores.h>
#include <MentorBitPantallas.h>
// Declaración de instancia de las clases
MentorBitSensores misSensores;
MentorBitPantallas miMentorBitPantallas;
// Inicialización del sketch
void setup() {
// Inicializamos la pantalla
miMentorBitPantallas.inicializarOLED();
// Configuramos el tamaño del texto
miMentorBitPantallas.oled.setTextSize(1);
// Configuramos el color del texto
miMentorBitPantallas.oled.setTextColor(SSD1306_WHITE);
// Establecemos la posición inicial del Cursor y mostramos un mensaje inicial
miMentorBitPantallas.oled.setCursor(30, 0); // Posición centrada
miMentorBitPantallas.oled.println("Monitoreo de"); // Mostramos este texto
miMentorBitPantallas.oled.setCursor(25, 10); // Posición centrada, siguiente línea
miMentorBitPantallas.oled.println("Temperatura y"); // Mostramos este texto
miMentorBitPantallas.oled.setCursor(30, 20); // Posición centrada, siguiente línea
miMentorBitPantallas.oled.println("Luminosidad"); // Mostramos este texto
// Actualizamos con los cambios indicados
miMentorBitPantallas.oled.display();
// Esperamos un poco antes de empezar y limpiamos la pantalla
delay(2000);
}
// Bucle principal del sketch
void loop() {
// Obtenemos las lecturas del DS18B20
float temperatura = misSensores.obtenerLecturaDS18B20();
// Obtenemos la lectura de la LDR convertido en porcentaje
float luminosidad = map(misSensores.obtenerLecturaLDR(), 0, 1023, 0, 100);
// Imprimimos la infomación en la Pantalla OLED
miMentorBitPantallas.oled.clearDisplay(); // Limpiamos el display
miMentorBitPantallas.oled.setCursor(0, 0); // Primera línea
miMentorBitPantallas.oled.println("Temperatura:"); // Mostramos el texto
miMentorBitPantallas.oled.setCursor(0, 10); // Una línea por debajo
miMentorBitPantallas.oled.println(temperatura); // Mostramos el valor
miMentorBitPantallas.oled.setCursor(35, 10); // Por detrás del valor
miMentorBitPantallas.oled.println("C"); // Mostramos el símbolo
miMentorBitPantallas.oled.setCursor(0, 30); // Dos líneas por debajo
miMentorBitPantallas.oled.println("Luminosidad:"); // Mostramos el texto
miMentorBitPantallas.oled.setCursor(0, 40); // Una línea por debajo
miMentorBitPantallas.oled.println(luminosidad); // Mostramos el valor
miMentorBitPantallas.oled.setCursor(35, 40); // Por detrás del valor
miMentorBitPantallas.oled.println("%"); // Mostramos el símbolo
// Actualizamos con los cambios indicados
miMentorBitPantallas.oled.display();
// Esperamos un poco antes de continuar
delay(250);
}
Actualmente no se dispone de una solución que no emplee nuestra librería.
Actualmente no se dispone de una solución que no emplee nuestra librería.
| Vistas | |
|---|---|
| 14 | Número de vistas |
| 14 | 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.
