Parametros PID por pantalla LCD

Dependencies:   Debounced TextLCD mbed

Committer:
avallejopo
Date:
Fri Nov 15 17:01:23 2013 +0000
Revision:
0:82e4377469f8
Parametros PID

Who changed what in which revision?

UserRevisionLine numberNew contents of line
avallejopo 0:82e4377469f8 1 #include "mbed.h"
avallejopo 0:82e4377469f8 2 #include "DebouncedIn.h"
avallejopo 0:82e4377469f8 3 #include "TextLCD.h"
avallejopo 0:82e4377469f8 4
avallejopo 0:82e4377469f8 5 AnalogIn Vin(PTC2);
avallejopo 0:82e4377469f8 6 TextLCD lcd(PTB10, PTB11, PTE2, PTE3, PTE4, PTE5); // rs, e, d4-d7
avallejopo 0:82e4377469f8 7
avallejopo 0:82e4377469f8 8 DigitalOut led1(LED1);
avallejopo 0:82e4377469f8 9 DigitalOut led2(LED2);
avallejopo 0:82e4377469f8 10 DigitalOut led3(LED3);
avallejopo 0:82e4377469f8 11 DebouncedIn button1(PTC12);
avallejopo 0:82e4377469f8 12 DebouncedIn button2(PTC13);
avallejopo 0:82e4377469f8 13 DebouncedIn button3(PTC16);
avallejopo 0:82e4377469f8 14
avallejopo 0:82e4377469f8 15 int C1=0x0F;
avallejopo 0:82e4377469f8 16 int spnum=0,kinum=0,kpnum=0,kdnum=0,pos=1;
avallejopo 0:82e4377469f8 17
avallejopo 0:82e4377469f8 18 int main()
avallejopo 0:82e4377469f8 19 {
avallejopo 0:82e4377469f8 20 lcd.cls(); // Borrar Pantalla
avallejopo 0:82e4377469f8 21 lcd.writeCommand(C1);//escribimos un comando segun el manual del modulo LCD
avallejopo 0:82e4377469f8 22
avallejopo 0:82e4377469f8 23 lcd.locate(8,0); lcd.printf("Kp=%d",kpnum);
avallejopo 0:82e4377469f8 24 lcd.locate(0,1); lcd.printf("Ki=%d",kinum);
avallejopo 0:82e4377469f8 25 lcd.locate(8,1); lcd.printf("Kd=%d",kdnum);
avallejopo 0:82e4377469f8 26 lcd.locate(0,0); lcd.printf("Sp=%d",spnum);
avallejopo 0:82e4377469f8 27
avallejopo 0:82e4377469f8 28 while(1)
avallejopo 0:82e4377469f8 29 {
avallejopo 0:82e4377469f8 30 if (button1.falling())
avallejopo 0:82e4377469f8 31 {
avallejopo 0:82e4377469f8 32 led1 =!led1;
avallejopo 0:82e4377469f8 33 if(pos==1)
avallejopo 0:82e4377469f8 34 {
avallejopo 0:82e4377469f8 35 spnum++;
avallejopo 0:82e4377469f8 36 lcd.locate(3,0); lcd.printf("%d", spnum);
avallejopo 0:82e4377469f8 37 }
avallejopo 0:82e4377469f8 38 else if(pos==2)
avallejopo 0:82e4377469f8 39 {
avallejopo 0:82e4377469f8 40 kpnum++;
avallejopo 0:82e4377469f8 41 lcd.locate(11,0); lcd.printf("%d", kpnum);
avallejopo 0:82e4377469f8 42 }
avallejopo 0:82e4377469f8 43 else if(pos==3)
avallejopo 0:82e4377469f8 44 {
avallejopo 0:82e4377469f8 45 kinum++;
avallejopo 0:82e4377469f8 46 lcd.locate(3,1); lcd.printf("%d", kinum);
avallejopo 0:82e4377469f8 47 }
avallejopo 0:82e4377469f8 48 else if(pos==4)
avallejopo 0:82e4377469f8 49 {
avallejopo 0:82e4377469f8 50 kdnum++;
avallejopo 0:82e4377469f8 51 lcd.locate(11,1); lcd.printf("%d", kdnum);
avallejopo 0:82e4377469f8 52 }
avallejopo 0:82e4377469f8 53 }
avallejopo 0:82e4377469f8 54
avallejopo 0:82e4377469f8 55 if (button2.falling())
avallejopo 0:82e4377469f8 56 {
avallejopo 0:82e4377469f8 57 led2 =!led2;
avallejopo 0:82e4377469f8 58 if(pos==1)
avallejopo 0:82e4377469f8 59 {
avallejopo 0:82e4377469f8 60 if(spnum==0)
avallejopo 0:82e4377469f8 61 {
avallejopo 0:82e4377469f8 62 //No ocurre nada
avallejopo 0:82e4377469f8 63 }
avallejopo 0:82e4377469f8 64 else
avallejopo 0:82e4377469f8 65 {
avallejopo 0:82e4377469f8 66 spnum--;
avallejopo 0:82e4377469f8 67 lcd.locate(3,0); lcd.printf(" ");
avallejopo 0:82e4377469f8 68 lcd.locate(3,0);
avallejopo 0:82e4377469f8 69 lcd.printf("%d", spnum);
avallejopo 0:82e4377469f8 70 }
avallejopo 0:82e4377469f8 71 }
avallejopo 0:82e4377469f8 72 else if(pos==2)
avallejopo 0:82e4377469f8 73 {
avallejopo 0:82e4377469f8 74 if(kpnum==0)
avallejopo 0:82e4377469f8 75 {
avallejopo 0:82e4377469f8 76 //No ocurre nada
avallejopo 0:82e4377469f8 77 }
avallejopo 0:82e4377469f8 78 else
avallejopo 0:82e4377469f8 79 {
avallejopo 0:82e4377469f8 80 kpnum--;
avallejopo 0:82e4377469f8 81 lcd.locate(11,0); lcd.printf(" ");
avallejopo 0:82e4377469f8 82 lcd.locate(11,0);
avallejopo 0:82e4377469f8 83 lcd.printf("%d", kpnum);
avallejopo 0:82e4377469f8 84 }
avallejopo 0:82e4377469f8 85 }
avallejopo 0:82e4377469f8 86 else if(pos==3)
avallejopo 0:82e4377469f8 87 {
avallejopo 0:82e4377469f8 88 if(kinum==0)
avallejopo 0:82e4377469f8 89 {
avallejopo 0:82e4377469f8 90 //No ocurre nada
avallejopo 0:82e4377469f8 91 }
avallejopo 0:82e4377469f8 92 else
avallejopo 0:82e4377469f8 93 {
avallejopo 0:82e4377469f8 94 kinum--;
avallejopo 0:82e4377469f8 95 lcd.locate(3,1); lcd.printf(" ");
avallejopo 0:82e4377469f8 96 lcd.locate(3,1);
avallejopo 0:82e4377469f8 97 lcd.printf("%d", kinum);
avallejopo 0:82e4377469f8 98 }
avallejopo 0:82e4377469f8 99 }
avallejopo 0:82e4377469f8 100 else if(pos==4)
avallejopo 0:82e4377469f8 101 {
avallejopo 0:82e4377469f8 102 if(kdnum==0)
avallejopo 0:82e4377469f8 103 {
avallejopo 0:82e4377469f8 104 //No ocurre nada
avallejopo 0:82e4377469f8 105 }
avallejopo 0:82e4377469f8 106 else
avallejopo 0:82e4377469f8 107 {
avallejopo 0:82e4377469f8 108 kdnum--;
avallejopo 0:82e4377469f8 109 lcd.locate(11,1); lcd.printf(" ");
avallejopo 0:82e4377469f8 110 lcd.locate(11,1);
avallejopo 0:82e4377469f8 111 lcd.printf("%d", kdnum);
avallejopo 0:82e4377469f8 112 }
avallejopo 0:82e4377469f8 113 }
avallejopo 0:82e4377469f8 114 }
avallejopo 0:82e4377469f8 115
avallejopo 0:82e4377469f8 116 if (button3.falling())
avallejopo 0:82e4377469f8 117 {
avallejopo 0:82e4377469f8 118 led3 =!led3;
avallejopo 0:82e4377469f8 119 if(pos==4)
avallejopo 0:82e4377469f8 120 {
avallejopo 0:82e4377469f8 121 pos=1;
avallejopo 0:82e4377469f8 122 lcd.locate(3,0);lcd.printf("%d", spnum);
avallejopo 0:82e4377469f8 123 }
avallejopo 0:82e4377469f8 124 else if (pos==1)
avallejopo 0:82e4377469f8 125 {
avallejopo 0:82e4377469f8 126 pos++;
avallejopo 0:82e4377469f8 127 lcd.locate(11,0);lcd.printf("%d", kpnum);
avallejopo 0:82e4377469f8 128 }
avallejopo 0:82e4377469f8 129 else if(pos==2){
avallejopo 0:82e4377469f8 130 pos++;
avallejopo 0:82e4377469f8 131 lcd.locate(3,1);lcd.printf("%d", kinum);
avallejopo 0:82e4377469f8 132 }
avallejopo 0:82e4377469f8 133 else if(pos==3){
avallejopo 0:82e4377469f8 134 pos++;
avallejopo 0:82e4377469f8 135 lcd.locate(11,1);lcd.printf("%d", kdnum);
avallejopo 0:82e4377469f8 136 }
avallejopo 0:82e4377469f8 137
avallejopo 0:82e4377469f8 138 }
avallejopo 0:82e4377469f8 139 }
avallejopo 0:82e4377469f8 140 }