Ingresar valores al PID sin incremental.
Dependencies: Debounced TextLCD1 mbed
Revision 0:a9989a1d4252, committed 2013-10-21
- Comitter:
- jmcallef
- Date:
- Mon Oct 21 23:33:27 2013 +0000
- Commit message:
- Ingreso de valores para un controlador PID, sin incremental.
Changed in this revision
diff -r 000000000000 -r a9989a1d4252 Debounced.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Debounced.lib Mon Oct 21 23:33:27 2013 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/WarwickRacing/code/Debounced/#8992c13bbb9b
diff -r 000000000000 -r a9989a1d4252 TextLCD.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TextLCD.lib Mon Oct 21 23:33:27 2013 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/jmcallef/code/TextLCD1/#104ddbfc7132
diff -r 000000000000 -r a9989a1d4252 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Mon Oct 21 23:33:27 2013 +0000 @@ -0,0 +1,179 @@ +#include "mbed.h" +#include "DebouncedIn.h" +#include "TextLCD.h" + +AnalogIn Vin(PTC2); +TextLCD lcd(PTB10, PTB11, PTE2, PTE3, PTE4, PTE5); // rs, e, d4-d7 + +DigitalOut led1(LED1); +DigitalOut led2(LED2); +DigitalOut led3(LED3); +DigitalOut led4(LED4); +DebouncedIn button1(PTC12); // Aumento +DebouncedIn button2(PTC13); // Disminución +DebouncedIn button3(PTC16); // Cambio de variable +DebouncedIn button4(PTC17); // Reset + +int C1=0x0E; // solo muestra el curzor. +int C2=0x18; // desplaza izquierda. +int C3=0x1A; // desplaza derecha. +int C4=0x0C; // quito cursor bajo. + +int i; // Indice de la variable. +int j; // Controla cambio de posición. +int kp, ki, kd, sp; + +int main(){ + lcd.writeCommand(C1); // Escribimos un comando segun el manual del modulo LCD + lcd.cls(); // Borro toda la pantalla + lcd.locate(0,0); // Localizo donde se escribirá el siguiente comando. + lcd.printf("Sp %d",sp); // Escribe Sp (aparecen desde el punto (0,0) + lcd.locate(8,0); // Localizo donde se escribirá el siguiente comando. + lcd.printf("Kp %d",kp); // Escribe Kp (aparecen desde el punto (8,0) + lcd.locate(0,1); + lcd.printf("Ki %d",ki); + lcd.locate(8,1); + lcd.printf("Kd %d",kd); + + + while(1){ + led3 =1; + if (button3.falling()){ + led3 =!led3; // Prendo el LED color rojo cada vez que pulso el boton 3 ya que pasa a valer 0 (encendido). + ++j; + } // INCREMENTA POSICION DEL MENU CON BOTON 3 + if (j==0){ + lcd.locate(3,0); + lcd.printf("%d",sp); + + wait(0.3); + + led1 = 1; + if (button1.falling()) { + led1 =!led1; // Prendo el LED color azul cada vez que pulso el boton 3 ya que pasa a valer 0 (encendido). + ++sp; // Incrementa valor al pulsar el botón. + } + led2 =1; + if (button2.falling()) { + lcd.locate(3,0); + lcd.printf("%d "); + led2 =!led2; // Prendo el LED color rojo cada vez que pulso el boton 3 ya que pasa a valer 0 (encendido). + --sp; // Reduce el valor al pulsar el botón. + } + if (sp>10000){ // Ponemos un tope incremental en 10.000 + sp=10000; + } + + if (sp<0){ // No permitimos valores negativos, definimos valor mínimo en 0. + sp=0; + } + + } + if (j==1){ + lcd.locate(11,0); + lcd.printf("%d",kp); + wait(0.3); + led1 =1; + if (button1.falling()) { + led1 =!led1; + ++kp; + } + led2 =1; + if (button2.falling()) { + lcd.locate(11,0); + lcd.printf("%d "); + led2 =!led2; + --kp; + } + if (kp>10000){ + kp=10000; + lcd.locate(11,0); + lcd.printf("%d",kp); + } + + if (kp<0){ + kp=0; + lcd.locate(11,0); + lcd.printf("%d",kp); + } + } + if (j==2){ + lcd.locate(3,1); + lcd.printf("%d",ki); + wait(0.3); + led1 =1; + if (button1.falling()){ + led1 =!led1; + ++ki; + } + led2 =1; + if (button2.falling()){ + lcd.locate(3,1); + lcd.printf("%d "); + led2 =!led2; + --ki; + } + if (ki>10000){ + ki=10000; + lcd.locate(3,1); + lcd.printf("%d",ki); + } + + if (ki<0){ + ki=0; + lcd.locate(3,1); + lcd.printf("%d",ki); + } + } + + if (j==3){ + lcd.locate(11,1); + lcd.printf("%d",kd); + wait(0.3); + led1 =1; + if (button1.falling()){ + led1 =!led1; + ++kd; + } + led2 =1; + if (button2.falling()){ + lcd.locate(11,1); + lcd.printf("%d "); + led2 =!led2; + --kd; + + + } + if (kd>10000){ + kd=10000; + lcd.locate(11,1); + lcd.printf("%d",kd); + } + + if (kd<0){ + kd=0; + lcd.locate(11,1); + lcd.printf("%d",kd); + } + } + + if (j==4){ + j=0; + } + + if (button4.falling()){ + sp=0; + kp=0; + ki=0; + kd=0; + lcd.locate(11,1); + lcd.printf("%d ",kd); + lcd.locate(3,1); + lcd.printf("%d ",ki); + lcd.locate(11,0); + lcd.printf("%d ",kp); + lcd.locate(3,0); + lcd.printf("%d ",sp); + } + } + } \ No newline at end of file
diff -r 000000000000 -r a9989a1d4252 mbed.bld --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Mon Oct 21 23:33:27 2013 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/a9913a65894f \ No newline at end of file