ultimaact

Dependencies:   mbed Adafruit_GFX DS1820

Revision:
14:21cb6b2ac16b
Parent:
13:d2c49ef3b2ac
diff -r d2c49ef3b2ac -r 21cb6b2ac16b main.cpp
--- a/main.cpp	Tue Dec 14 12:27:41 2021 +0000
+++ b/main.cpp	Tue Dec 14 13:05:02 2021 +0000
@@ -4,7 +4,7 @@
 
 
 #include "Adafruit_SSD1306.h"
- 
+
 class I2CPreInit : public I2C
 {
 public:
@@ -14,12 +14,12 @@
         start();
     };
 };
- 
- 
+
+
 I2CPreInit gI2C(PB_9,PB_8);
- 
+
 // an SPI sub-class that provides a constructed default
- 
+
 Adafruit_SSD1306_I2c gOled(gI2C,NC,0x78,64,128);
 
 
@@ -36,22 +36,22 @@
 DigitalOut step(D13);
 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          
+DigitalOut  led(LED1);
+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;
 
 
-int x=1;
-int y=0;
+char x='0';
+char y='0';
 //if (x==1){
-     //y=0;
-   // }else{
-      //   y=1;
-     //   }
+//y=0;
+// }else{
+//   y=1;
+//   }
 
 ////////////////
 Timer tiempo;
@@ -76,117 +76,116 @@
 
 void estadoCerrada()
 {
-   if (x==1){
-    if( (finalIzq == 1) && contador <3) {
-        wait(0.5);
-        enable=1;
-        estado=abriendose;
-       // pc.printf("Distance =%d\n",distancia);
-        pc.printf("Final2 pulsado\r\n");
-        
-       
-        //distancia < 5 
-    }else if(contador==3){
-        y=1;
-        x=0;
+    if (x=='1') {
+        if( (finalIzq == 1) && contador <3) {
+            wait(0.5);
+            enable=1;
+            estado=abriendose;
+            // pc.printf("Distance =%d\n",distancia);
+            pc.printf("Final2 pulsado\r\n");
+
+
+            //distancia < 5
+        } else if(contador==3) {
+            y='1';
+            x='0';
         }
     }
-    if(x==0 &&y==0){
+    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;
         }
-        
-        
-    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)) {
-        
-        estado=abierta;
-        enable=0;
-             
-    } else  {
-        gOled.clearDisplay();
-  
-        paso(1);
-        //pc.printf("paso\n");
-        
-    }
+
+    if(x=='1') {
+        //pc.printf("Distance =%d\n",distancia);
+        if((finalDer==1)) {
+
+            estado=abierta;
+            enable=0;
+
+        } else  {
+            gOled.clearDisplay();
+
+            paso(1);
+            //pc.printf("paso\n");
+
+        }
     }
-  //  if (distancia<4){
-        //estado=cerrandose;
-        
-       // }
-       if(y==1){
-           
-               
-                   if(tiempo.read()<0.5){
-                   paso(1);
-                   }
-                   else if(finalIzq==0){
-                       paso(0);
-                       }
-                       else{
-                           estado=cerrada;
-                           }
-                   
-           }
-    
-   
+    //  if (distancia<4){
+    //estado=cerrandose;
+
+    // }
+    if(y=='1') {
+
+
+        if(tiempo.read()<0.5) {
+            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 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()
 {
     //pc.printf("Distance =%d\n",distancia);
     //if (finalDer==1) {
-        
-        
-        enable=1;
-        estado=cerrandose;
-        pc.printf("Final1 pulsado\r\n");
-        
+
+
+    enable=1;
+    estado=cerrandose;
+    pc.printf("Final1 pulsado\r\n");
+
     //}
     contador++;
     gOled.clearDisplay();
     gOled.printf("piezas transportadas %d\n",contador);
     gOled.printf("temp = %3.1f C\r\n", temp);
     gOled.display();
-        gOled.setTextCursor(0,0);
-          
-    
-   
+    gOled.setTextCursor(0,0);
+
+
+
 }
 
 int main()
@@ -194,69 +193,71 @@
     pc.baud(115200);
     tickerMideDistancia.attach(&mideDistancia, 0.5);
     estado=cerrada;
-     gOled.begin();
+    gOled.begin();
     gOled.clearDisplay();
-     gOled.printf("Hola\n");
-     gOled.display();
-      //x=(pc.getc());
+    gOled.printf("Hola\n");
+    gOled.display();
+    //x=(pc.getc());
     //pc.printf("Estado cerrada\n");
-    if(x==1){
+    if(x==1) {
         gOled.clearDisplay();
-     gOled.printf("Programa de transporte de piezas\n");
-     gOled.display();
-        }
-        
-        if(y==1){
+        gOled.printf("Programa de transporte de piezas\n");
+        gOled.display();
+    }
+
+    if(y==1) {
         gOled.clearDisplay();
-     gOled.printf("Programa de taladro\n");
-     gOled.display();
-        }
+        gOled.printf("Programa de taladro\n");
+        gOled.display();
+    }
     tiempo.reset();
-    
-     int  error = 0; 
+
+    int  error = 0;
     pc.baud(115200);
-    
+
     if(ds1820.begin()) {
         while(1) {
-            
-            
+
+
             ds1820.startConversion();  // start temperature conversion from analog to digital
-            wait(1.0);                 // let DS1820 complete the temperature conversion 
+            wait(1.0);                 // let DS1820 complete the temperature conversion
             error = ds1820.read(temp); // read temperature from DS1820 and perform cyclic redundancy check (CRC)
             switch(error) {
-            case 0:    // no errors -> 'temp' contains the value of measured temperature
-                pc.printf("temp = %3.1f C\r\n", temp);
-                break;
-            case 1:    // no sensor present -> 'temp' is not updated
-                pc.printf("no sensor present\n\r");
-                break;
-            case 2:    // CRC error -> 'temp' is not updated
-                pc.printf("CRC error\r\n");
-            } 
+                case 0:    // no errors -> 'temp' contains the value of measured temperature
+                    pc.printf("temp = %3.1f C\r\n", temp);
+                    break;
+                case 1:    // no sensor present -> 'temp' is not updated
+                    pc.printf("no sensor present\n\r");
+                    break;
+                case 2:    // CRC error -> 'temp' is not updated
+                    pc.printf("CRC error\r\n");
+            }
             led = !led;
         }
     } else
         pc.printf("No DS1820 sensor found!\r\n");
-    
-    
-    
-    
-    
+
+
+
+
+
     while(1) {
         distancia=usensor.get_dist_cm();
-        
+        if(pc.readable()) {
+            x=(pc.getc());
+        }
         //calefactor
- //     rele=1;
- //     led=1;
+//     rele=1;
+//     led=1;
 //      wait(1.0);
- //     rele=0;
+//     rele=0;
 //      led=0;
- //     wait(1.0);
+//     wait(1.0);
         //
         if(pc.readable()) {
             x=(pc.getc());
         }
-        
+
         switch ( estado ) {
             case cerrada:
                 estadoCerrada();