![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Tarea 2 Procesadores Botones pulsadores con sonido
Dependencies: Debounced TextLCD mbed
main.cpp
- Committer:
- Jesse
- Date:
- 2014-04-02
- Revision:
- 0:ad772c4ebc42
File content as of revision 0:ad772c4ebc42:
#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); PwmOut Pwm(PTA5); DebouncedIn button1(PTC10); DebouncedIn button2(PTC11); DebouncedIn button3(PTC6); float Du; float Du1; float pp; float Fi; int C1=0x0F; int sp=0,kp=0,kd=0,ki=0,p=1,Pp=0,Dd=1; int main() { //Fi=(Dd)*100; //pp=(1/Fi); //Pwm.period(pp); //Du=(Pp/100); //Du1=(1-Du); lcd.cls(); lcd.writeCommand(C1);//escribimos un comando segun el manual del modulo LCD lcd.locate(6,0); lcd.printf("kp=%d", kp); lcd.locate(0,1); lcd.printf("Ki=%d", ki); lcd.locate(6,1); lcd.printf("Kd=%d", kd); lcd.locate(0,0); lcd.printf("Sp=%d", sp); lcd.locate(12,0); lcd.printf("F=%d",Dd); lcd.locate(12,1); lcd.printf("D=%d",Pp); while(1) { Fi=(Dd)*100; pp=(1/Fi); Pwm.period(pp); Du=(Pp/10); Du1=(1-Du); if (button1.falling()) { //Pwm.period); Pwm.write(0.1); wait(0.1); Pwm.write(0); wait(0.1); led1 =!led1; if (p==1) { ++sp; lcd.locate(3,0); lcd.printf(" "); lcd.locate(3,0); lcd.printf("%d", sp); //lcd.locate(15,0); //.printf(" "); } else if (p==2) { ++kp; lcd.locate(9,0); lcd.printf(" "); lcd.locate(9,0); lcd.printf("%d", kp); } else if (p==3) { ++ki; lcd.locate(3,1); lcd.printf(" "); lcd.locate(3,1); lcd.printf("%d", ki); } else if (p==4) { ++kd; lcd.locate(9,1); lcd.printf(" "); lcd.locate(9,1); lcd.printf("%d", kd); } else if (p==5) { ++Dd; lcd.locate(14,0); lcd.printf(" "); lcd.locate(14,0); lcd.printf("%d", Dd); } else if (p==6) { ++Pp; lcd.locate(14,1); lcd.printf(" "); lcd.locate(14,1); lcd.printf("%d", Pp); } } if (button2.falling()) { Pwm.write(0.1); wait(0.1); Pwm.write(0); wait(0.1); //Pwm.period_us(2000); //Pwm.write(0.5); //wait(0.025); led2 =!led2; if (p==1) { if (sp==0) // no mostrar nada { } else { --sp; lcd.locate(3,0); lcd.printf(" "); lcd.locate(3,0); lcd.printf("%d", sp); } } if (p==2) { if (kp==0) // no mostrar nada { } else { --kp; lcd.locate(9,0); lcd.printf(" "); lcd.locate(9,0); lcd.printf("%d", kp); } } if (p==3) { if (ki==0) // no mostrar nada { } else { --ki; lcd.locate(3,1); lcd.printf(" "); lcd.locate(3,1); lcd.printf("%d", ki); } } if (p==4) { if (kd==0) // no mostrar nada { } else { --kd; lcd.locate(9,1); lcd.printf(" "); lcd.locate(9,1); lcd.printf("%d", kd); } } if (p==5) { if (Dd==1) // no mostrar nada { } else { --Dd; lcd.locate(14,0); lcd.printf(" "); lcd.locate(14,0); lcd.printf("%d", Dd); } } if (p==6) { if (Pp==0) // no mostrar nada { } else { --Pp; lcd.locate(14,1); lcd.printf(" "); lcd.locate(14,1); lcd.printf("%d", Pp); } } } if (button3.falling()) { Pwm.write(0.1); wait(0.1); Pwm.write(0); wait(0.1); led3 =!led3; if (p==1) { ++p; lcd.locate(9,0); lcd.printf("%d", kp); } else if (p==2) { ++p; lcd.locate(3,1); lcd.printf("%d", ki); lcd.locate(3,1); } else if (p==3) { ++p; lcd.locate(9,1); lcd.printf("%d", kd); } else if (p==4) { ++p; lcd.locate(3,0); lcd.printf("%d", sp); } else if (p==5) { ++p; lcd.locate(14,0); lcd.printf("%d", Dd); } else if (p==6) { p=1; lcd.locate(14,1); lcd.printf("%d", Pp); //p=1; } } } }