- 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 16: Zumbador Pasivo
Actividad 16

Alarma de congelador
Estás desarrollando un sistema de alarma simple para una puerta de un congelador que debe alertar a los usuarios si la puerta ha estado abierta demasiado tiempo. Programa el MentorBit para generar un tono de alerta cada tres segundos mientras la puerta del congelador esté abierta, lo que indicará que se está perdiendo demasiado frío y debe cerrarse la puerta lo antes posible. Para abrir y cerrar la puerta se disponen de dos pulsadores, uno parar abrirla y otra para cerrarla.
Además, utilizaremos el LED rojo y el verde para indicar el estado de la puerta (rojo para indicar que está cerrado, y verde cuando esté abierta).

Pista 1 (Bloques): Control del Zumbador
Recuerda que la extensión de MentorBit para mBlock incluye el siguiente bloque con el que podemos
controlar el zumbador ubicados dentro de la placa:

controlar el zumbador ubicados dentro de la placa:

Pista 1 (C/C++): Incluir librería base
Recuerda que para incluir una librería previamente instalada en nuestro programa, debemos utilizar
la sentencia siguiente:
la sentencia siguiente:
#include <MentorBit.h>
En nuestro ejemplo incluiremos la librería MentorBit, que facilita el uso de los componentes básicos de la
placa.
En nuestro ejemplo incluiremos la librería MentorBit, que facilita el uso de los componentes básicos de la
placa.
Pista 2 (C/C++): Conexiones del Zumbador
Recuerda que la librería de MentorBit da acceso a las conexiones del zumbador empleando las siguientes
referencias:
- miObjetoMentorBit.ZUMBADOR
referencias:
- miObjetoMentorBit.ZUMBADOR
Solución (C/C++)
#include <MentorBit.h>
// Declaración de instancia de la clase
MentorBit miMentorBit;
// Variable para comprobar el estado de la puerta
bool puerta_abierta = false;
// Variable para llevar la cuenta de tiempo de la puerta abierta
unsigned long tiempo_apertura = 0;
void setup() {
// Configurar el estado inicial de los LEDs Rojo y Verde
digitalWrite(miMentorBit.LED_ROJO, HIGH);
digitalWrite(miMentorBit.LED_VERDE, LOW);
}
void loop() {
// Comprobamos que la puerta se encuentre cerrada y se pulse el botón para abrirla
if(!puerta_abierta && (digitalRead(miMentorBit.PULSADOR_PULLDOWN_DIGITAL) == HIGH)) {
// Esperamos que se deje de accionar el botón de apertura
while(digitalRead(miMentorBit.PULSADOR_PULLDOWN_DIGITAL) == LOW) {}
// Configuramos los LEDs para indicar que la puerta está abierta
digitalWrite(miMentorBit.LED_ROJO, LOW);
digitalWrite(miMentorBit.LED_VERDE, HIGH);
// Guardamos el tiempo en que se abre la puerta
tiempo_apertura = millis();
// Guardamos el indicador de puerta abierta
puerta_abierta = true;
}
// Comprobamos que la puerta se encuentre abierta y se pulse el botón para cerrarla
if(puerta_abierta && (digitalRead(miMentorBit.PULSADOR_PULLDOWN_ANALOGICO) == HIGH)) {
// Esperamos que se deje de accionar el botón de cierre
while(digitalRead(miMentorBit.PULSADOR_PULLDOWN_ANALOGICO) == LOW) {}
// Configuramos los LEDs para indicar que la puerta está cerrada
digitalWrite(miMentorBit.LED_ROJO, HIGH);
digitalWrite(miMentorBit.LED_VERDE, LOW);
// Guardamos el indicador de puerta cerrada
puerta_abierta = false;
// Reseteamos el tiempo de apertura de la puerta
tiempo_apertura = 0;
}
// Comprobamos que la puerta lleve abierta demasiado tiempo
if(puerta_abierta && ((millis() - tiempo_apertura) > 3000)) {
// Generamos el tono de aviso
tone(miMentorBit.ZUMBADOR, 2000, 100);
// Actualizamos el momento en que la puerta se abre
tiempo_apertura = millis();
}
}
Puedes descargar la solución sin utilizar nuestra librería en el siguiente icono:
| 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.
