the program have one sensor acs712 and moduleds1302

Dependencies:   FATFileSystem mbed

Revision:
0:b82abca089ac
diff -r 000000000000 -r b82abca089ac main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu Jun 08 20:17:34 2017 +0000
@@ -0,0 +1,200 @@
+#define SCLK    p13
+#define IO      p12
+#define CE      p11
+
+#define INITIAL_RUN
+
+#include "mbed.h"
+#include <string.h>
+#include "rtos.h"
+#include "DS1302.h"
+#include "ACS712.h""
+
+
+DigitalOut led(LED1);
+DigitalIn button(p21);
+DigitalIn mold1(p22);
+DigitalIn mold2(p23);
+DigitalIn seguridad(p24);
+DigitalIn operacion(p25);
+DigitalIn molder(p26);
+DigitalIn molder1(p27);
+int molde;
+int molde2;
+int cont;
+int conta;
+int piezas;
+int pieza;
+int contador=0;
+int espera;
+int moldeacti=0;
+int moldeactir=0;
+float bajos=0;
+float altos=0;
+int tred;
+float descanso;
+float retardo=0;
+float gf;
+float promedio;
+float promaltos;
+float prombajos;
+float trabajo;
+char LED[100];
+char Str[100];
+ // ACS712 dev(p19);
+Serial pc(USBTX, USBRX);
+Serial blue(p9, p10);
+DS1302 clk(SCLK, IO, CE);
+Mutex stdio_mutex; 
+ 
+
+ /*void mold_thread(void const *argument){
+     while(1){
+     if (mold1==1)
+        {blue.printf("MOLDE DE 2 PIEZAS\n\r");wait(0.5);}
+        }
+    }
+
+void moldt_thread(void const *argument){
+     while(1){
+     if (mold2==1)
+        {blue.printf("MOLDE DE 7 PIEZAS\n\r");wait(0.5);}
+        }
+    }*/
+
+void segur_thread(void const *argument){
+     while(1){
+         time_t seconds = clk.time(NULL);
+     if (seguridad==1)
+        {blue.printf("SEGURIDAD VIOLADA ");wait(0.5);blue.printf("EN TIEMPO Y FECHA:%s\r", ctime(&seconds));} 
+        }   
+    }  
+
+/*void pro_thread(void const *argument){
+     while(1){
+     if (operacion==1)
+        //{blue.printf("\rPROMEDIO DESCANSO=%f",promedio); blue.printf(" MINUTOS\n");wait(0.5);
+        {blue.printf("\rPROMEDIO DE TIEMPOS ALTOS= %f",promaltos);blue.printf(" SEGUNDOS\n");wait(0.5);
+        blue.printf("\rPROMEDIO DE TIEMPOS BAJOS= %f",prombajos);blue.printf(" SEGUNDOS\n\r");wait(0.5);}
+        }   
+    } */ 
+    
+void modacti_thread(void const *argument){
+     while(1){
+if (molder==1)
+    {molde=1;pc.printf("CONT MOLD1=%d\n",moldeacti);}else{molde=0;}
+    
+    if (molde==1)
+    {moldeacti++;wait(25);}
+    }
+}
+void modacti1_thread(void const *argument){
+     while(1){
+if (molder1==1)
+    {molde2=1;pc.printf("CONT MOLD2=%d\n",moldeactir);}else{molde2=0;}
+    
+    if (molde2==1)
+    {moldeactir++;wait(25);}
+    }
+}
+
+void prome_thread(void const *argument){
+     while(1){
+          if (tred==1)
+           {altos++; wait(1); pc.printf("altos= %f\n",altos);}
+    
+         if (tred==0 && contador>=1&& espera<=24)
+         {bajos++;wait(1); pc.printf("bajos= %f\n",bajos);}
+
+    }
+}
+
+void trans_thread(void const *argument){
+ while(1)
+     {
+         if (blue.readable())
+         {
+             blue.scanf("%s",&Str);
+             pc.printf("%s\n\r",Str);
+            strcpy(LED,   strtok(Str , ","));
+            
+             
+             if(strcmp(LED,"ACEPTAR")==0){led=1;
+            blue.printf("\rPROMEDIO DE TIEMPOS ALTOS= %f",promaltos);blue.printf(" SEGUNDOS\n");wait(0.5);
+        blue.printf("\rPROMEDIO DE TIEMPOS BAJOS= %f",prombajos);blue.printf(" SEGUNDOS\n\r");wait(0.5);
+        blue.printf("\rEL MOTOR SE ACTIVO= %d\n,",contador);blue.printf(" VECES\r\n");
+        blue.printf("\rEL MOLDE DE 2 PZAS SE ACTIVO= %d\n,",moldeacti);blue.printf(" VECES\r\n");
+         blue.printf("\rEL MOLDE DE 7 PZAS SE ACTIVO= %d\n,",moldeactir);blue.printf(" VECES\r\n");}
+        }   
+    }
+    
+    }
+
+  
+    
+  
+int main() {
+   // Thread Hthread1 (mold_thread);
+    //Thread Hthread2 (moldt_thread);
+    Thread Hthread1 (segur_thread);
+    //Thread Hthread4 (pro_thread);
+    Thread Hthread2 (modacti_thread);
+    Thread Hthread3 (modacti1_thread);
+    Thread Hthread4 (prome_thread);
+    Thread Hthread5 (trans_thread);
+    blue.baud(9600);
+  
+      #ifdef INITIAL_RUN
+    clk.set_time(1496802000);
+    #endif
+    
+    char storedByte = clk.recallByte(0);
+    pc.printf("\r\nStored byte was %d, now increasing by one\r\n", storedByte);
+    clk.storeByte(0, storedByte + 1);
+    ACS712 dev(p18);
+    while (1) 
+    {
+           time_t seconds = clk.time(NULL);
+           //pc.printf("Time as a basic string = %s\r", ctime(&seconds));
+           pc.printf("Sensor Value: %2.2f A\n\r", float(dev));
+        
+       
+    if (cont==0 && dev >= 0.02)
+    {cont=1; contador++;espera=0;tred=1;}
+    
+    if (cont==1 && dev <= -0.05)
+    { cont=0;tred=0;}
+    
+    if (dev <= -0.05 && contador>=1)
+    {espera++; pc.printf("espera=%d\n",espera);}
+    
+    //if (espera>=40)
+    //{descanso++;pc.printf("descanso=%f\n",descanso);pc.printf("retardo=%f\n",retardo);}
+    
+    if( gf==0 && espera>=40)
+      {gf=1;retardo++;}
+      
+    if (gf==1 && espera<=20)
+    {gf=0;}
+    
+   // promedio=(descanso/60)/retardo;
+    
+    promaltos=(altos)/contador;
+    
+    prombajos=(bajos)/(contador+1);
+      
+    pc.printf("conta=%d\n\r",contador);
+     wait(1);
+        
+    if (espera==20)
+    {blue.printf("EL PROCESO SE DETUVO EN TIEMPO Y FECHA:%s\r", ctime(&seconds));}
+    
+    if (espera >= 20 && dev >0.02)
+    {blue.printf("El PROCESO ARRANCO EN TIEMPO Y FECHA:%s\r", ctime(&seconds));}
+
+    
+    //if (contador==1 && dev < 0)
+    //{blue.printf("INICIO DE PROCESO\n\r");}   
+    
+    }
+}
\ No newline at end of file