Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: Adafruit_GFX
Diff: main.cpp
- Revision:
- 1:1d515eb7abf3
- Parent:
- 0:e3755f5769fe
- Child:
- 2:fd3b989cedcd
--- a/main.cpp Wed Dec 15 08:47:04 2021 +0000 +++ b/main.cpp Wed Dec 15 13:22:41 2021 +0000 @@ -3,17 +3,27 @@ //#include "hcsr04.h" Serial pc(USBTX, USBRX); // tx, rx Ticker tickerMideDistancia; +Ticker visualTemp; unsigned distancia=1000; - +AnalogIn senal(A0); DigitalIn final1(D9); DigitalIn final2(D10); DigitalOut step(D2); DigitalOut dir(A4); DigitalOut enableMotor(D11); DigitalIn boton_inicial(D3); +DigitalOut dirAMotor(D4);//M121 +PwmOut dirBMotor(D5);//M121 +DigitalOut rele(D6);//Rcal -enum estados {reset, apagado, encendido, motorpalante }; +//InterruptIn encoderA(A2); + +Timer t; + +float temperatura; + +enum estados {reset, apagado, encendido, motorpalante,atras, estatico }; estados estado; //HCSR04 usensor(D7,D8); //(PinName TrigPin,PinName EchoPin): @@ -28,10 +38,10 @@ void estadoreset() { if (final1!=1) { + enableMotor=1; paso(0); } else if (final1 ==1) { estado = apagado; - step=0; enableMotor =0; } } @@ -40,113 +50,107 @@ { if (boton_inicial==1) { enableMotor=1; - step = 1; - //paso(1); - estado= encendido; - + estado= motorpalante; + t.reset(); } } -void estadoencendido() +/*void estadoencendido() { - if (boton_inicial==0 && final1==1) { - enableMotor=1; - step = 1; + if (boton_inicial==0) { paso(1); estado = motorpalante; } +}*/ + +void estadomotorpalante() +{ +//if (final2) + if (boton_inicial==0&&final2==0) { + paso(1); + + dirAMotor=1; + rele =1; + + } else if (final2==1) { + int tiempo=t.read(); + pc.printf("El tiempo transcurrido es de %d\n",tiempo); + pc.printf("La temperatura es de %.4f\n",temperatura); + //dirAMotor=0; + wait(2.0); + //enableMotor=0; + //rele=0; + + if (final2==1) { + estado=atras; + } + //Print en pantalla con el Oled. + } } -void estadomotorpalante(){ -//if (final2) -if (final1!=1){ - enableMotor=1; - step =1; - paso(1); - //rele=1; - //Encender el motor de arriba -}} - - -//void mideDistancia() -//{ -// usensor.start(); -//} - - - -//void estadoCerrada(){ -//{ -// if(distancia<10) { -// enable=1; -// estado=abriendose; -// pc.printf("Estado Abriendose, distancia %d\n",distancia); -// } -//} +void estadoatras() +{ + if (final2!=1 && boton_inicial==1 && final1!=1) { + enableMotor=0; + rele=0; + dirAMotor=0; + estado= estatico; + } else if (final1 ==1) { + estado = motorpalante; + } else { + paso(0); + } +} -//void estadoAbriendose() -//{ -// if((final1==1)&&(distancia<10)) { -// estado=abierta; -// enable=0; -// } else if((final1==1)&&(distancia>=10)) { -// enable=1; -// estado=cerrandose; -// } else { -// paso(1); -// pc.printf("paso\n"); - -// } -//} +void muestraTemp(){ + pc.printf("La temperatura es de %.4f\n",temperatura); + } -//void estadoCerrandose() -//{ -// if(distancia<10) { -// estado=abriendose; -// enable=1; -// } else if(final2==1) { -// estado=cerrada; -// enable=0; -// } else { -// paso(0); -// pc.printf("paso\n"); -// } -//} - -//void estadoAbierta() -//{ -// if (distancia>=10) { -// enable=1; -// estado=cerrandose; -// } -//} - + void medir(){ + + float tension=senal.read()*3.3; + float Rt= 100e3*((3.3-tension)/tension); + temperatura = (3950/(log(Rt/100e3)+(3950/298)))-273.1; + } int main() { pc.baud(115200); + //visualTemp.attach(&muestraTemp,1.0); //tickerMideDistancia.attach(&mideDistancia, 0.5); estado=reset; step=1; enableMotor =1; pc.printf("Estado cerrada\n"); + t.start(); while(1) { + medir(); //distancia=usensor.get_dist_cm(); switch ( estado ) { + case reset: estadoreset(); + pc.printf("Estado reset\n"); break; case apagado: - pc.printf("HOLI"); estadoapagado(); + pc.printf("Estado apagado\n"); break; - case encendido: - pc.printf("HOLI2"); - estadoencendido(); + /* case encendido: + pc.printf("HOLI2"); + estadoencendido(); + break;*/ + case motorpalante: + estadomotorpalante(); + pc.printf("Estado alante\n"); break; - case motorpalante: - pc.printf("ALANTE"); - // estadomotorpalante(); + case atras: + estadoatras(); + pc.printf("Estado atras\n"); + break; + case estatico: + pc.printf("Estado estatico\n"); +//estadoestatico(); break; /*case cerrada: estadoCerrada();