LCD Connection

Dependencies:   TextLCD mbed

Fork of PID_encoder by Sebastian Quintero Zapata

Revision:
1:954623d16310
Parent:
0:40599894595a
Child:
2:81e45f6f6410
--- a/main.cpp	Wed Oct 28 02:13:14 2015 +0000
+++ b/main.cpp	Thu Sep 29 16:48:52 2016 +0000
@@ -1,240 +1,12 @@
 #include "mbed.h"
 #include "TextLCD.h"// nos permite usar el lcd en nuestro comando 
-#include "DebouncedIn.h" // esta libreria es útil para podeer declarar todas las teclas o botones que se posean 
-#include "QEI.h" // nos permite  utilizar el encoder
-TextLCD lcd(PTE0, PTE1, PTE2, PTE3, PTE4, PTE5); // rs, e, d4-d7 Teclado
-QEI wheel (PTD5, PTD0, NC, 100);
-//asignamos el puerto a cada interruptor
 
-DebouncedIn button1(PTC12); //Aumentar
-DebouncedIn button2(PTC13); //Decrementar 
-DebouncedIn button3(PTC16); //Pasar 
-DebouncedIn button4(PTC17); //inicio
-
-// asignamos los pines a la salida y a la entrada  (analógicas)
 
-AnalogIn y(PTB1);   // Salida de la planta
-AnalogOut u(PTE30); // Señal de control
-
-//Salidas digitales utilziadas para la comprobación del funcionamiento 
-
-DigitalOut led1(LED1); 
-DigitalOut led2(LED2);
-DigitalOut led3(LED3);
-Timer t;// nos permite saber cuanto tiempo permanecen presionados los botones asociados al aumento y al decremento  
-int j;
-int i;
-int C1=0x0F;  // inicializamos el lcd y el tipo de formato que este ultizará 
-int sp=0,kp=0,kd=0,ki=0,p=1; // condiciones iniciales de los parametros de controlador. NOTA: la variable p indica en que se  parametro se desea intervenir (kp,ki,kd,sp, pasar e iniciar)
-float  ap, ai, ad, err, med, err_v, pid=0;  // 
+TextLCD lcd(PTE0, PTE1, PTE2, PTE3, PTE4, PTE5, TextLCD::LCD16x2B); // rs, e, d4-d7 Teclado
+//asignamos el puerto a cada interruptor
 
 int main() {
-    lcd.writeCommand(C1);
-    lcd.printf(" Controlador PID\n");
-    wait(2);
-    lcd.cls();
-    lcd.printf("    Equipo_5:\nEliana Mejia E.");
-    wait(2);
-    lcd.cls();
-    lcd.printf("Sebastian Quintero Z. Sebastian Vergara P");
-    wait(2);
-    lcd.cls();
-    lcd.printf("  Ingresar Parametros ");
-    wait(2);
-    
-    retorno:   //Cuando se presiona por segunda vez el botón 4 se retorna a la interfaz de parametros para modificarlos
-    p=1;
-    lcd.cls();
-    lcd.writeCommand(C1);//escribimos un comando segun el manual del modulo LCD
-    lcd.locate(8,0);
-    lcd.printf("Kp=%d", kp);
-    lcd.locate(0,1);
-    lcd.printf("Ki=%d", ki);
-    lcd.locate(8,1);
-    lcd.printf("Kd=%d", kd);
-    lcd.locate(0,0);
-    lcd.printf("Sp=%d", sp);
-
-    while(1) {
-    
-              led3 =1;
-           if (button3.falling()) {   //INCREMENTA POSICION DEL MENU CON BOTON 3 (Switche encoder)
-              led3 =!led3;              
-               ++j;
-               }    
-                                                
-           if (j==0){      
-               sp=sp+wheel.getPulses();
-               wheel.reset();
-                 if (sp>999){
-                       sp=999;
-                            } 
-                 if (sp<0){
-                       sp=0;
-                          }   
-               lcd.locate(2,0);
-               lcd.printf("     ",sp);
-               lcd.locate(2,0);
-               lcd.printf("%d",sp);
-               wait(0.2);
-               
-               if(button3.falling()){
-                 j=1;
-                 led3=0;
-                 wait(0.3);
-                 wheel.reset();   
-                                    }   
-                   
-                     }
-              
-           if (j==1) {
-               kp=kp+wheel.getPulses();
-               wheel.reset();
-                 if (kp>999){
-                     kp=999;
-                          }              
-                 if (kp<0){
-                     kp=0;
-                          }   
-               lcd.locate(10,0);
-               lcd.printf("     ");
-               lcd.locate(10,0);
-               lcd.printf("%d",kp);
-               wait(0.2);
-               
-               if(button3.falling()){
-                 j=2;
-                 led3=0;
-                 wait(0.3);
-                 wheel.reset();    
-                                    }
-                                           
-                      }
-              
-           if (j==2) {
-               ki=ki+wheel.getPulses();
-               wheel.reset();
-                 if (ki>999){
-                     ki=999;
-                          }              
-                 if (ki<0){
-                     ki=0;
-                          }   
-               lcd.locate(2,1);
-               lcd.printf("     ");
-               lcd.locate(2,1);
-               lcd.printf("%d",ki);
-               wait(0.2);
-               
-               if(button3.falling()){
-                 j=3;
-                 led3=0;
-                 wait(0.3);
-                 wheel.reset();
-                                    }
-                                    
-                     }
-                     
-           if (j==3) {
-               kd=kd+wheel.getPulses();
-               wheel.reset();
-                 if (kd>999){
-                     kd=999;
-                            }              
-                 if (kd<0){
-                     kd=0;
-                          }   
-               lcd.locate(10,1);
-               lcd.printf("     ");
-               lcd.locate(10,1);
-               lcd.printf("%d",kd);
-               wait(0.2);
-               
-               if(button3.falling()){
-                 j=0;
-                 led3=0;
-                 wait(0.3);
-                 wheel.reset();
-                                    }
-                                            
-                       } 
-            
-           if (j==4) {
-               j=0;
-                     }                          
-                     
-           if (!button4){
-           break;        //sale del bucle si pisan suiche4
-                        }                  
-              }          //cierro while(1)
-//%---------------------------------------------------------------------   
-      // accionamiento del botón asociado al inicio del programa realizado
-       
-  
-           
-           // se imprimen los parches del control  *****************************************
-           lcd.cls();
-           lcd.printf("Er%d",err);
-           lcd.locate(8,0);
-           lcd.printf("Me%d",med);
-           lcd.locate(0,1);
-           lcd.printf("Sp%d",sp);
-           lcd.locate(8,1);
-           lcd.printf("Co%d",pid);
-           wait(1); 
-           
-       
-        
-        p=0;
-        if(p==0){
-        lcd.cls();// limpia la pantalla y la localiza en (0,0) 
-        lcd.printf("Iniciando PID\n");
-        wait(1); 
-        while(1){    //si se presiona por segunda vez es para modificar los parámetros 
-           
-        
-        med=5*y.read(); // las constantes por la cuál se amplifica la señal dependen del sistema que se desee controlar y en donde lo deseamos limitar 
-        err=sp-med; // error del sistema 
-        ap = kp*err; 
-        
-        // se verifica que la accion integral no sea muy grande
-        
-           if(ai<5)
-           {
-              ai =(ki*err)+ai; //calculo de la integral del error
-           }                     
-           ad = kd*(err-err_v); //calculo de la acción derivativa
-           pid = (ap+ai+ad);
-           
-           // se verifica que pid sea positivo **************************************
-           if(pid<=0){pid=0;}
-           
-           // se verifica que pid sea menor o igual l valor maximo *****************
-          
-           if(pid>=5){pid=5;}
-           u.write(pid); // enviamos el valor de PID  al puerto analógico  de salida 
-           t.start();  
-            
-            if(t>=1)
-            {
-                    lcd.cls(); //limpiamos la pantalla del lcd
-                    lcd.writeCommand(C1);//escribimos un comando segun el manual del modulo LCD en este caso modulo 1
-                    lcd.locate(8,0);
-                    lcd.printf("Err=%0.1f", err);
-                    lcd.locate(0,1);
-                    lcd.printf("Med=%0.1f", med);
-                    lcd.locate(8,1);
-                    lcd.printf("PID=%0.1f", pid);
-                    lcd.locate(0,0);
-                    lcd.printf("Sp=%d", sp);
-                
-                t.reset();
-                
-                } 
-            }
-
-     
-        }     
+    lcd.printf("Lopez GAY\n");   
     }