d
Dependencies: Debounced QEI mbed
Revision 1:e214227f5d00, committed 2013-12-12
- Comitter:
- salvarear
- Date:
- Thu Dec 12 20:51:29 2013 +0000
- Parent:
- 0:93983293c81b
- Commit message:
- d
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
diff -r 93983293c81b -r e214227f5d00 main.cpp --- a/main.cpp Tue Dec 03 19:58:45 2013 +0000 +++ b/main.cpp Thu Dec 12 20:51:29 2013 +0000 @@ -6,7 +6,7 @@ AnalogIn Vin(PTB0); //entrada de la planta AnalogOut Vout(PTE30); //salida hacia la planta -QEI wheel (PTA16, PTA17, NC, 24); //pines correspondientes al encoder. +QEI wheel (PTA16, PTA17, NC, 24); //distribucion de pines para el encoder. TextLCD lcd(PTB10, PTB11, PTE2, PTE3, PTE4, PTE5); // rs, e, d4-d7 DigitalOut led1(LED1); @@ -22,8 +22,7 @@ int C2=0x18; // desplaza izquierda int C3=0x1A; // desplaza derecha int C4=0x0C; // quito cursor bajo -int i; // indice de la variable - +int i; int j,kp,ki,kd,sp,cont,medida,cont1,cont2,cont3; float pid, err, ap, ai, ad, err_v, spf,kif,kpf,kdf,med; @@ -39,7 +38,7 @@ while(1) { - cont1=wheel.getPulses(); //ciclo delpara el encoder + cont1=wheel.getPulses(); //inicia el encoder if(cont1<0){ wheel.reset(); cont1=0; @@ -85,7 +84,7 @@ } - if(button3.falling()) { //al presionar el encoder + if(button3.falling()) { //al oprimir el encoder wheel.reset(); i++; if(i>3) { @@ -115,7 +114,7 @@ if (button4.falling()){ lcd.locate(0,1); lcd.printf("Ha salido del programa "); - break; //sale del bucle si pisan suiche4 + break; } } @@ -141,7 +140,7 @@ // CICLO PRINCIPAL CONTROLADOR PID while(1) { - //leer puerto analogo y asignar a med + med=Vin.read(); medida=med*100; kpf=kp*0.001; @@ -150,22 +149,22 @@ err = (sp-medida); ap = kpf*err; - ai =(kif*err)+ai; //calculo de la integral del error - ad = kdf*(err-err_v); //calculo de la accion derivativa - err_v=err; //guarda el error + ai =(kif*err)+ai; //calculo de la integral del error + ad = kdf*(err-err_v); //calculo de la accion derivativa + err_v=err; //guarda el error pid = (ap+ai+ad); - // se verifica que pid sea menor o igual la valor maximo ***************** + if (pid > 99){ pid=100; } - // se verifica que pid sea positivo ************************************** + if (pid <0){ pid=0; } - //wait(.5); + wait(.5);