ingrese los parámetros para el controlador PID, se pueden ingresar del 0 al 9999 pero para el debido funcionamiento del PID ingrese del 0 al 100 cada parametro
Dependencies: DebounceIn Debounced TextLCD mbed
main.cpp@0:0275ebccd8fe, 2013-11-18 (annotated)
- Committer:
- caaruizze
- Date:
- Mon Nov 18 14:14:46 2013 +0000
- Revision:
- 0:0275ebccd8fe
tareas 2-3 que contienen el aumento y disminuci?n r?pida de los par?metros de un para un PID (en este se encuentra el controlador PID y el ingreso de los par?metros)
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
caaruizze | 0:0275ebccd8fe | 1 | #include "mbed.h" |
caaruizze | 0:0275ebccd8fe | 2 | #include "DebouncedIn.h" |
caaruizze | 0:0275ebccd8fe | 3 | #include "DebounceIn.h" |
caaruizze | 0:0275ebccd8fe | 4 | #include "TextLCD.h" |
caaruizze | 0:0275ebccd8fe | 5 | AnalogIn Vin(PTC2); |
caaruizze | 0:0275ebccd8fe | 6 | AnalogOut Vo(PTE30); |
caaruizze | 0:0275ebccd8fe | 7 | int C1=0x0e; |
caaruizze | 0:0275ebccd8fe | 8 | |
caaruizze | 0:0275ebccd8fe | 9 | int i=0; |
caaruizze | 0:0275ebccd8fe | 10 | int k=0,u=0; |
caaruizze | 0:0275ebccd8fe | 11 | |
caaruizze | 0:0275ebccd8fe | 12 | int j=0; |
caaruizze | 0:0275ebccd8fe | 13 | int l=0,g=0; |
caaruizze | 0:0275ebccd8fe | 14 | |
caaruizze | 0:0275ebccd8fe | 15 | int m=0; |
caaruizze | 0:0275ebccd8fe | 16 | int n=0,q=0; |
caaruizze | 0:0275ebccd8fe | 17 | int o=0; |
caaruizze | 0:0275ebccd8fe | 18 | int p=0,h=0; |
caaruizze | 0:0275ebccd8fe | 19 | |
caaruizze | 0:0275ebccd8fe | 20 | float kp, ki, kd, sp ,err, med, yr, pid, ap, ai, ad, err_v ,Sp; |
caaruizze | 0:0275ebccd8fe | 21 | int x=1; |
caaruizze | 0:0275ebccd8fe | 22 | |
caaruizze | 0:0275ebccd8fe | 23 | int main() |
caaruizze | 0:0275ebccd8fe | 24 | { |
caaruizze | 0:0275ebccd8fe | 25 | TextLCD lcd(PTB10, PTB11, PTE2, PTE3, PTE4, PTE5) ;// declaración de los puertos del lcd |
caaruizze | 0:0275ebccd8fe | 26 | DebounceIn b1(PTC16); //aumento |
caaruizze | 0:0275ebccd8fe | 27 | DebounceIn b3(PTC12);// disminuye |
caaruizze | 0:0275ebccd8fe | 28 | DebouncedIn b2(PTC13);// ,cambio de posición |
caaruizze | 0:0275ebccd8fe | 29 | DebounceIn b4(PTC17);// Cabio de etiqueta |
caaruizze | 0:0275ebccd8fe | 30 | lcd.printf("TAREA2:Proc"); // IMPRIMIR |
caaruizze | 0:0275ebccd8fe | 31 | wait(1); // espera 1 segundo |
caaruizze | 0:0275ebccd8fe | 32 | lcd.cls(); // borra lcd |
caaruizze | 0:0275ebccd8fe | 33 | lcd.writeCommand(C1); // escribe el comando C1 |
caaruizze | 0:0275ebccd8fe | 34 | // Localiza y escribe los titulos Sp,Kp,Ki,Kd en la patalla |
caaruizze | 0:0275ebccd8fe | 35 | lcd.locate(0,0); |
caaruizze | 0:0275ebccd8fe | 36 | lcd.printf("Sp:%d",i); |
caaruizze | 0:0275ebccd8fe | 37 | lcd.locate(8,0); |
caaruizze | 0:0275ebccd8fe | 38 | lcd.printf("Kp:%d",j); |
caaruizze | 0:0275ebccd8fe | 39 | lcd.locate(0,1); |
caaruizze | 0:0275ebccd8fe | 40 | lcd.printf("Ki:%d",m); |
caaruizze | 0:0275ebccd8fe | 41 | lcd.locate(8,1); |
caaruizze | 0:0275ebccd8fe | 42 | lcd.printf("Kd:%d",o); |
caaruizze | 0:0275ebccd8fe | 43 | // Ciclo infinito |
caaruizze | 0:0275ebccd8fe | 44 | while (1) |
caaruizze | 0:0275ebccd8fe | 45 | { |
caaruizze | 0:0275ebccd8fe | 46 | if(b2.falling()) |
caaruizze | 0:0275ebccd8fe | 47 | { |
caaruizze | 0:0275ebccd8fe | 48 | x=x+1; |
caaruizze | 0:0275ebccd8fe | 49 | } |
caaruizze | 0:0275ebccd8fe | 50 | //condicionales para ubicación en pantalla |
caaruizze | 0:0275ebccd8fe | 51 | if(x==1) |
caaruizze | 0:0275ebccd8fe | 52 | {//a |
caaruizze | 0:0275ebccd8fe | 53 | lcd.locate(3,0); |
caaruizze | 0:0275ebccd8fe | 54 | lcd.printf("%d",i); |
caaruizze | 0:0275ebccd8fe | 55 | //Ascenso |
caaruizze | 0:0275ebccd8fe | 56 | if(b1.read()==1) |
caaruizze | 0:0275ebccd8fe | 57 | { |
caaruizze | 0:0275ebccd8fe | 58 | k=0; |
caaruizze | 0:0275ebccd8fe | 59 | } |
caaruizze | 0:0275ebccd8fe | 60 | if(b1.read()==0 && k<25) |
caaruizze | 0:0275ebccd8fe | 61 | {//1.1 |
caaruizze | 0:0275ebccd8fe | 62 | k=k+1; |
caaruizze | 0:0275ebccd8fe | 63 | i=i+1; |
caaruizze | 0:0275ebccd8fe | 64 | wait(0.2); |
caaruizze | 0:0275ebccd8fe | 65 | lcd.locate(3,0); |
caaruizze | 0:0275ebccd8fe | 66 | lcd.printf("%d",i); |
caaruizze | 0:0275ebccd8fe | 67 | }//1.1 |
caaruizze | 0:0275ebccd8fe | 68 | if(b1.read()==0 && k>=25 && k<50) |
caaruizze | 0:0275ebccd8fe | 69 | {//1.2 |
caaruizze | 0:0275ebccd8fe | 70 | k=k+1; |
caaruizze | 0:0275ebccd8fe | 71 | i=i+5; |
caaruizze | 0:0275ebccd8fe | 72 | wait(0.2); |
caaruizze | 0:0275ebccd8fe | 73 | lcd.locate(3,0); |
caaruizze | 0:0275ebccd8fe | 74 | lcd.printf("%d",i); |
caaruizze | 0:0275ebccd8fe | 75 | }//1.2 |
caaruizze | 0:0275ebccd8fe | 76 | |
caaruizze | 0:0275ebccd8fe | 77 | if(b1.read()==0 && k>=50 && k<75) |
caaruizze | 0:0275ebccd8fe | 78 | {//1.3 |
caaruizze | 0:0275ebccd8fe | 79 | k=k+1; |
caaruizze | 0:0275ebccd8fe | 80 | i=i+10; |
caaruizze | 0:0275ebccd8fe | 81 | wait(0.2); |
caaruizze | 0:0275ebccd8fe | 82 | lcd.locate(3,0); |
caaruizze | 0:0275ebccd8fe | 83 | lcd.printf("%d",i); |
caaruizze | 0:0275ebccd8fe | 84 | }//1.3 |
caaruizze | 0:0275ebccd8fe | 85 | |
caaruizze | 0:0275ebccd8fe | 86 | if(b1.read()==0 && k>=75 && k<100) |
caaruizze | 0:0275ebccd8fe | 87 | {//1.4 |
caaruizze | 0:0275ebccd8fe | 88 | k=k+1; |
caaruizze | 0:0275ebccd8fe | 89 | i=i+100; |
caaruizze | 0:0275ebccd8fe | 90 | wait(0.2); |
caaruizze | 0:0275ebccd8fe | 91 | lcd.locate(3,0); |
caaruizze | 0:0275ebccd8fe | 92 | lcd.printf("%d",i); |
caaruizze | 0:0275ebccd8fe | 93 | }//1.4 |
caaruizze | 0:0275ebccd8fe | 94 | if(b1.read()==0 && k>=100 && k<125) |
caaruizze | 0:0275ebccd8fe | 95 | {//1.5 |
caaruizze | 0:0275ebccd8fe | 96 | k=k+1; |
caaruizze | 0:0275ebccd8fe | 97 | i=i+1000; |
caaruizze | 0:0275ebccd8fe | 98 | wait(0.2); |
caaruizze | 0:0275ebccd8fe | 99 | lcd.locate(3,0); |
caaruizze | 0:0275ebccd8fe | 100 | lcd.printf("%d",i); |
caaruizze | 0:0275ebccd8fe | 101 | if(i>9999) |
caaruizze | 0:0275ebccd8fe | 102 | {//1.5.1 |
caaruizze | 0:0275ebccd8fe | 103 | i=9999; |
caaruizze | 0:0275ebccd8fe | 104 | lcd.locate(3,0); |
caaruizze | 0:0275ebccd8fe | 105 | lcd.printf(" "); |
caaruizze | 0:0275ebccd8fe | 106 | lcd.locate(3,0); |
caaruizze | 0:0275ebccd8fe | 107 | lcd.printf("%d",i); |
caaruizze | 0:0275ebccd8fe | 108 | }//1.5.1 |
caaruizze | 0:0275ebccd8fe | 109 | }//1.5 |
caaruizze | 0:0275ebccd8fe | 110 | //Descenso |
caaruizze | 0:0275ebccd8fe | 111 | if(b3.read()==1) |
caaruizze | 0:0275ebccd8fe | 112 | { |
caaruizze | 0:0275ebccd8fe | 113 | u=0; |
caaruizze | 0:0275ebccd8fe | 114 | } |
caaruizze | 0:0275ebccd8fe | 115 | if(b3.read()==0 && u<25) |
caaruizze | 0:0275ebccd8fe | 116 | {//2.1 |
caaruizze | 0:0275ebccd8fe | 117 | u=u+1; |
caaruizze | 0:0275ebccd8fe | 118 | i=i-1; |
caaruizze | 0:0275ebccd8fe | 119 | wait(0.2); |
caaruizze | 0:0275ebccd8fe | 120 | lcd.locate(3,0); |
caaruizze | 0:0275ebccd8fe | 121 | lcd.printf(" "); |
caaruizze | 0:0275ebccd8fe | 122 | lcd.locate(3,0); |
caaruizze | 0:0275ebccd8fe | 123 | lcd.printf("%d",i); |
caaruizze | 0:0275ebccd8fe | 124 | }//2.1 |
caaruizze | 0:0275ebccd8fe | 125 | if(b3.read()==0 && u>=25 && u<50) |
caaruizze | 0:0275ebccd8fe | 126 | {//2.2 |
caaruizze | 0:0275ebccd8fe | 127 | u=u+1; |
caaruizze | 0:0275ebccd8fe | 128 | i=i-5; |
caaruizze | 0:0275ebccd8fe | 129 | wait(0.2); |
caaruizze | 0:0275ebccd8fe | 130 | lcd.locate(3,0); |
caaruizze | 0:0275ebccd8fe | 131 | lcd.printf(" "); |
caaruizze | 0:0275ebccd8fe | 132 | lcd.locate(3,0); |
caaruizze | 0:0275ebccd8fe | 133 | lcd.printf("%d",i); |
caaruizze | 0:0275ebccd8fe | 134 | }//2.2 |
caaruizze | 0:0275ebccd8fe | 135 | |
caaruizze | 0:0275ebccd8fe | 136 | if(b3.read()==0 && u>=50 && u<75) |
caaruizze | 0:0275ebccd8fe | 137 | {//2.3 |
caaruizze | 0:0275ebccd8fe | 138 | u=u+1; |
caaruizze | 0:0275ebccd8fe | 139 | i=i-10; |
caaruizze | 0:0275ebccd8fe | 140 | wait(0.2); |
caaruizze | 0:0275ebccd8fe | 141 | lcd.locate(3,0); |
caaruizze | 0:0275ebccd8fe | 142 | lcd.printf(" "); |
caaruizze | 0:0275ebccd8fe | 143 | lcd.locate(3,0); |
caaruizze | 0:0275ebccd8fe | 144 | lcd.printf("%d",i); |
caaruizze | 0:0275ebccd8fe | 145 | }//2.3 |
caaruizze | 0:0275ebccd8fe | 146 | |
caaruizze | 0:0275ebccd8fe | 147 | if(b3.read()==0 && u>=75 && u<100) |
caaruizze | 0:0275ebccd8fe | 148 | {//2.4 |
caaruizze | 0:0275ebccd8fe | 149 | u=u+1; |
caaruizze | 0:0275ebccd8fe | 150 | i=i-100; |
caaruizze | 0:0275ebccd8fe | 151 | wait(0.2); |
caaruizze | 0:0275ebccd8fe | 152 | lcd.locate(3,0); |
caaruizze | 0:0275ebccd8fe | 153 | lcd.printf(" "); |
caaruizze | 0:0275ebccd8fe | 154 | lcd.locate(3,0); |
caaruizze | 0:0275ebccd8fe | 155 | lcd.printf("%d",i); |
caaruizze | 0:0275ebccd8fe | 156 | }//2.4 |
caaruizze | 0:0275ebccd8fe | 157 | if(b3.read()==0 && u>=100 && u<125) |
caaruizze | 0:0275ebccd8fe | 158 | {//2.5 |
caaruizze | 0:0275ebccd8fe | 159 | u=u-1; |
caaruizze | 0:0275ebccd8fe | 160 | i=i-1000; |
caaruizze | 0:0275ebccd8fe | 161 | wait(0.2); |
caaruizze | 0:0275ebccd8fe | 162 | lcd.locate(3,0); |
caaruizze | 0:0275ebccd8fe | 163 | lcd.printf(" "); |
caaruizze | 0:0275ebccd8fe | 164 | lcd.locate(3,0); |
caaruizze | 0:0275ebccd8fe | 165 | lcd.printf("%d",i); |
caaruizze | 0:0275ebccd8fe | 166 | }//2.5 |
caaruizze | 0:0275ebccd8fe | 167 | if(i<0) |
caaruizze | 0:0275ebccd8fe | 168 | {//2.6 |
caaruizze | 0:0275ebccd8fe | 169 | i=0; |
caaruizze | 0:0275ebccd8fe | 170 | lcd.locate(3,0); |
caaruizze | 0:0275ebccd8fe | 171 | lcd.printf(" "); |
caaruizze | 0:0275ebccd8fe | 172 | lcd.locate(3,0); |
caaruizze | 0:0275ebccd8fe | 173 | lcd.printf("%d",i); |
caaruizze | 0:0275ebccd8fe | 174 | }//2.6 |
caaruizze | 0:0275ebccd8fe | 175 | |
caaruizze | 0:0275ebccd8fe | 176 | }//a |
caaruizze | 0:0275ebccd8fe | 177 | |
caaruizze | 0:0275ebccd8fe | 178 | if(x==2) |
caaruizze | 0:0275ebccd8fe | 179 | {//b |
caaruizze | 0:0275ebccd8fe | 180 | lcd.locate(11,0); |
caaruizze | 0:0275ebccd8fe | 181 | lcd.printf("%d",j); |
caaruizze | 0:0275ebccd8fe | 182 | //Ascenso |
caaruizze | 0:0275ebccd8fe | 183 | if(b1.read()==1) |
caaruizze | 0:0275ebccd8fe | 184 | { |
caaruizze | 0:0275ebccd8fe | 185 | l=0; |
caaruizze | 0:0275ebccd8fe | 186 | } |
caaruizze | 0:0275ebccd8fe | 187 | if(b1.read()==0 && l<25) |
caaruizze | 0:0275ebccd8fe | 188 | {//1.1 |
caaruizze | 0:0275ebccd8fe | 189 | l=l+1; |
caaruizze | 0:0275ebccd8fe | 190 | j=j+1; |
caaruizze | 0:0275ebccd8fe | 191 | wait(0.2); |
caaruizze | 0:0275ebccd8fe | 192 | lcd.locate(11,0); |
caaruizze | 0:0275ebccd8fe | 193 | lcd.printf("%d",j); |
caaruizze | 0:0275ebccd8fe | 194 | }//1.1 |
caaruizze | 0:0275ebccd8fe | 195 | if(b1.read()==0 && l>=25 && l<50) |
caaruizze | 0:0275ebccd8fe | 196 | {//1.2 |
caaruizze | 0:0275ebccd8fe | 197 | l=l+1; |
caaruizze | 0:0275ebccd8fe | 198 | j=j+5; |
caaruizze | 0:0275ebccd8fe | 199 | wait(0.2); |
caaruizze | 0:0275ebccd8fe | 200 | lcd.locate(11,0); |
caaruizze | 0:0275ebccd8fe | 201 | lcd.printf("%d",j); |
caaruizze | 0:0275ebccd8fe | 202 | }//1.2 |
caaruizze | 0:0275ebccd8fe | 203 | |
caaruizze | 0:0275ebccd8fe | 204 | if(b1.read()==0 && l>=50 && l<75) |
caaruizze | 0:0275ebccd8fe | 205 | {//1.3 |
caaruizze | 0:0275ebccd8fe | 206 | l=l+1; |
caaruizze | 0:0275ebccd8fe | 207 | j=j+10; |
caaruizze | 0:0275ebccd8fe | 208 | wait(0.2); |
caaruizze | 0:0275ebccd8fe | 209 | lcd.locate(11,0); |
caaruizze | 0:0275ebccd8fe | 210 | lcd.printf("%d",j); |
caaruizze | 0:0275ebccd8fe | 211 | }//1.3 |
caaruizze | 0:0275ebccd8fe | 212 | |
caaruizze | 0:0275ebccd8fe | 213 | if(b1.read()==0 && l>=75 && l<100) |
caaruizze | 0:0275ebccd8fe | 214 | {//1.4 |
caaruizze | 0:0275ebccd8fe | 215 | l=l+1; |
caaruizze | 0:0275ebccd8fe | 216 | j=j+100; |
caaruizze | 0:0275ebccd8fe | 217 | wait(0.2); |
caaruizze | 0:0275ebccd8fe | 218 | lcd.locate(11,0); |
caaruizze | 0:0275ebccd8fe | 219 | lcd.printf("%d",j); |
caaruizze | 0:0275ebccd8fe | 220 | }//1.4 |
caaruizze | 0:0275ebccd8fe | 221 | if(b1.read()==0 && l>=100 && l<125) |
caaruizze | 0:0275ebccd8fe | 222 | {//1.5 |
caaruizze | 0:0275ebccd8fe | 223 | l=l+1; |
caaruizze | 0:0275ebccd8fe | 224 | j=j+1000; |
caaruizze | 0:0275ebccd8fe | 225 | wait(0.2); |
caaruizze | 0:0275ebccd8fe | 226 | lcd.locate(11,0); |
caaruizze | 0:0275ebccd8fe | 227 | lcd.printf("%d",j); |
caaruizze | 0:0275ebccd8fe | 228 | if(j>9999) |
caaruizze | 0:0275ebccd8fe | 229 | {//1.5.1 |
caaruizze | 0:0275ebccd8fe | 230 | j=9999; |
caaruizze | 0:0275ebccd8fe | 231 | lcd.locate(11,0); |
caaruizze | 0:0275ebccd8fe | 232 | lcd.printf(" "); |
caaruizze | 0:0275ebccd8fe | 233 | lcd.locate(11,0); |
caaruizze | 0:0275ebccd8fe | 234 | lcd.printf("%d",j); |
caaruizze | 0:0275ebccd8fe | 235 | }//1.5.1 |
caaruizze | 0:0275ebccd8fe | 236 | }//1.5 |
caaruizze | 0:0275ebccd8fe | 237 | //Descenso |
caaruizze | 0:0275ebccd8fe | 238 | if(b3.read()==1) |
caaruizze | 0:0275ebccd8fe | 239 | { |
caaruizze | 0:0275ebccd8fe | 240 | g=0; |
caaruizze | 0:0275ebccd8fe | 241 | } |
caaruizze | 0:0275ebccd8fe | 242 | if(b3.read()==0 && g<25) |
caaruizze | 0:0275ebccd8fe | 243 | {//2.1 |
caaruizze | 0:0275ebccd8fe | 244 | g=g+1; |
caaruizze | 0:0275ebccd8fe | 245 | j=j-1; |
caaruizze | 0:0275ebccd8fe | 246 | wait(0.2); |
caaruizze | 0:0275ebccd8fe | 247 | lcd.locate(11,0); |
caaruizze | 0:0275ebccd8fe | 248 | lcd.printf(" "); |
caaruizze | 0:0275ebccd8fe | 249 | lcd.locate(11,0); |
caaruizze | 0:0275ebccd8fe | 250 | lcd.printf("%d",j); |
caaruizze | 0:0275ebccd8fe | 251 | }//2.1 |
caaruizze | 0:0275ebccd8fe | 252 | if(b3.read()==0 && g>=25 && g<50) |
caaruizze | 0:0275ebccd8fe | 253 | {//2.2 |
caaruizze | 0:0275ebccd8fe | 254 | g=g+1; |
caaruizze | 0:0275ebccd8fe | 255 | j=j-5; |
caaruizze | 0:0275ebccd8fe | 256 | wait(0.2); |
caaruizze | 0:0275ebccd8fe | 257 | lcd.locate(11,0); |
caaruizze | 0:0275ebccd8fe | 258 | lcd.printf(" "); |
caaruizze | 0:0275ebccd8fe | 259 | lcd.locate(11,0); |
caaruizze | 0:0275ebccd8fe | 260 | lcd.printf("%d",j); |
caaruizze | 0:0275ebccd8fe | 261 | }//2.2 |
caaruizze | 0:0275ebccd8fe | 262 | |
caaruizze | 0:0275ebccd8fe | 263 | if(b3.read()==0 && g>=50 && g<75) |
caaruizze | 0:0275ebccd8fe | 264 | {//2.3 |
caaruizze | 0:0275ebccd8fe | 265 | g=g+1; |
caaruizze | 0:0275ebccd8fe | 266 | j=j-10; |
caaruizze | 0:0275ebccd8fe | 267 | wait(0.2); |
caaruizze | 0:0275ebccd8fe | 268 | lcd.locate(11,0); |
caaruizze | 0:0275ebccd8fe | 269 | lcd.printf(" "); |
caaruizze | 0:0275ebccd8fe | 270 | lcd.locate(11,0); |
caaruizze | 0:0275ebccd8fe | 271 | lcd.printf("%d",j); |
caaruizze | 0:0275ebccd8fe | 272 | }//2.3 |
caaruizze | 0:0275ebccd8fe | 273 | |
caaruizze | 0:0275ebccd8fe | 274 | if(b3.read()==0 && g>=75 && g<100) |
caaruizze | 0:0275ebccd8fe | 275 | {//2.4 |
caaruizze | 0:0275ebccd8fe | 276 | g=g+1; |
caaruizze | 0:0275ebccd8fe | 277 | j=j-100; |
caaruizze | 0:0275ebccd8fe | 278 | wait(0.2); |
caaruizze | 0:0275ebccd8fe | 279 | lcd.locate(11,0); |
caaruizze | 0:0275ebccd8fe | 280 | lcd.printf(" "); |
caaruizze | 0:0275ebccd8fe | 281 | lcd.locate(11,0); |
caaruizze | 0:0275ebccd8fe | 282 | lcd.printf("%d",j); |
caaruizze | 0:0275ebccd8fe | 283 | }//2.4 |
caaruizze | 0:0275ebccd8fe | 284 | if(b3.read()==0 && g>=100 && g<125) |
caaruizze | 0:0275ebccd8fe | 285 | {//2.5 |
caaruizze | 0:0275ebccd8fe | 286 | g=g-1; |
caaruizze | 0:0275ebccd8fe | 287 | j=j-1000; |
caaruizze | 0:0275ebccd8fe | 288 | wait(0.2); |
caaruizze | 0:0275ebccd8fe | 289 | lcd.locate(11,0); |
caaruizze | 0:0275ebccd8fe | 290 | lcd.printf(" "); |
caaruizze | 0:0275ebccd8fe | 291 | lcd.locate(11,0); |
caaruizze | 0:0275ebccd8fe | 292 | lcd.printf("%d",j); |
caaruizze | 0:0275ebccd8fe | 293 | }//2.5 |
caaruizze | 0:0275ebccd8fe | 294 | if(j<0) |
caaruizze | 0:0275ebccd8fe | 295 | {//2.6 |
caaruizze | 0:0275ebccd8fe | 296 | j=0; |
caaruizze | 0:0275ebccd8fe | 297 | lcd.locate(11,0); |
caaruizze | 0:0275ebccd8fe | 298 | lcd.printf(" "); |
caaruizze | 0:0275ebccd8fe | 299 | lcd.locate(11,0); |
caaruizze | 0:0275ebccd8fe | 300 | lcd.printf("%d",j); |
caaruizze | 0:0275ebccd8fe | 301 | }//2.6 |
caaruizze | 0:0275ebccd8fe | 302 | |
caaruizze | 0:0275ebccd8fe | 303 | |
caaruizze | 0:0275ebccd8fe | 304 | }//b |
caaruizze | 0:0275ebccd8fe | 305 | |
caaruizze | 0:0275ebccd8fe | 306 | if(x==3) |
caaruizze | 0:0275ebccd8fe | 307 | {//c |
caaruizze | 0:0275ebccd8fe | 308 | lcd.locate(3,1); |
caaruizze | 0:0275ebccd8fe | 309 | lcd.printf("%d",m); |
caaruizze | 0:0275ebccd8fe | 310 | if(b1.read()==1) |
caaruizze | 0:0275ebccd8fe | 311 | { |
caaruizze | 0:0275ebccd8fe | 312 | n=0; |
caaruizze | 0:0275ebccd8fe | 313 | } |
caaruizze | 0:0275ebccd8fe | 314 | if(b1.read()==0 && n<25) |
caaruizze | 0:0275ebccd8fe | 315 | {//1.1 |
caaruizze | 0:0275ebccd8fe | 316 | n=n+1; |
caaruizze | 0:0275ebccd8fe | 317 | m=m+1; |
caaruizze | 0:0275ebccd8fe | 318 | wait(0.2); |
caaruizze | 0:0275ebccd8fe | 319 | lcd.locate(3,1); |
caaruizze | 0:0275ebccd8fe | 320 | lcd.printf("%d",m); |
caaruizze | 0:0275ebccd8fe | 321 | }//1.1 |
caaruizze | 0:0275ebccd8fe | 322 | if(b1.read()==0 && n>=25 && n<50) |
caaruizze | 0:0275ebccd8fe | 323 | {//1.2 |
caaruizze | 0:0275ebccd8fe | 324 | n=n+1; |
caaruizze | 0:0275ebccd8fe | 325 | m=m+5; |
caaruizze | 0:0275ebccd8fe | 326 | wait(0.2); |
caaruizze | 0:0275ebccd8fe | 327 | lcd.locate(3,1); |
caaruizze | 0:0275ebccd8fe | 328 | lcd.printf("%d",m); |
caaruizze | 0:0275ebccd8fe | 329 | }//1.2 |
caaruizze | 0:0275ebccd8fe | 330 | |
caaruizze | 0:0275ebccd8fe | 331 | if(b1.read()==0 && n>=50 && n<75) |
caaruizze | 0:0275ebccd8fe | 332 | {//1.3 |
caaruizze | 0:0275ebccd8fe | 333 | n=n+1; |
caaruizze | 0:0275ebccd8fe | 334 | m=m+10; |
caaruizze | 0:0275ebccd8fe | 335 | wait(0.2); |
caaruizze | 0:0275ebccd8fe | 336 | lcd.locate(3,1); |
caaruizze | 0:0275ebccd8fe | 337 | lcd.printf("%d",m); |
caaruizze | 0:0275ebccd8fe | 338 | }//1.3 |
caaruizze | 0:0275ebccd8fe | 339 | |
caaruizze | 0:0275ebccd8fe | 340 | if(b1.read()==0 && n>=75 && n<100) |
caaruizze | 0:0275ebccd8fe | 341 | {//1.4 |
caaruizze | 0:0275ebccd8fe | 342 | n=n+1; |
caaruizze | 0:0275ebccd8fe | 343 | m=m+100; |
caaruizze | 0:0275ebccd8fe | 344 | wait(0.2); |
caaruizze | 0:0275ebccd8fe | 345 | lcd.locate(3,1); |
caaruizze | 0:0275ebccd8fe | 346 | lcd.printf("%d",m); |
caaruizze | 0:0275ebccd8fe | 347 | }//1.4 |
caaruizze | 0:0275ebccd8fe | 348 | if(b1.read()==0 && n>=100 && n<125) |
caaruizze | 0:0275ebccd8fe | 349 | {//1.5 |
caaruizze | 0:0275ebccd8fe | 350 | n=n+1; |
caaruizze | 0:0275ebccd8fe | 351 | m=m+1000; |
caaruizze | 0:0275ebccd8fe | 352 | wait(0.2); |
caaruizze | 0:0275ebccd8fe | 353 | lcd.locate(3,1); |
caaruizze | 0:0275ebccd8fe | 354 | lcd.printf("%d",m); |
caaruizze | 0:0275ebccd8fe | 355 | if(m>9999) |
caaruizze | 0:0275ebccd8fe | 356 | {//1.5.1 |
caaruizze | 0:0275ebccd8fe | 357 | m=9999; |
caaruizze | 0:0275ebccd8fe | 358 | lcd.locate(3,1); |
caaruizze | 0:0275ebccd8fe | 359 | lcd.printf(" "); |
caaruizze | 0:0275ebccd8fe | 360 | lcd.locate(3,1); |
caaruizze | 0:0275ebccd8fe | 361 | lcd.printf("%d",m); |
caaruizze | 0:0275ebccd8fe | 362 | }//1.5.1 |
caaruizze | 0:0275ebccd8fe | 363 | }//1.5 |
caaruizze | 0:0275ebccd8fe | 364 | //Descenso |
caaruizze | 0:0275ebccd8fe | 365 | if(b3.read()==1) |
caaruizze | 0:0275ebccd8fe | 366 | { |
caaruizze | 0:0275ebccd8fe | 367 | q=0; |
caaruizze | 0:0275ebccd8fe | 368 | } |
caaruizze | 0:0275ebccd8fe | 369 | if(b3.read()==0 && q<25) |
caaruizze | 0:0275ebccd8fe | 370 | {//2.1 |
caaruizze | 0:0275ebccd8fe | 371 | q=q+1; |
caaruizze | 0:0275ebccd8fe | 372 | m=m-1; |
caaruizze | 0:0275ebccd8fe | 373 | wait(0.2); |
caaruizze | 0:0275ebccd8fe | 374 | lcd.locate(3,1); |
caaruizze | 0:0275ebccd8fe | 375 | lcd.printf(" "); |
caaruizze | 0:0275ebccd8fe | 376 | lcd.locate(3,1); |
caaruizze | 0:0275ebccd8fe | 377 | lcd.printf("%d",m); |
caaruizze | 0:0275ebccd8fe | 378 | }//2.1 |
caaruizze | 0:0275ebccd8fe | 379 | if(b3.read()==0 && q>=25 && q<50) |
caaruizze | 0:0275ebccd8fe | 380 | {//2.2 |
caaruizze | 0:0275ebccd8fe | 381 | q=q+1; |
caaruizze | 0:0275ebccd8fe | 382 | m=m-5; |
caaruizze | 0:0275ebccd8fe | 383 | wait(0.2); |
caaruizze | 0:0275ebccd8fe | 384 | lcd.locate(3,1); |
caaruizze | 0:0275ebccd8fe | 385 | lcd.printf(" "); |
caaruizze | 0:0275ebccd8fe | 386 | lcd.locate(3,1); |
caaruizze | 0:0275ebccd8fe | 387 | lcd.printf("%d",m); |
caaruizze | 0:0275ebccd8fe | 388 | }//2.2 |
caaruizze | 0:0275ebccd8fe | 389 | |
caaruizze | 0:0275ebccd8fe | 390 | if(b3.read()==0 && q>=50 && q<75) |
caaruizze | 0:0275ebccd8fe | 391 | {//2.3 |
caaruizze | 0:0275ebccd8fe | 392 | q=q+1; |
caaruizze | 0:0275ebccd8fe | 393 | m=m-10; |
caaruizze | 0:0275ebccd8fe | 394 | wait(0.2); |
caaruizze | 0:0275ebccd8fe | 395 | lcd.locate(3,1); |
caaruizze | 0:0275ebccd8fe | 396 | lcd.printf(" "); |
caaruizze | 0:0275ebccd8fe | 397 | lcd.locate(3,1); |
caaruizze | 0:0275ebccd8fe | 398 | lcd.printf("%d",m); |
caaruizze | 0:0275ebccd8fe | 399 | }//2.3 |
caaruizze | 0:0275ebccd8fe | 400 | |
caaruizze | 0:0275ebccd8fe | 401 | if(b3.read()==0 && q>=75 && q<100) |
caaruizze | 0:0275ebccd8fe | 402 | {//2.4 |
caaruizze | 0:0275ebccd8fe | 403 | q=q+1; |
caaruizze | 0:0275ebccd8fe | 404 | m=m-100; |
caaruizze | 0:0275ebccd8fe | 405 | wait(0.2); |
caaruizze | 0:0275ebccd8fe | 406 | lcd.locate(3,1); |
caaruizze | 0:0275ebccd8fe | 407 | lcd.printf(" "); |
caaruizze | 0:0275ebccd8fe | 408 | lcd.locate(3,1); |
caaruizze | 0:0275ebccd8fe | 409 | lcd.printf("%d",m); |
caaruizze | 0:0275ebccd8fe | 410 | }//2.4 |
caaruizze | 0:0275ebccd8fe | 411 | if(b3.read()==0 && q>=100 && q<125) |
caaruizze | 0:0275ebccd8fe | 412 | {//2.5 |
caaruizze | 0:0275ebccd8fe | 413 | q=q+1; |
caaruizze | 0:0275ebccd8fe | 414 | m=m-1000; |
caaruizze | 0:0275ebccd8fe | 415 | wait(0.2); |
caaruizze | 0:0275ebccd8fe | 416 | lcd.locate(3,1); |
caaruizze | 0:0275ebccd8fe | 417 | lcd.printf(" "); |
caaruizze | 0:0275ebccd8fe | 418 | lcd.locate(3,1); |
caaruizze | 0:0275ebccd8fe | 419 | lcd.printf("%d",m); |
caaruizze | 0:0275ebccd8fe | 420 | }//2.5 |
caaruizze | 0:0275ebccd8fe | 421 | if(m<0) |
caaruizze | 0:0275ebccd8fe | 422 | {//2.6 |
caaruizze | 0:0275ebccd8fe | 423 | m=0; |
caaruizze | 0:0275ebccd8fe | 424 | lcd.locate(3,1); |
caaruizze | 0:0275ebccd8fe | 425 | lcd.printf(" "); |
caaruizze | 0:0275ebccd8fe | 426 | lcd.locate(3,1); |
caaruizze | 0:0275ebccd8fe | 427 | lcd.printf("%d",m); |
caaruizze | 0:0275ebccd8fe | 428 | }//2.6 |
caaruizze | 0:0275ebccd8fe | 429 | |
caaruizze | 0:0275ebccd8fe | 430 | }//c |
caaruizze | 0:0275ebccd8fe | 431 | |
caaruizze | 0:0275ebccd8fe | 432 | if(x==4) |
caaruizze | 0:0275ebccd8fe | 433 | {//d |
caaruizze | 0:0275ebccd8fe | 434 | lcd.locate(11,1); |
caaruizze | 0:0275ebccd8fe | 435 | lcd.printf("%d",o); |
caaruizze | 0:0275ebccd8fe | 436 | |
caaruizze | 0:0275ebccd8fe | 437 | if(b1.read()==1) |
caaruizze | 0:0275ebccd8fe | 438 | { |
caaruizze | 0:0275ebccd8fe | 439 | n=0; |
caaruizze | 0:0275ebccd8fe | 440 | } |
caaruizze | 0:0275ebccd8fe | 441 | if(b1.read()==0 && p<25) |
caaruizze | 0:0275ebccd8fe | 442 | {//1.1 |
caaruizze | 0:0275ebccd8fe | 443 | p=p+1; |
caaruizze | 0:0275ebccd8fe | 444 | o=o+1; |
caaruizze | 0:0275ebccd8fe | 445 | wait(0.2); |
caaruizze | 0:0275ebccd8fe | 446 | lcd.locate(11,1); |
caaruizze | 0:0275ebccd8fe | 447 | lcd.printf("%d",o); |
caaruizze | 0:0275ebccd8fe | 448 | }//1.1 |
caaruizze | 0:0275ebccd8fe | 449 | if(b1.read()==0 && p>=25 && p<50) |
caaruizze | 0:0275ebccd8fe | 450 | {//1.2 |
caaruizze | 0:0275ebccd8fe | 451 | p=p+1; |
caaruizze | 0:0275ebccd8fe | 452 | o=o+5; |
caaruizze | 0:0275ebccd8fe | 453 | wait(0.2); |
caaruizze | 0:0275ebccd8fe | 454 | lcd.locate(11,1); |
caaruizze | 0:0275ebccd8fe | 455 | lcd.printf("%f",o); |
caaruizze | 0:0275ebccd8fe | 456 | }//1.2 |
caaruizze | 0:0275ebccd8fe | 457 | |
caaruizze | 0:0275ebccd8fe | 458 | if(b1.read()==0 && p>=50 && p<75) |
caaruizze | 0:0275ebccd8fe | 459 | {//1.3 |
caaruizze | 0:0275ebccd8fe | 460 | p=p+1; |
caaruizze | 0:0275ebccd8fe | 461 | o=o+10; |
caaruizze | 0:0275ebccd8fe | 462 | wait(0.2); |
caaruizze | 0:0275ebccd8fe | 463 | lcd.locate(11,1); |
caaruizze | 0:0275ebccd8fe | 464 | lcd.printf("%d",o); |
caaruizze | 0:0275ebccd8fe | 465 | }//1.3 |
caaruizze | 0:0275ebccd8fe | 466 | |
caaruizze | 0:0275ebccd8fe | 467 | if(b1.read()==0 && p>=75 && p<100) |
caaruizze | 0:0275ebccd8fe | 468 | {//1.4 |
caaruizze | 0:0275ebccd8fe | 469 | p=p+1; |
caaruizze | 0:0275ebccd8fe | 470 | o=o+100; |
caaruizze | 0:0275ebccd8fe | 471 | wait(0.2); |
caaruizze | 0:0275ebccd8fe | 472 | lcd.locate(11,1); |
caaruizze | 0:0275ebccd8fe | 473 | lcd.printf("%d",o); |
caaruizze | 0:0275ebccd8fe | 474 | }//1.4 |
caaruizze | 0:0275ebccd8fe | 475 | if(b1.read()==0 && p>=100 && p<125) |
caaruizze | 0:0275ebccd8fe | 476 | {//1.5 |
caaruizze | 0:0275ebccd8fe | 477 | p=p+1; |
caaruizze | 0:0275ebccd8fe | 478 | o=o+1000; |
caaruizze | 0:0275ebccd8fe | 479 | wait(0.2); |
caaruizze | 0:0275ebccd8fe | 480 | lcd.locate(11,1); |
caaruizze | 0:0275ebccd8fe | 481 | lcd.printf("%d",o); |
caaruizze | 0:0275ebccd8fe | 482 | if(o>9999) |
caaruizze | 0:0275ebccd8fe | 483 | {//1.5.1 |
caaruizze | 0:0275ebccd8fe | 484 | o=9999; |
caaruizze | 0:0275ebccd8fe | 485 | lcd.locate(11,1); |
caaruizze | 0:0275ebccd8fe | 486 | lcd.printf(" "); |
caaruizze | 0:0275ebccd8fe | 487 | lcd.locate(11,1); |
caaruizze | 0:0275ebccd8fe | 488 | lcd.printf("%d",o); |
caaruizze | 0:0275ebccd8fe | 489 | }//1.5.1 |
caaruizze | 0:0275ebccd8fe | 490 | }//1.5 |
caaruizze | 0:0275ebccd8fe | 491 | //Descenso |
caaruizze | 0:0275ebccd8fe | 492 | if(b3.read()==1) |
caaruizze | 0:0275ebccd8fe | 493 | { |
caaruizze | 0:0275ebccd8fe | 494 | h=0; |
caaruizze | 0:0275ebccd8fe | 495 | } |
caaruizze | 0:0275ebccd8fe | 496 | if(b3.read()==0 && h<25) |
caaruizze | 0:0275ebccd8fe | 497 | {//2.1 |
caaruizze | 0:0275ebccd8fe | 498 | h=h+1; |
caaruizze | 0:0275ebccd8fe | 499 | o=o-1; |
caaruizze | 0:0275ebccd8fe | 500 | wait(0.2); |
caaruizze | 0:0275ebccd8fe | 501 | lcd.locate(11,1); |
caaruizze | 0:0275ebccd8fe | 502 | lcd.printf(" "); |
caaruizze | 0:0275ebccd8fe | 503 | lcd.locate(11,1); |
caaruizze | 0:0275ebccd8fe | 504 | lcd.printf("%d",o); |
caaruizze | 0:0275ebccd8fe | 505 | }//2.1 |
caaruizze | 0:0275ebccd8fe | 506 | if(b3.read()==0 && h>=25 && h<50) |
caaruizze | 0:0275ebccd8fe | 507 | {//2.2 |
caaruizze | 0:0275ebccd8fe | 508 | h=h+1; |
caaruizze | 0:0275ebccd8fe | 509 | o=o-5; |
caaruizze | 0:0275ebccd8fe | 510 | wait(0.2); |
caaruizze | 0:0275ebccd8fe | 511 | lcd.locate(11,1); |
caaruizze | 0:0275ebccd8fe | 512 | lcd.printf(" "); |
caaruizze | 0:0275ebccd8fe | 513 | lcd.locate(11,1); |
caaruizze | 0:0275ebccd8fe | 514 | lcd.printf("%d",o); |
caaruizze | 0:0275ebccd8fe | 515 | }//2.2 |
caaruizze | 0:0275ebccd8fe | 516 | |
caaruizze | 0:0275ebccd8fe | 517 | if(b3.read()==0 && h>=50 && h<75) |
caaruizze | 0:0275ebccd8fe | 518 | {//2.3 |
caaruizze | 0:0275ebccd8fe | 519 | h=h+1; |
caaruizze | 0:0275ebccd8fe | 520 | o=o-10; |
caaruizze | 0:0275ebccd8fe | 521 | wait(0.2); |
caaruizze | 0:0275ebccd8fe | 522 | lcd.locate(11,1); |
caaruizze | 0:0275ebccd8fe | 523 | lcd.printf(" "); |
caaruizze | 0:0275ebccd8fe | 524 | lcd.locate(11,1); |
caaruizze | 0:0275ebccd8fe | 525 | lcd.printf("%d",o); |
caaruizze | 0:0275ebccd8fe | 526 | }//2.3 |
caaruizze | 0:0275ebccd8fe | 527 | |
caaruizze | 0:0275ebccd8fe | 528 | if(b3.read()==0 && h>=75 && h<100) |
caaruizze | 0:0275ebccd8fe | 529 | {//2.4 |
caaruizze | 0:0275ebccd8fe | 530 | h=h+1; |
caaruizze | 0:0275ebccd8fe | 531 | o=o-100; |
caaruizze | 0:0275ebccd8fe | 532 | wait(0.2); |
caaruizze | 0:0275ebccd8fe | 533 | lcd.locate(11,1); |
caaruizze | 0:0275ebccd8fe | 534 | lcd.printf(" "); |
caaruizze | 0:0275ebccd8fe | 535 | lcd.locate(11,1); |
caaruizze | 0:0275ebccd8fe | 536 | lcd.printf("%d",o); |
caaruizze | 0:0275ebccd8fe | 537 | }//2.4 |
caaruizze | 0:0275ebccd8fe | 538 | if(b3.read()==0 && h>=100 && h<125) |
caaruizze | 0:0275ebccd8fe | 539 | {//2.5 |
caaruizze | 0:0275ebccd8fe | 540 | h=h+1; |
caaruizze | 0:0275ebccd8fe | 541 | o=o-1000; |
caaruizze | 0:0275ebccd8fe | 542 | wait(0.2); |
caaruizze | 0:0275ebccd8fe | 543 | lcd.locate(11,1); |
caaruizze | 0:0275ebccd8fe | 544 | lcd.printf(" "); |
caaruizze | 0:0275ebccd8fe | 545 | lcd.locate(11,1); |
caaruizze | 0:0275ebccd8fe | 546 | lcd.printf("%d",o); |
caaruizze | 0:0275ebccd8fe | 547 | }//2.5 |
caaruizze | 0:0275ebccd8fe | 548 | if(o<0) |
caaruizze | 0:0275ebccd8fe | 549 | {//2.6 |
caaruizze | 0:0275ebccd8fe | 550 | o=0; |
caaruizze | 0:0275ebccd8fe | 551 | lcd.locate(11,1); |
caaruizze | 0:0275ebccd8fe | 552 | lcd.printf(" "); |
caaruizze | 0:0275ebccd8fe | 553 | lcd.locate(11,1); |
caaruizze | 0:0275ebccd8fe | 554 | lcd.printf("%d",o); |
caaruizze | 0:0275ebccd8fe | 555 | }//2.6 |
caaruizze | 0:0275ebccd8fe | 556 | }//d |
caaruizze | 0:0275ebccd8fe | 557 | |
caaruizze | 0:0275ebccd8fe | 558 | if(x>4) |
caaruizze | 0:0275ebccd8fe | 559 | { |
caaruizze | 0:0275ebccd8fe | 560 | x=1; |
caaruizze | 0:0275ebccd8fe | 561 | } |
caaruizze | 0:0275ebccd8fe | 562 | if(b4.read()==0) |
caaruizze | 0:0275ebccd8fe | 563 | { |
caaruizze | 0:0275ebccd8fe | 564 | |
caaruizze | 0:0275ebccd8fe | 565 | |
caaruizze | 0:0275ebccd8fe | 566 | goto PID; |
caaruizze | 0:0275ebccd8fe | 567 | } |
caaruizze | 0:0275ebccd8fe | 568 | }//while1 |
caaruizze | 0:0275ebccd8fe | 569 | |
caaruizze | 0:0275ebccd8fe | 570 | PID: |
caaruizze | 0:0275ebccd8fe | 571 | |
caaruizze | 0:0275ebccd8fe | 572 | wait(0.5); // espera 1 segundo |
caaruizze | 0:0275ebccd8fe | 573 | lcd.cls(); // borra lcd |
caaruizze | 0:0275ebccd8fe | 574 | wait(0.2); |
caaruizze | 0:0275ebccd8fe | 575 | lcd.printf("DATOS GUARDADOS!"); |
caaruizze | 0:0275ebccd8fe | 576 | wait(1); |
caaruizze | 0:0275ebccd8fe | 577 | lcd.cls(); |
caaruizze | 0:0275ebccd8fe | 578 | |
caaruizze | 0:0275ebccd8fe | 579 | lcd.locate(0,0); |
caaruizze | 0:0275ebccd8fe | 580 | lcd.printf("Er:"); |
caaruizze | 0:0275ebccd8fe | 581 | lcd.locate(8,0); |
caaruizze | 0:0275ebccd8fe | 582 | lcd.printf("Me:"); |
caaruizze | 0:0275ebccd8fe | 583 | lcd.locate(0,1); |
caaruizze | 0:0275ebccd8fe | 584 | lcd.printf("Sp:"); |
caaruizze | 0:0275ebccd8fe | 585 | lcd.locate(8,1); |
caaruizze | 0:0275ebccd8fe | 586 | lcd.printf("CO:"); |
caaruizze | 0:0275ebccd8fe | 587 | |
caaruizze | 0:0275ebccd8fe | 588 | while(1) |
caaruizze | 0:0275ebccd8fe | 589 | {//whilePID |
caaruizze | 0:0275ebccd8fe | 590 | wait(0.1); |
caaruizze | 0:0275ebccd8fe | 591 | sp=i; |
caaruizze | 0:0275ebccd8fe | 592 | kp=j; |
caaruizze | 0:0275ebccd8fe | 593 | kd=m; |
caaruizze | 0:0275ebccd8fe | 594 | ki=o; |
caaruizze | 0:0275ebccd8fe | 595 | |
caaruizze | 0:0275ebccd8fe | 596 | Sp=(sp*3.3)/100; |
caaruizze | 0:0275ebccd8fe | 597 | med=Vin*3.3; |
caaruizze | 0:0275ebccd8fe | 598 | err = (Sp-med); |
caaruizze | 0:0275ebccd8fe | 599 | ap = kp*err; |
caaruizze | 0:0275ebccd8fe | 600 | ai =(ki*err)+ai; |
caaruizze | 0:0275ebccd8fe | 601 | |
caaruizze | 0:0275ebccd8fe | 602 | ad = kd*(err-err_v); |
caaruizze | 0:0275ebccd8fe | 603 | pid = (ap+ai+ad); |
caaruizze | 0:0275ebccd8fe | 604 | if (pid<0) |
caaruizze | 0:0275ebccd8fe | 605 | { |
caaruizze | 0:0275ebccd8fe | 606 | pid=0; |
caaruizze | 0:0275ebccd8fe | 607 | } |
caaruizze | 0:0275ebccd8fe | 608 | if (pid>99) |
caaruizze | 0:0275ebccd8fe | 609 | { |
caaruizze | 0:0275ebccd8fe | 610 | pid=100; |
caaruizze | 0:0275ebccd8fe | 611 | } |
caaruizze | 0:0275ebccd8fe | 612 | |
caaruizze | 0:0275ebccd8fe | 613 | Vo=pid/100; |
caaruizze | 0:0275ebccd8fe | 614 | |
caaruizze | 0:0275ebccd8fe | 615 | |
caaruizze | 0:0275ebccd8fe | 616 | lcd.locate(3,0); |
caaruizze | 0:0275ebccd8fe | 617 | lcd.printf(" "); |
caaruizze | 0:0275ebccd8fe | 618 | lcd.locate(3,0); |
caaruizze | 0:0275ebccd8fe | 619 | lcd.printf("%.1f",err); |
caaruizze | 0:0275ebccd8fe | 620 | lcd.locate(11,0); |
caaruizze | 0:0275ebccd8fe | 621 | lcd.printf(" "); |
caaruizze | 0:0275ebccd8fe | 622 | lcd.locate(11,0); |
caaruizze | 0:0275ebccd8fe | 623 | lcd.printf("%.1f",med); |
caaruizze | 0:0275ebccd8fe | 624 | lcd.locate(3,1); |
caaruizze | 0:0275ebccd8fe | 625 | lcd.printf(" "); |
caaruizze | 0:0275ebccd8fe | 626 | lcd.locate(3,1); |
caaruizze | 0:0275ebccd8fe | 627 | lcd.printf("%.1f",Sp); |
caaruizze | 0:0275ebccd8fe | 628 | lcd.locate(11,1); |
caaruizze | 0:0275ebccd8fe | 629 | lcd.printf(" "); |
caaruizze | 0:0275ebccd8fe | 630 | lcd.locate(11,1); |
caaruizze | 0:0275ebccd8fe | 631 | lcd.printf("%.1f",pid); |
caaruizze | 0:0275ebccd8fe | 632 | |
caaruizze | 0:0275ebccd8fe | 633 | err_v = err; |
caaruizze | 0:0275ebccd8fe | 634 | }//whilePID |
caaruizze | 0:0275ebccd8fe | 635 | }//main |