Parametros PID, Incremental (antirebote)
Dependencies: Debounced TextLCD mbed
Fork of Tarea2 by
Diff: main.cpp
- Revision:
- 0:71c0bb945ae8
- Child:
- 1:d54f06e19277
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Wed Oct 16 06:43:52 2013 +0000 @@ -0,0 +1,170 @@ +#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); +DigitalIn button1(PTC12); +DigitalIn button2(PTC13); +DigitalIn button3(PTC16); + + + +int C1=0x0F; +int spnum=0,kinum=0,kpnum=0,kdnum=0,pos=1; +int incremento=1,flagt=0; +Timer t; + +int main() +{ + lcd.cls(); // Borrar Pantalla + lcd.writeCommand(C1);//escribimos un comando segun el manual del modulo LCD + + lcd.locate(8,0); lcd.printf("Kp=%d",kpnum); + //lcd.locate(0,1); lcd.printf("Ki=%d",kinum); + //lcd.locate(8,1); lcd.printf("Kd=%d",kdnum); + //lcd.locate(0,0); lcd.printf("Sp=%d",spnum); + + while(1) + { + if (!button1) + { + if(flagt==0){ + t.start(); + flagt=1; + } + + led1 =!led1; + wait(0.50); + if(!button1) + { + if(t.read()>15){ + incremento=1000; + } + else if(t.read()>10){ + incremento=100; + } + else if(t.read()>5){ + incremento=10; + } + + if(pos==1) + { + spnum+=incremento; + lcd.locate(3,0); lcd.printf("%d", spnum); + } + else if(pos==2) + { + kpnum+=incremento; + lcd.locate(11,0); lcd.printf("%d", kpnum); + } + else if(pos==3) + { + kinum+=incremento; + lcd.locate(3,1); lcd.printf("%d", kinum); + } + else if(pos==4) + { + kdnum+=incremento; + lcd.locate(11,1); lcd.printf("%d", kdnum); + } + } + } + else + { + flagt=0; + t.reset(); + incremento=1; + } +/* + if (button2.falling()) + { + led2 =!led2; + if(pos==1) + { + if(spnum==0) + { + //No ocurre nada + } + else + { + spnum--; + lcd.locate(3,0); lcd.printf(" "); + lcd.locate(3,0); + lcd.printf("%d", spnum); + } + } + else if(pos==2) + { + if(kpnum==0) + { + //No ocurre nada + } + else + { + kpnum--; + lcd.locate(11,0); lcd.printf(" "); + lcd.locate(11,0); + lcd.printf("%d", kpnum); + } + } + else if(pos==3) + { + if(kinum==0) + { + //No ocurre nada + } + else + { + kinum--; + lcd.locate(3,1); lcd.printf(" "); + lcd.locate(3,1); + lcd.printf("%d", kinum); + } + } + else if(pos==4) + { + if(kdnum==0) + { + //No ocurre nada + } + else + { + kdnum--; + lcd.locate(11,1); lcd.printf(" "); + lcd.locate(11,1); + lcd.printf("%d", kdnum); + } + } + } + + if (button3.falling()) + { + led3 =!led3; + if(pos==4) + { + pos=1; + lcd.locate(3,0);lcd.printf("%d", spnum); + } + else if (pos==1) + { + pos++; + lcd.locate(11,0);lcd.printf("%d", kpnum); + } + else if(pos==2){ + pos++; + lcd.locate(3,1);lcd.printf("%d", kinum); + } + else if(pos==3){ + pos++; + lcd.locate(11,1);lcd.printf("%d", kdnum); + } + + } + */ + } +} \ No newline at end of file