Codigo que funciona

Dependencies:   DebouncedIn Door HCSR04 mbed

Fork of Ascensor by Andrés Felipe Toro Betancur

Files at this revision

API Documentation at this revision

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
--- /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
--- 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");
         }
     }
 
 
-
-