Mendez Vilchis Emilio. Sistema de deteccion agua a traves de sensores infrarrojos (receptor y emisor) y llenado en un recipiente.

Dependencies:   mbed

main.cpp

Committer:
Emenvil
Date:
2019-05-31
Revision:
0:4dcbc10d139b

File content as of revision 0:4dcbc10d139b:

/* ###########################################################################
**    Archivo        : main.c
**    Proyecto       : FRDM-KL46Z_Plantilla
**    Procesador     : MKL46Z256VLL4
**    Herramienta    : Mbed
**    Version        : Driver 01.01
**    Compilador     : GNU C Compiler
**    Fecha/Hora     : 14-07-2015, 11:48, # CodeGen: 0
**    Descripción    :
**         Este proyecto hace el monitoreo de un recipiente con agua, mediante sensores infrarrojos emisor y receptor, para encender motores que 
**         facilitan el llenado de este.
**         This module contains user's application code.
**   Componentes     : GPIO, Timer, etc .
**   Configuraciones : Includes, Stacks y Drivers externos
**   Autores         : Méndez Vilchis Emilio
**         ATEAM Development Group:
**          - Antulio Morgado Valle
**
**   Versión        : Beta
**   Revisión       : A
**   Release        : 0
**   Bugs & Fixes   :
**   Date           : 18/05/2019
**                    Added support for Led_RGB
**                    22/09/2018 
**                    Added LCD Menu, Beta version (with bugs)
**
* ###########################################################################/
/*
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:  Includes
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
*/
#include "mbed.h"


DigitalIn sens1(PTE31); //inicializa canal digital para sensor 1
DigitalIn sens2(PTE19); //inicializa canal digital para sensor 2
DigitalIn sens3(PTE18); //inicializa canal digital para sensor 3

DigitalOut gseg(PTE20);   // Inicializa el segmento g del display de catodo comun
DigitalOut fseg(PTE21);     // Inicializa el segmento f del display de catodo comun
DigitalOut aseg(PTE22);  // Inicializa el segmento a del display de catodo comun
DigitalOut bseg(PTE23);     // Inicializa el segmento b del display de catodo comun
DigitalOut eseg(PTE17);  // Inicializa el segmento e del display de catodo comun
DigitalOut dseg(PTE16);  // Inicializa el segmento d del display de catodo comun
DigitalOut cseg(PTE6);  // Inicializa el segmento c del display de catodo comun

DigitalOut motor1(PTB18); // Inicializa motor 1
DigitalOut motor2(PTB19); // Inicializa motor 2

DigitalOut Buzzer(PTE30); // Inicializa el buzzer (indica al usuario cuando el agua llega al tope del recipiente)

//t cero=0;
//t uno=1;

int main()
{
    while(1) {     //ciclo infinito, para la connstate lectura de los datos de entrada
        if(sens1.read()==0) {   // Recordando que el sensor receptor emisor al no tener una interrupcion entrela señal delel emisor y receptor nos regresara un 1 
                                // Al interferir la señal de este se marcara un 0 y por lo tanto, al tener el primer sensor tapado podemos inferir que el nivel de agua en el
                                //sensor esta en el nivel mas bajo.
            gseg=1;
            fseg=0;
            aseg=1;    ////// el display marca un 2 al mandar 1 a los segmentos de este
            bseg=1;
            eseg=1;
            dseg=1;
            cseg=0;


            motor1=1;        // Se procede a encender ambos motores para hacer mas rapido el llenado del agua
            motor2=1;

        }

        else if (sens1.read()==0 && sens2.read()==0){ /// al tener interrupcion de la señal en los primeros 2 sensores (nivel inferior y nivel medio)
        gseg=0;
        fseg=0;
        aseg=0;
        bseg=1; // imprime 1 en el display, indicando que solo un motor trabajara
        eseg=0;
        dseg=0;
        cseg=1;
        motor1=1;  // el motor 1 sigue su proceso de llenado
        motor2=0;  // el motor 2 se apaga, pues no es necesario que el recipiente siga llenandose con la misma rapidez
    }

    else if (sens1.read()==0 && sens2.read()==0 && sens3.read()==0){ // si los 3 sensores tienen su señal interrumpida, sabremos que estamos en el nivel 3
             
             gseg=1;
             fseg=1;
             aseg=1;
             bseg=0;          //// estamos en el nivel 3 y se le manda 1 a los segmentos que se requieren para marcar este nivel en el diaplay
             eseg=1;
             dseg=1;
             cseg=0;
             
             
             Buzzer=1;      /// Se acciona el buzzer, como aviso al usuario, el recipiente esta lleno}
             
             motor1=0;       /// no es necesario continuar el llenado del recipiente, se procede a mandar 0 a los motores, apagandolos.
             motor2=0;
    }
}

}