
Codigo que funciona
Dependencies: DebouncedIn Door HCSR04 mbed
Fork of Ascensor by
Revision 1:27e51c864014, committed 2018-06-07
- Comitter:
- laura015
- Date:
- Thu Jun 07 21:25:25 2018 +0000
- Parent:
- 0:4f72e674f36d
- Commit message:
- C?digo manual ascensor
Changed in this revision
Door.lib | Show annotated file Show diff for this revision Revisions of this file |
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
diff -r 4f72e674f36d -r 27e51c864014 Door.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Door.lib Thu Jun 07 21:25:25 2018 +0000 @@ -0,0 +1,1 @@ +http://os.mbed.com/users/Hedizxom/code/Door/#253f5b9afee1
diff -r 4f72e674f36d -r 27e51c864014 main.cpp --- a/main.cpp Thu Jun 07 18:53:31 2018 +0000 +++ b/main.cpp Thu Jun 07 21:25:25 2018 +0000 @@ -37,18 +37,21 @@ int sensordist(void); void comp(int dmeasured); +int Piso_trans; +int Piso_act; + int main(){ - sonar.reset(); - sonar.start(); + sonar.reset(); // Se resetea el temporizador + sonar.start(); // Se inicia el temporizador while(Echo == 2){}; myled=0; sonar.stop(); - correction = sonar.read_us(); + correction = sonar.read_us(); // Se halla el factor de corrección while(true){ - int d = sensordist(); - comp(d); + int d = sensordist(); // Lectura del sensor de ultrasonido + comp(d); // Entrego el valor del piso actual wait_ms(50); while((B_p2u == 0)){ @@ -56,61 +59,52 @@ Motor_up = 1; Motor_down = 0; Motor_en.period_ms(50); - Motor_en.pulsewidth_us(4000); + Motor_en.pulsewidth_us(3500); } while((B_p2d == 0)){ pc.printf("d"); Motor_up = 0; Motor_down = 1; Motor_en.period_ms(50); - Motor_en.pulsewidth_us(1000); + Motor_en.pulsewidth_us(150); } 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 (Piso_act==1){ + if(B_open == 0){ // Si presiono el boton de apertura + S_1.period_ms(30) ; + S_1.pulsewidth_us(2300); + } + if(B_close == 0){ // Si presiono el boton de apertura + S_1.period_ms(30) ; + S_1.pulsewidth_us(600); } - if((B_p2d == 0) || (B_c2 == 0) || (B_p2u == 0)){ - pc.printf("2"); - wait(1); - pc.printf("p"); - + } + if (Piso_act==3){ + if(B_open == 0){ // Si presiono el boton de apertura + S_3.period_ms(30) ; + S_3.pulsewidth_us(2300); + } + if(B_close == 0){ // Si presiono el boton de apertura + S_3.period_ms(30) ; + S_3.pulsewidth_us(600); + } + } + + if(B_p1 == 0){ + while(Piso_act!=1){ } - 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); - - } - */ } - - + + + wait_ms(300); + + } } @@ -133,11 +127,15 @@ return distance; } -void comp(int dmeasured){ - if((dmeasured <= 5)){ - pc.printf("9"); +void comp(int dmeasured){ // Comparación de distancia para determinar piso actual + if((dmeasured <= 20)){ + pc.printf("3"); + Piso_trans=3; + if (dmeasured <= 6){ + Piso_act=3; + } } - else if ((dmeasured > 5 && dmeasured <= 10)){ + /*else if ((dmeasured > 5 && dmeasured <= 10)){ pc.printf("8"); } else if ((dmeasured > 10 && dmeasured <= 15)){ @@ -148,24 +146,30 @@ } else if ((dmeasured > 20 && dmeasured <= 25)){ pc.printf("5"); + }*/ + else if ((dmeasured > 20 && dmeasured <= 35)){ + pc.printf("2"); + Piso_trans=2; + if ((dmeasured > 25 && dmeasured <= 27)){ + Piso_act=2; + } } - else if ((dmeasured > 25 && dmeasured <= 30)){ - pc.printf("4"); - } - else if ((dmeasured > 30 && dmeasured <= 35)){ + /*else if ((dmeasured > 30 && dmeasured <= 35)){ pc.printf("3"); } else if ((dmeasured > 35 && dmeasured <= 40)){ pc.printf("2"); - } - else if ((dmeasured > 40 && dmeasured <= 46)){ + }*/ + else if ((dmeasured > 35){ pc.printf("1"); - } + Piso_trans=1; + if ((dmeasured > 45)){ + Piso_act=1; + } + } else{ pc.printf("0"); } } - -