Contenido del curso

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).


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:


Recuerda que para incluir una librería previamente instalada en nuestro programa, debemos utilizar
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.
Recuerda que la librería de MentorBit da acceso a las conexiones del zumbador empleando las siguientes
referencias:

- miObjetoMentorBit.ZUMBADOR


Puedes descargar la solución pinchando en el siguiente icono:

 


#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.ZUMBADOR2000100);
        // 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 en redes sociales
Compartir enlace
Compartir por correo

Por favor iniciar sesión para compartir esto webpage por correo.