Ascensor: -ultrasonido -motorres
Dependencies: DebouncedIn HCSR04 mbed
Revision 0:4f72e674f36d, committed 2018-06-07
- Comitter:
- aftorob
- Date:
- Thu Jun 07 18:53:31 2018 +0000
- Commit message:
- v1
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DebouncedIn.lib Thu Jun 07 18:53:31 2018 +0000 @@ -0,0 +1,1 @@ +http://os.mbed.com/users/jclondonol/code/DebouncedIn/#1ad8929cc2b4
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/HCSR04.lib Thu Jun 07 18:53:31 2018 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/prabhuvd/code/HCSR04/#71da0dbf4400
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Thu Jun 07 18:53:31 2018 +0000 @@ -0,0 +1,171 @@ +#include "mbed.h" +#include "DebouncedIn.h" +#include "hcsr04.h" + +DigitalIn B_stop(PTC8); //Boton de paro de emergencia +DigitalIn B_close(PTC9); //Boton “Cerrar” de la cabina +DigitalIn B_open(PTA13); //Boton “Abrir” de la cabina + +DigitalIn B_c1(PTB1); //Boton "1" de la cabina +DigitalIn B_c2(PTB0); //Boton "2" de la cabina +DigitalIn B_c3(PTA5); //Boton "3" de la cabina + +DigitalIn B_p1(PTB2); //Boton piso 1 +DigitalIn B_p3(PTC1); //Boton piso 3 +DigitalIn B_p2u(PTB3); //Boton piso 2 arriba +DigitalIn B_p2d(PTC2); //Boton piso 2 abajo + +PwmOut S_1(PTD2); //Servomotor piso 1 +PwmOut S_2(PTD0); //Servomotor piso 2 +PwmOut S_3(PTD5); //Servomotor piso 3 + +PwmOut Motor_en(PTA12); //Motor enable +DigitalOut Motor_up(PTD4); //Motor arriba +DigitalOut Motor_down(PTA4); //Motor abajo + +DigitalOut Trigger(PTD3); //Trigger Ultrasonido +DigitalIn Echo(PTD1); //Echo ultrasonido +DigitalOut myled(LED1); //monitor trigger +DigitalOut myled2(LED2); //monitor echo + +Serial pc(PTA2, PTA1); + +int distance = 0; +int correction = 0; +Timer sonar; + +int sensordist(void); +void comp(int dmeasured); + +int main(){ + sonar.reset(); + sonar.start(); + while(Echo == 2){}; + myled=0; + sonar.stop(); + correction = sonar.read_us(); + + while(true){ + + int d = sensordist(); + comp(d); + wait_ms(50); + + while((B_p2u == 0)){ + pc.printf("u"); + Motor_up = 1; + Motor_down = 0; + Motor_en.period_ms(50); + Motor_en.pulsewidth_us(4000); + } + while((B_p2d == 0)){ + pc.printf("d"); + Motor_up = 0; + Motor_down = 1; + Motor_en.period_ms(50); + Motor_en.pulsewidth_us(1000); + } + if ((B_p2u == 1) && (B_p2d == 1)){ + pc.printf("p"); + Motor_up = 0; + Motor_down = 0; + } + + wait_ms(500); + + /*if((B_p1 == 0) || (B_c1 == 0)){ + pc.printf("1"); + wait(1); + pc.printf("u"); + + + } + if((B_p2d == 0) || (B_c2 == 0) || (B_p2u == 0)){ + pc.printf("2"); + wait(1); + pc.printf("p"); + + + } + if((B_p3 == 0) || (B_c3 == 0)){ + pc.printf("3"); + wait(1); + pc.printf("d"); + + + } + if((B_open == 0)){ + pc.printf("4"); + wait(1); + } + if((B_close == 0)){ + pc.printf("5"); + wait(1); + } + if((B_stop == 0)){ + pc.printf("6"); + wait(1); + + } + */ + } + + + } + + + +int sensordist(void){ + Trigger = 1; + myled = 1; + myled2 = 0; + sonar.reset(); + wait_us(10.0); + Trigger = 0; + myled = 0; + while (Echo==0) {}; + myled2=Echo; + sonar.start(); + while (Echo==1) {}; + sonar.stop(); + distance = (sonar.read_us()-correction)/58.0; + myled2 = 0; + return distance; +} + +void comp(int dmeasured){ + if((dmeasured <= 5)){ + pc.printf("9"); + } + else if ((dmeasured > 5 && dmeasured <= 10)){ + pc.printf("8"); + } + else if ((dmeasured > 10 && dmeasured <= 15)){ + pc.printf("7"); + } + else if ((dmeasured > 15 && dmeasured <= 20)){ + pc.printf("6"); + } + else if ((dmeasured > 20 && dmeasured <= 25)){ + pc.printf("5"); + } + else if ((dmeasured > 25 && dmeasured <= 30)){ + pc.printf("4"); + } + else if ((dmeasured > 30 && dmeasured <= 35)){ + pc.printf("3"); + } + else if ((dmeasured > 35 && dmeasured <= 40)){ + pc.printf("2"); + } + else if ((dmeasured > 40 && dmeasured <= 46)){ + pc.printf("1"); + } + else{ + pc.printf("0"); + } + } + + + +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Thu Jun 07 18:53:31 2018 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/mbed_official/code/mbed/builds/5aab5a7997ee \ No newline at end of file