Tarea_Procesadores

Dependencies:   DebouncedIn TextLCD mbed

Committer:
lenteja2206
Date:
Tue Apr 01 21:37:59 2014 +0000
Revision:
0:85ad71c23bd6
Jose Ruiz y Sebastian Pelaez

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lenteja2206 0:85ad71c23bd6 1 #include "mbed.h"
lenteja2206 0:85ad71c23bd6 2 #include "DebouncedIn.h"
lenteja2206 0:85ad71c23bd6 3 #include "TextLCD.h"
lenteja2206 0:85ad71c23bd6 4
lenteja2206 0:85ad71c23bd6 5 AnalogIn Vin(PTC2);
lenteja2206 0:85ad71c23bd6 6 TextLCD lcd(PTB10, PTB11, PTE2, PTE3, PTE4, PTE5); // rs, e, d4-d7
lenteja2206 0:85ad71c23bd6 7
lenteja2206 0:85ad71c23bd6 8 DigitalOut led1(LED1);
lenteja2206 0:85ad71c23bd6 9 DigitalOut led2(LED2);
lenteja2206 0:85ad71c23bd6 10 DigitalOut led3(LED3);
lenteja2206 0:85ad71c23bd6 11 DebouncedIn button1(PTC12);
lenteja2206 0:85ad71c23bd6 12 DebouncedIn button2(PTC13);
lenteja2206 0:85ad71c23bd6 13 DebouncedIn button3(PTC16);
lenteja2206 0:85ad71c23bd6 14 AnalogOut salida(PTE30);
lenteja2206 0:85ad71c23bd6 15
lenteja2206 0:85ad71c23bd6 16 float k;
lenteja2206 0:85ad71c23bd6 17 int C1=0x0F;
lenteja2206 0:85ad71c23bd6 18 int sp=0,kp=0,kd=0,ki=0,p=1;
lenteja2206 0:85ad71c23bd6 19 int main()
lenteja2206 0:85ad71c23bd6 20 {
lenteja2206 0:85ad71c23bd6 21 lcd.cls();
lenteja2206 0:85ad71c23bd6 22 //lcd.writeCommand(C1);//escribimos un comando segun el manual del modulo LCD
lenteja2206 0:85ad71c23bd6 23 lcd.locate(8,0);
lenteja2206 0:85ad71c23bd6 24 lcd.printf("kp=%d", kp);
lenteja2206 0:85ad71c23bd6 25 lcd.locate(0,1);
lenteja2206 0:85ad71c23bd6 26 lcd.printf("Ki=%d", ki);
lenteja2206 0:85ad71c23bd6 27 lcd.locate(8,1);
lenteja2206 0:85ad71c23bd6 28 lcd.printf("Kd=%d", kd);
lenteja2206 0:85ad71c23bd6 29 lcd.locate(0,0);
lenteja2206 0:85ad71c23bd6 30 lcd.printf("Sp=%d", sp);
lenteja2206 0:85ad71c23bd6 31
lenteja2206 0:85ad71c23bd6 32 while(1)
lenteja2206 0:85ad71c23bd6 33 {
lenteja2206 0:85ad71c23bd6 34 if (button1.falling())
lenteja2206 0:85ad71c23bd6 35 {
lenteja2206 0:85ad71c23bd6 36 led1 =!led1;
lenteja2206 0:85ad71c23bd6 37 k=0;
lenteja2206 0:85ad71c23bd6 38 if(k<1)
lenteja2206 0:85ad71c23bd6 39 {
lenteja2206 0:85ad71c23bd6 40 salida=2;
lenteja2206 0:85ad71c23bd6 41 wait(0.01);
lenteja2206 0:85ad71c23bd6 42 salida=0;
lenteja2206 0:85ad71c23bd6 43 wait(0.01);
lenteja2206 0:85ad71c23bd6 44 k=k+0.01;
lenteja2206 0:85ad71c23bd6 45 }
lenteja2206 0:85ad71c23bd6 46 if (p==1)
lenteja2206 0:85ad71c23bd6 47 {
lenteja2206 0:85ad71c23bd6 48 ++sp;
lenteja2206 0:85ad71c23bd6 49 lcd.locate(3,0);
lenteja2206 0:85ad71c23bd6 50 lcd.printf(" ");
lenteja2206 0:85ad71c23bd6 51 lcd.locate(3,0);
lenteja2206 0:85ad71c23bd6 52 lcd.printf("%d", sp);
lenteja2206 0:85ad71c23bd6 53
lenteja2206 0:85ad71c23bd6 54 }
lenteja2206 0:85ad71c23bd6 55 else if (p==2)
lenteja2206 0:85ad71c23bd6 56 {
lenteja2206 0:85ad71c23bd6 57 ++kp;
lenteja2206 0:85ad71c23bd6 58 lcd.locate(11,0);
lenteja2206 0:85ad71c23bd6 59 lcd.printf(" ");
lenteja2206 0:85ad71c23bd6 60 lcd.locate(11,0);
lenteja2206 0:85ad71c23bd6 61 lcd.printf("%d", kp);
lenteja2206 0:85ad71c23bd6 62 }
lenteja2206 0:85ad71c23bd6 63 else if (p==3)
lenteja2206 0:85ad71c23bd6 64 {
lenteja2206 0:85ad71c23bd6 65 ++ki;
lenteja2206 0:85ad71c23bd6 66 lcd.locate(3,1);
lenteja2206 0:85ad71c23bd6 67 lcd.printf(" ");
lenteja2206 0:85ad71c23bd6 68 lcd.locate(3,1);
lenteja2206 0:85ad71c23bd6 69 lcd.printf("%d", ki);
lenteja2206 0:85ad71c23bd6 70 }
lenteja2206 0:85ad71c23bd6 71 else if (p==4)
lenteja2206 0:85ad71c23bd6 72 {
lenteja2206 0:85ad71c23bd6 73 ++kd;
lenteja2206 0:85ad71c23bd6 74 lcd.locate(11,1);
lenteja2206 0:85ad71c23bd6 75 lcd.printf(" ");
lenteja2206 0:85ad71c23bd6 76 lcd.locate(11,1);
lenteja2206 0:85ad71c23bd6 77 lcd.printf("%d", kd);
lenteja2206 0:85ad71c23bd6 78 }
lenteja2206 0:85ad71c23bd6 79 }
lenteja2206 0:85ad71c23bd6 80 if (button2.falling())
lenteja2206 0:85ad71c23bd6 81 {
lenteja2206 0:85ad71c23bd6 82 led2 =!led2;
lenteja2206 0:85ad71c23bd6 83 k=0;
lenteja2206 0:85ad71c23bd6 84 if(k<1)
lenteja2206 0:85ad71c23bd6 85 {
lenteja2206 0:85ad71c23bd6 86 salida=2;
lenteja2206 0:85ad71c23bd6 87 wait(0.02);
lenteja2206 0:85ad71c23bd6 88 salida=0;
lenteja2206 0:85ad71c23bd6 89 wait(0.01);
lenteja2206 0:85ad71c23bd6 90 k=k+0.01;
lenteja2206 0:85ad71c23bd6 91 }
lenteja2206 0:85ad71c23bd6 92 if (p==1)
lenteja2206 0:85ad71c23bd6 93 {
lenteja2206 0:85ad71c23bd6 94 if (sp==0) // no mostrar nada
lenteja2206 0:85ad71c23bd6 95 {
lenteja2206 0:85ad71c23bd6 96 }
lenteja2206 0:85ad71c23bd6 97 else
lenteja2206 0:85ad71c23bd6 98 {
lenteja2206 0:85ad71c23bd6 99 --sp;
lenteja2206 0:85ad71c23bd6 100 lcd.locate(3,0);
lenteja2206 0:85ad71c23bd6 101 lcd.printf(" ");
lenteja2206 0:85ad71c23bd6 102 lcd.locate(3,0);
lenteja2206 0:85ad71c23bd6 103 lcd.printf("%d", sp);
lenteja2206 0:85ad71c23bd6 104 }
lenteja2206 0:85ad71c23bd6 105 }
lenteja2206 0:85ad71c23bd6 106 if (p==2)
lenteja2206 0:85ad71c23bd6 107 {
lenteja2206 0:85ad71c23bd6 108 if (kp==0) // no mostrar nada
lenteja2206 0:85ad71c23bd6 109 {
lenteja2206 0:85ad71c23bd6 110 }
lenteja2206 0:85ad71c23bd6 111 else
lenteja2206 0:85ad71c23bd6 112 {
lenteja2206 0:85ad71c23bd6 113 --kp;
lenteja2206 0:85ad71c23bd6 114 lcd.locate(11,0);
lenteja2206 0:85ad71c23bd6 115 lcd.printf(" ");
lenteja2206 0:85ad71c23bd6 116 lcd.locate(11,0);
lenteja2206 0:85ad71c23bd6 117 lcd.printf("%d", kp);
lenteja2206 0:85ad71c23bd6 118 }
lenteja2206 0:85ad71c23bd6 119 }
lenteja2206 0:85ad71c23bd6 120 if (p==3)
lenteja2206 0:85ad71c23bd6 121 {
lenteja2206 0:85ad71c23bd6 122 if (ki==0) // no mostrar nada
lenteja2206 0:85ad71c23bd6 123 {
lenteja2206 0:85ad71c23bd6 124 }
lenteja2206 0:85ad71c23bd6 125 else
lenteja2206 0:85ad71c23bd6 126 {
lenteja2206 0:85ad71c23bd6 127 --ki;
lenteja2206 0:85ad71c23bd6 128 lcd.locate(3,1);
lenteja2206 0:85ad71c23bd6 129 lcd.printf(" ");
lenteja2206 0:85ad71c23bd6 130 lcd.locate(3,1);
lenteja2206 0:85ad71c23bd6 131 lcd.printf("%d", ki);
lenteja2206 0:85ad71c23bd6 132 }
lenteja2206 0:85ad71c23bd6 133 }
lenteja2206 0:85ad71c23bd6 134 if (p==4)
lenteja2206 0:85ad71c23bd6 135 {
lenteja2206 0:85ad71c23bd6 136 if (kd==0) // no mostrar nada
lenteja2206 0:85ad71c23bd6 137 {
lenteja2206 0:85ad71c23bd6 138 }
lenteja2206 0:85ad71c23bd6 139 else
lenteja2206 0:85ad71c23bd6 140 {
lenteja2206 0:85ad71c23bd6 141 --kd;
lenteja2206 0:85ad71c23bd6 142 lcd.locate(11,1);
lenteja2206 0:85ad71c23bd6 143 lcd.printf(" ");
lenteja2206 0:85ad71c23bd6 144 lcd.locate(11,1);
lenteja2206 0:85ad71c23bd6 145 lcd.printf("%d", kd);
lenteja2206 0:85ad71c23bd6 146 }
lenteja2206 0:85ad71c23bd6 147 }
lenteja2206 0:85ad71c23bd6 148 }
lenteja2206 0:85ad71c23bd6 149
lenteja2206 0:85ad71c23bd6 150 if (button3.falling())
lenteja2206 0:85ad71c23bd6 151 {
lenteja2206 0:85ad71c23bd6 152 led3 =!led3;
lenteja2206 0:85ad71c23bd6 153 k=0;
lenteja2206 0:85ad71c23bd6 154 if(k<5)
lenteja2206 0:85ad71c23bd6 155 {
lenteja2206 0:85ad71c23bd6 156 salida=3;
lenteja2206 0:85ad71c23bd6 157 wait(0.1);
lenteja2206 0:85ad71c23bd6 158 salida=0;
lenteja2206 0:85ad71c23bd6 159 wait(0.1);
lenteja2206 0:85ad71c23bd6 160 k=k+0.01;
lenteja2206 0:85ad71c23bd6 161 }
lenteja2206 0:85ad71c23bd6 162 if (p==1)
lenteja2206 0:85ad71c23bd6 163 {
lenteja2206 0:85ad71c23bd6 164 ++p;
lenteja2206 0:85ad71c23bd6 165 lcd.locate(11,0);
lenteja2206 0:85ad71c23bd6 166 lcd.printf("%d", kp);
lenteja2206 0:85ad71c23bd6 167
lenteja2206 0:85ad71c23bd6 168
lenteja2206 0:85ad71c23bd6 169 }
lenteja2206 0:85ad71c23bd6 170 else if (p==2)
lenteja2206 0:85ad71c23bd6 171 {
lenteja2206 0:85ad71c23bd6 172 ++p;
lenteja2206 0:85ad71c23bd6 173 lcd.locate(3,1);
lenteja2206 0:85ad71c23bd6 174 lcd.printf("%d", ki);
lenteja2206 0:85ad71c23bd6 175 lcd.locate(3,1);
lenteja2206 0:85ad71c23bd6 176
lenteja2206 0:85ad71c23bd6 177 }
lenteja2206 0:85ad71c23bd6 178 else if (p==3)
lenteja2206 0:85ad71c23bd6 179 {
lenteja2206 0:85ad71c23bd6 180 ++p;
lenteja2206 0:85ad71c23bd6 181 lcd.locate(11,1);
lenteja2206 0:85ad71c23bd6 182 lcd.printf("%d", kd);
lenteja2206 0:85ad71c23bd6 183 }
lenteja2206 0:85ad71c23bd6 184 else if (p==4)
lenteja2206 0:85ad71c23bd6 185 {
lenteja2206 0:85ad71c23bd6 186 p=1;
lenteja2206 0:85ad71c23bd6 187 lcd.locate(3,0);
lenteja2206 0:85ad71c23bd6 188 lcd.printf("%d", sp);
lenteja2206 0:85ad71c23bd6 189
lenteja2206 0:85ad71c23bd6 190
lenteja2206 0:85ad71c23bd6 191 }
lenteja2206 0:85ad71c23bd6 192 }
lenteja2206 0:85ad71c23bd6 193 }
lenteja2206 0:85ad71c23bd6 194 }