![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
electro
Dependencies: mbed QEI mbed-os KeypadLib TextLCD
Diff: electrocoagulador_final.cpp
- Revision:
- 0:6cde030caebb
- Child:
- 1:48c8726d6824
diff -r 000000000000 -r 6cde030caebb electrocoagulador_final.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/electrocoagulador_final.cpp Fri Mar 01 22:37:35 2019 +0000 @@ -0,0 +1,200 @@ +#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); + +ini_1: + lcd.locate(0,0); + lcd.printf(" Control para\n"); + lcd.locate(0,1); + lcd.printf("electrocoagular\n"); + wait(3); + lcd.cls(); + + + + + while(1) { + 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); + + char key = keypad.getKey(); +// if(key=='A'){temp_user_1=10;} + + if(key=='A'){ + } + + +/* + +ini2: + if(flag==0) { + if(keypad.getKey()=='B') { + cadena[0]=' '; + cadena[1]=' '; + cadena[2]=' '; + llena=0; + num=0; + if(pos==4) { + pos=1; + } else { + pos++; + } + } else if(keypad.getKey()=='A') { + llena--; + cadena[llena]=' '; + num=strtod(cadena,NULL); + } else if((keypad.getKey()=='0')||(keypad.getKey()=='1') + ||(keypad.getKey()=='2')||(keypad.getKey()=='3') + ||(keypad.getKey()=='4')||(keypad.getKey()=='5') + ||(keypad.getKey()=='8')||(keypad.getKey()=='9')) { + if(llena<3) { + cadena[llena]=keypad.getKey(); + num=strtod(cadena,NULL); + llena++; + } + } else if(keypad.getKey()=='D') { + lcd.cls(); //borra la pantalla + lcd.printf("GUARDADOS!"); + wait(1); + lcd.cls(); + lcd.printf("CONTROL INICIADO"); + + + + lcd.cls(); + wait(2); + +ciclo_control: + if(keypad.getKey()=='C') { + temp_user_1=0; + temp_user_2=0; + temp_user_3=0; + temp_user_4=0; + llena=0; + pos=1; + flag=1; + cadena[0]=' '; + cadena[1]=' '; + cadena[2]=' '; + goto ini_1; + } + + } + + if(pos==1){ + temp_user_1=num; + lcd.locate(3,0);lcd.printf(" "); + lcd.locate(3,0);lcd.printf("%f",t_1); + } + else if(pos==2){ + temp_user_2=num; + lcd.locate(11,0);lcd.printf(" "); + lcd.locate(11,0);lcd.printf("%f",t_2); + } + else if(pos==3){ + temp_user_3=num; + lcd.locate(3,1);lcd.printf(" "); + lcd.locate(3,1);lcd.printf("%f",t_3); + } + else if(pos==4){ + temp_user_4=num; + lcd.locate(11,1);lcd.printf(" "); + lcd.locate(11,1);lcd.printf("%f",t_4); + } + + flag=1; + goto ini2;} + + */ + + + + + }//termina while de main + }//termina main