Control Motor CD

Dependencies:   mbed-rtos mbed

Fork of Muestreo_Motor_CD_Tuzo by PROCESAMIENTO_DIGITAL

Revision:
1:f7fb4980557c
Parent:
0:1c17e8f0fcc0
--- a/main.cpp	Thu Nov 09 19:49:42 2017 +0000
+++ b/main.cpp	Fri Nov 10 00:39:50 2017 +0000
@@ -9,26 +9,29 @@
 DigitalOut senal1(p21);
 DigitalIn opto(p23);
 AnalogIn pot(p19);
+DigitalOut prueba1(p10);
+InterruptIn prueba2(p9);
 
 Timer t;                        //Función que medirá el tiempo de operación
-Thread thread, thread2, thread3, thread4;              //Función que se ejecutará en paralelo al programa principal 
-float velo=0, vRef=0, err=0, p=0, control=0, b=0, c=0, Control1=0;                     //Variable flotante en la cual se guardará la velocidad en rpm
+//Thread thread;
+//Thread thread2;
+//Thread thread3;
+Thread thread4;              //Función que se ejecutará en paralelo al programa principal 
+Thread thread5;
+float velo=0, vRef=0, err=0, p=0, control=0, b, c, Control1=0;                     //Variable flotante en la cual se guardará la velocidad en rpm
 int iteraciones=0;              //iteraciones=Variable que contará el número de pulsos
 
+/*void Prueba() {
+    senal1=1;
+    wait(.0003);
+    senal1=0;
+    led2=!led2;
+    }*/
+
 void controlador() {               
     //Thread::wait(3000);
     while(1) {
-    senal1=0;
-    b = pot.read();
-    c = b*0.00833*1000;
-    if (opto==1)
-    {
-        Thread::wait(c); 
-        senal1=1;
-        Thread::wait(.3);
-        senal1=0;
-        Thread::wait(9-c);    
-    }    
+    //prueba2.rise(&Prueba);
     }
 }
 
@@ -36,9 +39,15 @@
     iteraciones=iteraciones+1;
 }
 
+void pruebas() {              
+    while(1){
+        senal=pulsos.read();    //se filtra la señal del encoder, para limpar el ruido.
+        }
+        }
+
 void filtro() {              
     while(1){
-        senal=pulsos.read();    //se filtra la señal del encoder, para limpar el ruido.
+        prueba1=opto.read();    //se filtra la señal del encoder, para limpar el ruido.
         }
 }
 
@@ -46,7 +55,7 @@
     inter.rise(&contador);      //Se declara la interrupción
 }
 
-void vel() {                                                    //Funcion Se convierte de iteraciones a rpmn vel, ejecutada por el hilo secundario
+/*void vel() {                                                    //Funcion Se convierte de iteraciones a rpmn vel, ejecutada por el hilo secundario
     while (1) {                                                 //Se ejecuta siempre
         t.reset();                                              //Se inicializa el timer
         Thread::wait(1000);                                     //Se espera 1 segundo
@@ -57,15 +66,22 @@
         //printf("el tiempo es:  %f\n\r", t.read());            //Se imprime el tiempo de ejecución para monitorear
         iteraciones=0;                                          //Se comienza la cuenta de iteraciones de 0, para el siguiente ciclo
         }
-    }
+    }*/
     
 int main() {
     //vRef=600;                    //Hilo principal
-    t.start();                  //Se inicializa el timer    
-    thread.start(vel);          //Se inicializa el hilo secundario
-    thread2.start(filtro);
-    thread3.start(interr);
+    //t.start();                  //Se inicializa el timer    
+    //thread.start(vel);          //Se inicializa el hilo secundario
+    //thread2.start(filtro);
+    //thread3.start(interr);
     thread4.start(controlador);
+    thread5.start(filtro);
+    
+    while(1){
+        led1=!led1;
+            
+    }  
+        }
     //p=0.4295;
     /*while(1) {
     err= vRef-velo;
@@ -85,4 +101,4 @@
     if(err>600 && err<1000){
         
         }  */  
-    }
+