Parametros PID, Incremental (antirebote)
Dependencies: Debounced TextLCD mbed
Fork of Tarea2 by
main.cpp
- Committer:
- avallejopo
- Date:
- 2013-10-16
- Revision:
- 0:71c0bb945ae8
- Child:
- 1:d54f06e19277
File content as of revision 0:71c0bb945ae8:
#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); } } */ } }