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;
                
                
            }
        }
    }
}