Trabajo en el cual se realiza un PID, con los valores ingresados por medio de pulsadores, que son finalmente mostrados con el resultado en un lcd

Dependencies:   Debounced TextLCD mbed

Fork of PID_con_pulsadores by Melissa Elorza

Files at this revision

API Documentation at this revision

Comitter:
GermanD
Date:
Mon Nov 23 23:56:23 2015 +0000
Parent:
2:c4dc480057f6
Commit message:
Trabajo, para la creaci?n de PID, el cual se pueda modificar por pulsadores, y muestre tanto las variables y su resultado en un lcd

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r c4dc480057f6 -r b248a19548db main.cpp
--- a/main.cpp	Tue Oct 13 22:10:20 2015 +0000
+++ b/main.cpp	Mon Nov 23 23:56:23 2015 +0000
@@ -35,21 +35,21 @@
     while(1)
     {
         
-        if (button1.falling())//se cuenta en el flanco de caida para  el boton 1
+        if (button1.falling())//se tiene en cuenta es el flanco de caida (boton 1)
         {
             led1 =!led1;
                        
             if (p==1)// posicion 1 en el  LCD
             {
-                ++sp;//incrementa de a uno
-                if (sp>=5) // se limita sp porque el mayor valor que toma es 5
+                ++sp;       //incrementa de a uno
+                if (sp>=5) // el mayor valor que toma sp es 5
                 {sp=5;
                 }
                 lcd.locate(3,0);
-                lcd.printf("   ");//borra el valor anterior
+                lcd.printf("   ");   //borra el valor anterior
                 lcd.locate(3,0);
                 lcd.printf("%d", sp);//decimal
-                    wait (0.5); //para evitar un error al hundir el boton, y que el programa no lo tome  como si se hubiera dejado hundido el boton
+                    wait (0.5);     // para evitar que el programa crea que se dejó pulsado el boton
             
             }
             else if (p==2) // cambia  a posicion 2
@@ -97,12 +97,12 @@
                 kd = presionado_incremento(11,1,kd);  //se llama la funcion de incremento para kd  
             }
         }
-        if (button2.falling())//se cuenta en el flanco de caida para  el boton 2 decrementar
+        if (button2.falling())//se cuenta en el flanco de caida para  el boton 2 (decrementar)
         {
             led2 =!led2;        
             if (p==1)
             {
-                if (sp==0)  // no mostrar nada evita valores negativos
+                if (sp==0)  // no mostrar nada 
                 {
                 }
                 else
@@ -113,7 +113,7 @@
                     lcd.locate(3,0);
                     lcd.printf("%d", sp);
                     wait(0.5);
-                    //sp = presionado_decremento(3,0,sp);  //se utiliza la funcion decremento
+                   
                 }
             }
             if (p==2)
@@ -125,11 +125,11 @@
                 {
                     --kp;
                     lcd.locate(11,0);
-                    lcd.printf("   ");
+                    lcd.printf("   "); // borra lo que habia antes
                     lcd.locate(11,0);
-                    lcd.printf("%d", kp);
+                    lcd.printf("%d", kp); // imprime el valor de kp 
                     wait(0.5);
-                   // kp = presionado_decremento(11,0,kp);  
+                     
                 }
             }
             if (p==3)
@@ -141,11 +141,11 @@
                 {
                     --ki;
                     lcd.locate(3,1);
-                    lcd.printf("   ");
+                    lcd.printf("   "); // borra el vlalor que habia 
                     lcd.locate(3,1);
-                    lcd.printf("%d", ki);
+                    lcd.printf("%d", ki);//pone el calor de ki
                     wait(0.5);
-                    //ki = presionado_decremento(3,1,ki);  
+                     
                 }
             }
             if (p==4)
@@ -161,7 +161,7 @@
                     lcd.locate(11,1);
                     lcd.printf("%d", kd);
                     wait(0.5);
-                   // kd = presionado_decremento(11,1,kd);  
+                     
                 }
             }
         }
@@ -212,21 +212,20 @@
     //enter
     if(button4.falling())
     {
-      lcd.cls(); // al undir el boton 4 se borra la pantalla
-   //for (int h=0;h<100;h++)
-   //Vout= Vout+0.01;
+      lcd.cls();        //se borra la pantalla
+   
      while(bandera==0)
      {
      wait(0.2);
-     x=Vout.read(); // lee el voltaje de salida que nuestra analoga pero en porcentaje
+     x=Vout.read(); // lee el voltaje de salida en porcentaje
 
      //}
   //pid
       error = sp-x;         // Calcula el error 
    pwmset = kp* error+ki * eInteg +kd* (error - ePrev);    // ecuacion para el PID
-   pwmset=(0.976801/5)*pwmset;            // como el voltaje calculado fue un porcentaje se realiza una conversion respectiva al valor de salida
+   pwmset=(0.976801/5)*pwmset;            // se pasa de porcentaje al respectivo valor de salida
     Vout=pwmset;
-    eInteg =eInteg+ error;                  // integral 
+    eInteg =eInteg+ error;                  // integra
     ePrev = error;
     lcd.locate(0,1);
     lcd.printf("error=%f",error);
@@ -262,7 +261,7 @@
     {
         int marc=0,i=0;
         
-                while(button1==0)   // Cuando el boton 1 esta presionado
+                while(button1==0)   // mientras el boton 1 esta presionado
                     {
                        i=1;
                         wait (0.5);