![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
wss
Dependencies: mbed Adafruit_GFX DS1820
Diff: main.cpp
- Revision:
- 11:ff1efbab2d9e
- Parent:
- 10:db8ef252faba
- Child:
- 12:71ae2f729b7f
--- a/main.cpp Tue Dec 14 09:38:10 2021 +0000 +++ b/main.cpp Tue Dec 14 11:02:12 2021 +0000 @@ -34,10 +34,18 @@ DigitalOut dir(D12); DigitalOut enable(D11); DigitalOut led(LED1); -DS1820 ds1820(D10); // substitute PA_9 with actual mbed pin name connected to the DS1820 data pin +DS1820 ds1820(D10); // substitute PA_9 with actual mbed pin name connected to the DS1820 data pin + +//gitalOut rele(A5); + float temp = 0; int contador=0; +// control aplicacion +int x=0; +int y=1; +//////////////// +Timer tiempo; enum estados {cerrada, abriendose, cerrandose, abierta}; estados estado; @@ -59,9 +67,9 @@ void estadoCerrada() { - + if (x==1){ if( (finalIzq == 1) && contador <3) { - wait(1.0); + wait(0.5); enable=1; estado=abriendose; // pc.printf("Distance =%d\n",distancia); @@ -70,11 +78,28 @@ //distancia < 5 } - + } + if(x==0 &&y==0){ + pc.printf("No seleccionado programa\r\n"); + } + + + if(y==1){ + if(finalIzq == 1 && finalDer==1){ + + enable=1; + tiempo.reset(); + tiempo.start(); + estado=abriendose; + } + } + } void estadoAbriendose() { + + if(x==1){ //pc.printf("Distance =%d\n",distancia); if((finalDer==1)) { @@ -82,29 +107,51 @@ enable=0; } else { - + gOled.clearDisplay(); + paso(1); //pc.printf("paso\n"); } + } // if (distancia<4){ //estado=cerrandose; // } + if(y==1){ + + + if(tiempo.read()<1){ + paso(1); + } + else if(finalIzq==0){ + paso(0); + } + else{ + estado=cerrada; + } + + } + + } void estadoCerrandose(){ //pc.printf("Distance =%d\n",distancia); + if(x==1){ if((finalIzq==1)) { estado=cerrada; enable=0; } else { - + paso(0); //pc.printf("paso\n"); } + } + + } void estadoAbierta() @@ -133,7 +180,20 @@ gOled.begin(); gOled.clearDisplay(); gOled.printf("Hola\n"); + gOled.display(); //pc.printf("Estado cerrada\n"); + if(x==1){ + gOled.clearDisplay(); + gOled.printf("Programa de transporte de piezas\n); + gOled.display(); + } + + if(y==1){ + gOled.clearDisplay(); + gOled.printf("Programa de taladro\n"){ + gOled.display(); + } + tiempo.reset(); int error = 0; pc.baud(115200); @@ -165,6 +225,15 @@ while(1) { distancia=usensor.get_dist_cm(); + //calefactor + // rele=1; + // led=1; +// wait(1.0); + // rele=0; +// led=0; + // wait(1.0); + // + switch ( estado ) { case cerrada: estadoCerrada();