operacion con botones incrementando y decrementando 1 en 1
Dependencies: Debounced TextLCD mbed
Fork of pid_1 by
Diff: main.cpp
- Revision:
- 0:d5303d5b0cda
diff -r 000000000000 -r d5303d5b0cda main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Tue Dec 03 20:00:17 2013 +0000 @@ -0,0 +1,105 @@ +#include "mbed.h" +#include "DebouncedIn.h" +#include "TextLCD.h" +AnalogIn Vin(PTC2); +TextLCD lcd(PTB10, PTB11, PTE2, PTE3, PTE4, PTE5); // rs, e, d4-d7 //documentacion de las librerias y disposicion de pines + +DigitalOut led1(LED1); +DigitalOut led2(LED2); +DebouncedIn b1(PTC12); +DebouncedIn b2(PTC13); +DebouncedIn b3(PTC16); +DebouncedIn b4(PTC17); + + +int C1=0x0E; // solo muestra el cursor +int C2=0x18; // desplaza el cursor a la izquierda +int C3=0x1A; // desplaza el cursor derecha +int C4=0x1C; // quita el cursor bajo +int a; +int b; +int kp, ki, kd, sp, err, med, yr, pid, ap, ai, ad, err_v, cycle; //revisar antes de la primera tarear(PID) + +int main() { + lcd.cls(); + lcd.printf("Sp%d",sp); //ubicacion de las variables en la pantalla + 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.writeCommand(C1); + lcd.locate(0,0); + lcd.printf("Sp%d",sp); + + + while(1) { //inicio cliclos del pid + if (b1.falling()) { // incrementa + led1 =!led1; + ++a; + lcd.locate(7,0); + lcd.printf("%d", a); + } + if (b2.falling()) { //decrementa + led2 =!led2; + --a; + lcd.locate(7,0); lcd.printf(" "); + lcd.locate(7,0); + lcd.printf("%d", a); + + if (b3.falling()) { + + ++b; + //cambia la posicion del menu + if (b==0){ + lcd.locate(2,0); + lcd.printf("%d",sp); + if (b1.falling()) { + ++sp; //incrementa el sp + } + if (b2.falling()) { + --sp; //decrementa el sp + } + } + if (b==1) { //posiciones de los botones + lcd.locate(10,0); + lcd.printf("%d",kp); + if (b1.falling()) { + ++kp; + } + if (b2.falling()) { + --kp; + } + } + if (b==2) { + lcd.locate(2,1); + lcd.printf("%d",ki); + if (b1.falling()){ + ++ki; + } + if (b2.falling()){ + --ki; + } + } + if (b==3) { + lcd.locate(10,1); + lcd.printf("%d",kd); + if (b1.falling()){ + ++kd; + } + if (b2.falling()){ + --kd; + } + } + } + if (b==4) { + b=0; + } + + if (b4.falling()){ + break; //sale del menu de trabajo + } + } +} +}