electro

Dependencies:   mbed mbed-os KeypadLib TextLCD

electrocoagulador_final.cpp

Committer:
afsaavedram
Date:
2019-03-02
Revision:
2:4b27d3d7341a
Parent:
1:48c8726d6824
Child:
3:a4994da37d1f

File content as of revision 2:4b27d3d7341a:

#include "mbed.h"
#include "keypad.h"
#include "TextLCD.h"
#include "stdlib.h"

/*******************ELECTROVALVULAS********************/

DigitalOut E_1(D8);             //Control de electrovalvula 1
DigitalOut E_2(D9);             //Control de electrovalvula 2
DigitalOut E_3(D10);             //Control de electrovalvula 3
DigitalOut E_4(D12);             //Control de electrovalvula 4
AnalogIn sensor_nivel(A0);      //Sensor nivel tanque 1
/*****************************************************/

/*******************INTERRUPCIONES********************/

InterruptIn button(USER_BUTTON);
Timeout t_1;
Timeout t_2;
Timeout t_3;
Timeout t_4;

//tiempos de usuario
float temp_user_1=0;                      //tiempo tope de electrocoagulacion
float temp_user_2=0;                      //tiempo tope de reposo de la vinaza
float temp_user_3=0;                      //tiempo tope de vaciado del agua en el tanque 2
float temp_user_4=0;                      //tiempo tope de vaciado de residuos en el tanque 2




/********************TECLADO Y LCD***********************/

//          rs, e,d4,d5,d6,d7
TextLCD lcd(PC_8,PC_9,PC_10,PC_11,PC_12,PD_2);


Keypad keypad(D3, D2, D1, D0, D7, D6, D5, D4);
float num=0;
char cadena[3]= {' ',' ',' '};
int llena=0; //verificar que la entrada es de 3 numeros


/*********************FUNCIONES**************************/

void stop()  //STOP
{

    while(1) {
        lcd.cls();
    }
}

bool electro_1()
{
    E_1=!E_1;
    return E_1;
}

bool electro_2()
{
    E_2=!E_2;
    return E_2;
}

bool electro_3()
{
    E_3=!E_3;
    return E_3;
}

bool electro_4()
{
    E_4=!E_4;
    return E_4;
}
/***********************MAIN***************************/

int main()
{
    button.rise(&stop);
    keypad.enablePullUp();
    wait(1);
    lcd.locate(0,0);
    lcd.printf("  Control para\n");
    lcd.locate(0,1);
    lcd.printf("electrocoagular\n");
    wait(3);
    lcd.cls();

    lcd.locate(0,0);
    lcd.printf("t_1=%f",temp_user_1);
    lcd.locate(8,0);
    lcd.printf("t_2=%f",temp_user_2);
    lcd.locate(0,1);
    lcd.printf("t_3=%f",temp_user_3);
    lcd.locate(8,1);
    lcd.printf("t_4=%f",temp_user_4);


    while(1) {

        char key = keypad.getKey();

        //if(key=='A') {
            //lcd.cls();
            //lcd.locate(0,0);
            //lcd.printf("%c",key);
            //wait(3);
 
                

                //           lcd.printf("t_1=%f",temp_user_1);


        //if(key=='A'){temp_user_1=10;}

                if(key=='A'){
                    while(llena<=2){
                        switch(llena){
                            case 0:
                            if(llena==0 && keypad.getKey()!= '\0'){
                            cadena[llena]=keypad.getKey();
                            llena=llena +1;
                            break;
                            }

                            case 1:
                            if(llena==1 && keypad.getKey()!= '\0'){
                            cadena[llena]=keypad.getKey();
                            llena=llena+1;
                            break;
                            }

                            case 2:
                            if(llena==2 && keypad.getKey()!= '\0'){
                            cadena[llena]=keypad.getKey();
                            llena=llena+1;
                            break;}
                            
                            default:
                            break;
                        }
                    lcd.cls();
                    temp_user_1=strtod(cadena,NULL);
                    lcd.locate(0,0);
                    lcd.printf("t_1=%f",temp_user_1);
                    }

                }




    }//termina while de main
}//termina main