Mendez Vilchis Emilio. Sistema de deteccion agua a traves de sensores infrarrojos (receptor y emisor) y llenado en un recipiente.
Dependencies: mbed
Diff: main.cpp
- Revision:
- 0:4dcbc10d139b
diff -r 000000000000 -r 4dcbc10d139b main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Fri May 31 00:50:05 2019 +0000 @@ -0,0 +1,107 @@ +/* ########################################################################### +** 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; + } +} + +}