PID

Dependencies:   TextLCD-modificad mbed

Committer:
salondonog
Date:
Fri Nov 15 17:43:51 2013 +0000
Revision:
0:9d62b34e332d
Pid

Who changed what in which revision?

UserRevisionLine numberNew contents of line
salondonog 0:9d62b34e332d 1 #include "mbed.h"
salondonog 0:9d62b34e332d 2 #include "TextLCD.h"
salondonog 0:9d62b34e332d 3 #include "DebouncedIn.h"
salondonog 0:9d62b34e332d 4
salondonog 0:9d62b34e332d 5 TextLCD lcd(PTB10, PTB11, PTE2, PTE3, PTE4, PTE5); //configura los puestos PTE0,PTE1,PTE2,PTE3,PTE4,PTE5, donde se conectara el LCD 16x2
salondonog 0:9d62b34e332d 6 DigitalIn mas(PTC12);
salondonog 0:9d62b34e332d 7 DigitalIn menos(PTC13);
salondonog 0:9d62b34e332d 8 DebouncedIn salto(PTC16);
salondonog 0:9d62b34e332d 9 DebouncedIn set(PTC17);
salondonog 0:9d62b34e332d 10 AnalogIn Vin(PTB0);
salondonog 0:9d62b34e332d 11 AnalogOut Vout(PTE30);
salondonog 0:9d62b34e332d 12 Timer t;
salondonog 0:9d62b34e332d 13 int flag;
salondonog 0:9d62b34e332d 14 int q;
salondonog 0:9d62b34e332d 15 int C1=0x0E; //configurar el lcd para mostrar el guin bajo
salondonog 0:9d62b34e332d 16 int C2=0x0C; //configurar el lcd para no mostrar el guion bajo
salondonog 0:9d62b34e332d 17 int s=0; //set point
salondonog 0:9d62b34e332d 18 int p=0; //ganancia proporcional
salondonog 0:9d62b34e332d 19 int i=0; //ganancia integral
salondonog 0:9d62b34e332d 20 int d=0; //ganancia derivativa
salondonog 0:9d62b34e332d 21 int k=0; //variable de control}
salondonog 0:9d62b34e332d 22 int err, med, yr, ap, ai, ad, err_v, cycle;
salondonog 0:9d62b34e332d 23 int pid;
salondonog 0:9d62b34e332d 24
salondonog 0:9d62b34e332d 25 int conteo_creciente(int incremento){
salondonog 0:9d62b34e332d 26 if(incremento==999){
salondonog 0:9d62b34e332d 27 return incremento;
salondonog 0:9d62b34e332d 28 }
salondonog 0:9d62b34e332d 29 else if(!mas.read()){
salondonog 0:9d62b34e332d 30 for(int t=0;t<10;t++){
salondonog 0:9d62b34e332d 31 if(mas.read()){
salondonog 0:9d62b34e332d 32 break;
salondonog 0:9d62b34e332d 33 }
salondonog 0:9d62b34e332d 34 if(incremento>=999){
salondonog 0:9d62b34e332d 35 incremento=999;
salondonog 0:9d62b34e332d 36 if (k==0){
salondonog 0:9d62b34e332d 37 lcd.locate(3,0);
salondonog 0:9d62b34e332d 38 }
salondonog 0:9d62b34e332d 39 else if(k==1){
salondonog 0:9d62b34e332d 40 lcd.locate(11,0);
salondonog 0:9d62b34e332d 41 }
salondonog 0:9d62b34e332d 42 else if (k==2){
salondonog 0:9d62b34e332d 43 lcd.locate(3,1);
salondonog 0:9d62b34e332d 44 }
salondonog 0:9d62b34e332d 45 else {
salondonog 0:9d62b34e332d 46 lcd.locate(11,1);
salondonog 0:9d62b34e332d 47 }
salondonog 0:9d62b34e332d 48 lcd.printf("%d ",incremento);
salondonog 0:9d62b34e332d 49 break;
salondonog 0:9d62b34e332d 50 }
salondonog 0:9d62b34e332d 51 incremento++;
salondonog 0:9d62b34e332d 52 if (k==0){
salondonog 0:9d62b34e332d 53 lcd.locate(3,0);
salondonog 0:9d62b34e332d 54 }
salondonog 0:9d62b34e332d 55 else if(k==1){
salondonog 0:9d62b34e332d 56 lcd.locate(11,0);
salondonog 0:9d62b34e332d 57 }
salondonog 0:9d62b34e332d 58 else if (k==2){
salondonog 0:9d62b34e332d 59 lcd.locate(3,1);
salondonog 0:9d62b34e332d 60 }
salondonog 0:9d62b34e332d 61 else {
salondonog 0:9d62b34e332d 62 lcd.locate(11,1);
salondonog 0:9d62b34e332d 63 }
salondonog 0:9d62b34e332d 64 lcd.printf("%d ",incremento);
salondonog 0:9d62b34e332d 65 wait(0.5);
salondonog 0:9d62b34e332d 66 }
salondonog 0:9d62b34e332d 67
salondonog 0:9d62b34e332d 68 for(int t=0;t<10;t++){
salondonog 0:9d62b34e332d 69 if(mas.read()){
salondonog 0:9d62b34e332d 70 break;
salondonog 0:9d62b34e332d 71 }
salondonog 0:9d62b34e332d 72 if(incremento>=990){
salondonog 0:9d62b34e332d 73 incremento=999;
salondonog 0:9d62b34e332d 74 if (k==0){
salondonog 0:9d62b34e332d 75 lcd.locate(3,0);
salondonog 0:9d62b34e332d 76 }
salondonog 0:9d62b34e332d 77 else if(k==1){
salondonog 0:9d62b34e332d 78 lcd.locate(11,0);
salondonog 0:9d62b34e332d 79 }
salondonog 0:9d62b34e332d 80 else if (k==2){
salondonog 0:9d62b34e332d 81 lcd.locate(3,1);
salondonog 0:9d62b34e332d 82 }
salondonog 0:9d62b34e332d 83 else {
salondonog 0:9d62b34e332d 84 lcd.locate(11,1);
salondonog 0:9d62b34e332d 85 }
salondonog 0:9d62b34e332d 86 lcd.printf("%d ",incremento);
salondonog 0:9d62b34e332d 87 break;
salondonog 0:9d62b34e332d 88 }
salondonog 0:9d62b34e332d 89 incremento+=10;
salondonog 0:9d62b34e332d 90 if (k==0){
salondonog 0:9d62b34e332d 91 lcd.locate(3,0);
salondonog 0:9d62b34e332d 92 }
salondonog 0:9d62b34e332d 93 else if(k==1){
salondonog 0:9d62b34e332d 94 lcd.locate(11,0);
salondonog 0:9d62b34e332d 95 }
salondonog 0:9d62b34e332d 96 else if (k==2){
salondonog 0:9d62b34e332d 97 lcd.locate(3,1);
salondonog 0:9d62b34e332d 98 }
salondonog 0:9d62b34e332d 99 else {
salondonog 0:9d62b34e332d 100 lcd.locate(11,1);
salondonog 0:9d62b34e332d 101 }
salondonog 0:9d62b34e332d 102 lcd.printf("%d ",incremento);
salondonog 0:9d62b34e332d 103 wait(0.5);
salondonog 0:9d62b34e332d 104 }
salondonog 0:9d62b34e332d 105 for(int t=0;t<10;t++){
salondonog 0:9d62b34e332d 106 if(mas.read()){
salondonog 0:9d62b34e332d 107 break;
salondonog 0:9d62b34e332d 108 }
salondonog 0:9d62b34e332d 109 if(incremento>=900){
salondonog 0:9d62b34e332d 110 incremento=999;
salondonog 0:9d62b34e332d 111 if (k==0){
salondonog 0:9d62b34e332d 112 lcd.locate(3,0);
salondonog 0:9d62b34e332d 113 }
salondonog 0:9d62b34e332d 114 else if(k==1){
salondonog 0:9d62b34e332d 115 lcd.locate(11,0);
salondonog 0:9d62b34e332d 116 }
salondonog 0:9d62b34e332d 117 else if (k==2){
salondonog 0:9d62b34e332d 118 lcd.locate(3,1);
salondonog 0:9d62b34e332d 119 }
salondonog 0:9d62b34e332d 120 else {
salondonog 0:9d62b34e332d 121 lcd.locate(11,1);
salondonog 0:9d62b34e332d 122 }
salondonog 0:9d62b34e332d 123 lcd.printf("%d ",incremento);
salondonog 0:9d62b34e332d 124 break;
salondonog 0:9d62b34e332d 125 }
salondonog 0:9d62b34e332d 126 incremento+=100;
salondonog 0:9d62b34e332d 127 if (k==0){
salondonog 0:9d62b34e332d 128 lcd.locate(3,0);
salondonog 0:9d62b34e332d 129 }
salondonog 0:9d62b34e332d 130 else if(k==1){
salondonog 0:9d62b34e332d 131 lcd.locate(11,0);
salondonog 0:9d62b34e332d 132 }
salondonog 0:9d62b34e332d 133 else if (k==2){
salondonog 0:9d62b34e332d 134 lcd.locate(3,1);
salondonog 0:9d62b34e332d 135 }
salondonog 0:9d62b34e332d 136 else {
salondonog 0:9d62b34e332d 137 lcd.locate(11,1);
salondonog 0:9d62b34e332d 138 }
salondonog 0:9d62b34e332d 139 lcd.printf("%d ",incremento);
salondonog 0:9d62b34e332d 140 wait(0.5);
salondonog 0:9d62b34e332d 141 }
salondonog 0:9d62b34e332d 142 }
salondonog 0:9d62b34e332d 143 return incremento;
salondonog 0:9d62b34e332d 144 }
salondonog 0:9d62b34e332d 145
salondonog 0:9d62b34e332d 146
salondonog 0:9d62b34e332d 147
salondonog 0:9d62b34e332d 148 int conteo_decreciente(int incremento){
salondonog 0:9d62b34e332d 149 if (incremento==0){
salondonog 0:9d62b34e332d 150 return incremento;
salondonog 0:9d62b34e332d 151 }
salondonog 0:9d62b34e332d 152 else if(!menos.read()){
salondonog 0:9d62b34e332d 153 for(int t=0;t<10;t++){
salondonog 0:9d62b34e332d 154 if(menos.read()){
salondonog 0:9d62b34e332d 155 break;
salondonog 0:9d62b34e332d 156 }
salondonog 0:9d62b34e332d 157 if(incremento<=1){
salondonog 0:9d62b34e332d 158 incremento=0;
salondonog 0:9d62b34e332d 159 if (k==0){
salondonog 0:9d62b34e332d 160 lcd.locate(3,0);
salondonog 0:9d62b34e332d 161 }
salondonog 0:9d62b34e332d 162 else if(k==1){
salondonog 0:9d62b34e332d 163 lcd.locate(11,0);
salondonog 0:9d62b34e332d 164 }
salondonog 0:9d62b34e332d 165 else if (k==2){
salondonog 0:9d62b34e332d 166 lcd.locate(3,1);
salondonog 0:9d62b34e332d 167 }
salondonog 0:9d62b34e332d 168 else {
salondonog 0:9d62b34e332d 169 lcd.locate(11,1);
salondonog 0:9d62b34e332d 170 }
salondonog 0:9d62b34e332d 171 lcd.printf("%d",incremento);
salondonog 0:9d62b34e332d 172 break;
salondonog 0:9d62b34e332d 173 }
salondonog 0:9d62b34e332d 174 --incremento;
salondonog 0:9d62b34e332d 175 if (k==0){
salondonog 0:9d62b34e332d 176 lcd.locate(3,0);
salondonog 0:9d62b34e332d 177 }
salondonog 0:9d62b34e332d 178 else if(k==1){
salondonog 0:9d62b34e332d 179 lcd.locate(11,0);
salondonog 0:9d62b34e332d 180 }
salondonog 0:9d62b34e332d 181 else if (k==2){
salondonog 0:9d62b34e332d 182 lcd.locate(3,1);
salondonog 0:9d62b34e332d 183 }
salondonog 0:9d62b34e332d 184 else {
salondonog 0:9d62b34e332d 185 lcd.locate(11,1);
salondonog 0:9d62b34e332d 186 }
salondonog 0:9d62b34e332d 187 lcd.printf("%d ",incremento);
salondonog 0:9d62b34e332d 188 wait(0.5);
salondonog 0:9d62b34e332d 189 }
salondonog 0:9d62b34e332d 190
salondonog 0:9d62b34e332d 191 for(int t=0;t<10;t++){
salondonog 0:9d62b34e332d 192 if(menos.read()){
salondonog 0:9d62b34e332d 193 break;
salondonog 0:9d62b34e332d 194 }
salondonog 0:9d62b34e332d 195 if(incremento<=10){
salondonog 0:9d62b34e332d 196 incremento=0;
salondonog 0:9d62b34e332d 197 if (k==0){
salondonog 0:9d62b34e332d 198 lcd.locate(3,0);
salondonog 0:9d62b34e332d 199 }
salondonog 0:9d62b34e332d 200 else if(k==1){
salondonog 0:9d62b34e332d 201 lcd.locate(11,0);
salondonog 0:9d62b34e332d 202 }
salondonog 0:9d62b34e332d 203 else if (k==2){
salondonog 0:9d62b34e332d 204 lcd.locate(3,1);
salondonog 0:9d62b34e332d 205 }
salondonog 0:9d62b34e332d 206 else {
salondonog 0:9d62b34e332d 207 lcd.locate(11,1);
salondonog 0:9d62b34e332d 208 }
salondonog 0:9d62b34e332d 209 lcd.printf("%d ",incremento);
salondonog 0:9d62b34e332d 210 break;
salondonog 0:9d62b34e332d 211 }
salondonog 0:9d62b34e332d 212 incremento-=10;
salondonog 0:9d62b34e332d 213 if (k==0){
salondonog 0:9d62b34e332d 214 lcd.locate(3,0);
salondonog 0:9d62b34e332d 215 }
salondonog 0:9d62b34e332d 216 else if(k==1){
salondonog 0:9d62b34e332d 217 lcd.locate(11,0);
salondonog 0:9d62b34e332d 218 }
salondonog 0:9d62b34e332d 219 else if (k==2){
salondonog 0:9d62b34e332d 220 lcd.locate(3,1);
salondonog 0:9d62b34e332d 221 }
salondonog 0:9d62b34e332d 222 else {
salondonog 0:9d62b34e332d 223 lcd.locate(11,1);
salondonog 0:9d62b34e332d 224 }
salondonog 0:9d62b34e332d 225 lcd.printf("%d ",incremento);
salondonog 0:9d62b34e332d 226 wait(0.5);
salondonog 0:9d62b34e332d 227 }
salondonog 0:9d62b34e332d 228 for(int t=0;t<10;t++){
salondonog 0:9d62b34e332d 229 if(menos.read()){
salondonog 0:9d62b34e332d 230 break;
salondonog 0:9d62b34e332d 231 }
salondonog 0:9d62b34e332d 232 if(incremento<=100){
salondonog 0:9d62b34e332d 233 incremento=0;
salondonog 0:9d62b34e332d 234 if (k==0){
salondonog 0:9d62b34e332d 235 lcd.locate(3,0);
salondonog 0:9d62b34e332d 236 }
salondonog 0:9d62b34e332d 237 else if(k==1){
salondonog 0:9d62b34e332d 238 lcd.locate(11,0);
salondonog 0:9d62b34e332d 239 }
salondonog 0:9d62b34e332d 240 else if (k==2){
salondonog 0:9d62b34e332d 241 lcd.locate(3,1);
salondonog 0:9d62b34e332d 242 }
salondonog 0:9d62b34e332d 243 else {
salondonog 0:9d62b34e332d 244 lcd.locate(11,1);
salondonog 0:9d62b34e332d 245 }
salondonog 0:9d62b34e332d 246 lcd.printf("%d ",incremento);
salondonog 0:9d62b34e332d 247 break;
salondonog 0:9d62b34e332d 248 }
salondonog 0:9d62b34e332d 249 incremento-=100;
salondonog 0:9d62b34e332d 250 if (k==0){
salondonog 0:9d62b34e332d 251 lcd.locate(3,0);
salondonog 0:9d62b34e332d 252 }
salondonog 0:9d62b34e332d 253 else if(k==1){
salondonog 0:9d62b34e332d 254 lcd.locate(11,0);
salondonog 0:9d62b34e332d 255 }
salondonog 0:9d62b34e332d 256 else if (k==2){
salondonog 0:9d62b34e332d 257 lcd.locate(3,1);
salondonog 0:9d62b34e332d 258 }
salondonog 0:9d62b34e332d 259 else {
salondonog 0:9d62b34e332d 260 lcd.locate(11,1);
salondonog 0:9d62b34e332d 261 }
salondonog 0:9d62b34e332d 262 lcd.printf("%d ",incremento);
salondonog 0:9d62b34e332d 263 wait(0.5);
salondonog 0:9d62b34e332d 264 }
salondonog 0:9d62b34e332d 265 }
salondonog 0:9d62b34e332d 266 return incremento;
salondonog 0:9d62b34e332d 267 }
salondonog 0:9d62b34e332d 268
salondonog 0:9d62b34e332d 269
salondonog 0:9d62b34e332d 270 void def_posicion(int h){
salondonog 0:9d62b34e332d 271 if (h==0){
salondonog 0:9d62b34e332d 272 lcd.locate(3,0); lcd.printf("%d",s);
salondonog 0:9d62b34e332d 273 lcd.locate(3,0);
salondonog 0:9d62b34e332d 274 }
salondonog 0:9d62b34e332d 275 else if(h==1){
salondonog 0:9d62b34e332d 276 lcd.locate(11,0); lcd.printf("%d",p);
salondonog 0:9d62b34e332d 277 lcd.locate(11,0);
salondonog 0:9d62b34e332d 278 }
salondonog 0:9d62b34e332d 279 else if (h==2){
salondonog 0:9d62b34e332d 280 lcd.locate(3,1); lcd.printf("%d",i);
salondonog 0:9d62b34e332d 281 lcd.locate(3,1);
salondonog 0:9d62b34e332d 282 }
salondonog 0:9d62b34e332d 283 else {
salondonog 0:9d62b34e332d 284 lcd.locate(11,1); lcd.printf("%d",d);
salondonog 0:9d62b34e332d 285 lcd.locate(11,1);
salondonog 0:9d62b34e332d 286 }
salondonog 0:9d62b34e332d 287 }
salondonog 0:9d62b34e332d 288
salondonog 0:9d62b34e332d 289 void decremento(int u){ //Funcion que decrementa los valores
salondonog 0:9d62b34e332d 290 if(u==0){
salondonog 0:9d62b34e332d 291 s=conteo_decreciente(s);
salondonog 0:9d62b34e332d 292 }
salondonog 0:9d62b34e332d 293 else if(u==1){
salondonog 0:9d62b34e332d 294 p=conteo_decreciente(p) ;
salondonog 0:9d62b34e332d 295 }
salondonog 0:9d62b34e332d 296 else if(u==2){
salondonog 0:9d62b34e332d 297 i=conteo_decreciente(i);
salondonog 0:9d62b34e332d 298 }
salondonog 0:9d62b34e332d 299 else{
salondonog 0:9d62b34e332d 300 d=conteo_decreciente(d);
salondonog 0:9d62b34e332d 301 }
salondonog 0:9d62b34e332d 302 }
salondonog 0:9d62b34e332d 303
salondonog 0:9d62b34e332d 304 void incremento(int h){ //Funcion que incremente los valores
salondonog 0:9d62b34e332d 305 if(h==0){
salondonog 0:9d62b34e332d 306 s=conteo_creciente(s);
salondonog 0:9d62b34e332d 307 }
salondonog 0:9d62b34e332d 308 else if(h==1){
salondonog 0:9d62b34e332d 309 p=conteo_creciente(p) ;
salondonog 0:9d62b34e332d 310 }
salondonog 0:9d62b34e332d 311 else if(h==2){
salondonog 0:9d62b34e332d 312 i=conteo_creciente(i);
salondonog 0:9d62b34e332d 313 }
salondonog 0:9d62b34e332d 314 else{
salondonog 0:9d62b34e332d 315 d=conteo_creciente(d);
salondonog 0:9d62b34e332d 316 }
salondonog 0:9d62b34e332d 317
salondonog 0:9d62b34e332d 318 }
salondonog 0:9d62b34e332d 319
salondonog 0:9d62b34e332d 320 void star_patch1(void){ //funcion que imprime los caracteres que no van a variar en el display
salondonog 0:9d62b34e332d 321 lcd.cls();
salondonog 0:9d62b34e332d 322 lcd.locate(8,0);
salondonog 0:9d62b34e332d 323 lcd.printf("Kp=%d",p);
salondonog 0:9d62b34e332d 324 lcd.locate(0,1);
salondonog 0:9d62b34e332d 325 lcd.printf("Ki=%d",i);
salondonog 0:9d62b34e332d 326 lcd.locate(8,1);
salondonog 0:9d62b34e332d 327 lcd.printf("Kd=%d",d);
salondonog 0:9d62b34e332d 328 lcd.writeCommand(C1); //permite que el cursor se vea y sea intermitente
salondonog 0:9d62b34e332d 329 lcd.locate(0,0);
salondonog 0:9d62b34e332d 330 lcd.printf("Sp=%d",s);
salondonog 0:9d62b34e332d 331 }
salondonog 0:9d62b34e332d 332
salondonog 0:9d62b34e332d 333 void star_patch2(void){ //funcion que imprime los caracteres que no van a variar en el display
salondonog 0:9d62b34e332d 334 lcd.writeCommand(C2);
salondonog 0:9d62b34e332d 335 lcd.cls();
salondonog 0:9d62b34e332d 336 lcd.printf("***INICIA PID***/n"); lcd.printf("***************");
salondonog 0:9d62b34e332d 337 wait(2);
salondonog 0:9d62b34e332d 338 lcd.cls();
salondonog 0:9d62b34e332d 339 lcd.printf("Er%=d",err);
salondonog 0:9d62b34e332d 340 lcd.locate(8,0); lcd.printf("Me=%d",med);
salondonog 0:9d62b34e332d 341 lcd.locate(0,1); lcd.printf("Sp=%d",s);
salondonog 0:9d62b34e332d 342 lcd.locate(8,1); lcd.printf("Co=%d",pid);
salondonog 0:9d62b34e332d 343 wait(3);
salondonog 0:9d62b34e332d 344 }
salondonog 0:9d62b34e332d 345
salondonog 0:9d62b34e332d 346 int main(){
salondonog 0:9d62b34e332d 347 star_patch1();
salondonog 0:9d62b34e332d 348 while(1){
salondonog 0:9d62b34e332d 349 if(k>=3 && salto.falling()){
salondonog 0:9d62b34e332d 350 k=0;
salondonog 0:9d62b34e332d 351 def_posicion(k);
salondonog 0:9d62b34e332d 352 }
salondonog 0:9d62b34e332d 353 if(salto.falling()){
salondonog 0:9d62b34e332d 354 ++k;
salondonog 0:9d62b34e332d 355 def_posicion(k);
salondonog 0:9d62b34e332d 356 }
salondonog 0:9d62b34e332d 357 else if(!mas.read()){
salondonog 0:9d62b34e332d 358 incremento(k);
salondonog 0:9d62b34e332d 359 }
salondonog 0:9d62b34e332d 360 else if(!menos.read()){
salondonog 0:9d62b34e332d 361 decremento(k);
salondonog 0:9d62b34e332d 362 }
salondonog 0:9d62b34e332d 363 else if(set.falling()){
salondonog 0:9d62b34e332d 364 break;
salondonog 0:9d62b34e332d 365 }
salondonog 0:9d62b34e332d 366 }
salondonog 0:9d62b34e332d 367 star_patch2();
salondonog 0:9d62b34e332d 368
salondonog 0:9d62b34e332d 369 while (1){
salondonog 0:9d62b34e332d 370
salondonog 0:9d62b34e332d 371 med=Vin.read()*1000;
salondonog 0:9d62b34e332d 372 err = (s-med);
salondonog 0:9d62b34e332d 373 ap = k*err;
salondonog 0:9d62b34e332d 374 ai =(i*err)+ai; //calculo de la integral del error
salondonog 0:9d62b34e332d 375 // se verifica que la accion integral no sea muy grande
salondonog 0:9d62b34e332d 376 ad = d*(err-err_v); //calculo de la accion derivativa
salondonog 0:9d62b34e332d 377 pid = (ap+ai+ad);
salondonog 0:9d62b34e332d 378 //****se muestran las variables******************************************
salondonog 0:9d62b34e332d 379 if (pid > 999){
salondonog 0:9d62b34e332d 380 pid=1000;
salondonog 0:9d62b34e332d 381 }
salondonog 0:9d62b34e332d 382 else if (pid<0){
salondonog 0:9d62b34e332d 383 pid=0;
salondonog 0:9d62b34e332d 384 }
salondonog 0:9d62b34e332d 385 Vout.write(pid/1000);
salondonog 0:9d62b34e332d 386 if(flag==0){
salondonog 0:9d62b34e332d 387 t.start();
salondonog 0:9d62b34e332d 388 flag=1;
salondonog 0:9d62b34e332d 389 }
salondonog 0:9d62b34e332d 390 if (t>0.3){
salondonog 0:9d62b34e332d 391 lcd.locate(3,0);
salondonog 0:9d62b34e332d 392 lcd.printf(" ");
salondonog 0:9d62b34e332d 393 lcd.locate(3,0);
salondonog 0:9d62b34e332d 394 lcd.printf("%d",err);
salondonog 0:9d62b34e332d 395 lcd.locate(11,0);
salondonog 0:9d62b34e332d 396 lcd.printf(" ");
salondonog 0:9d62b34e332d 397 lcd.locate(11,0);
salondonog 0:9d62b34e332d 398 lcd.printf("%d",med);
salondonog 0:9d62b34e332d 399 lcd.locate(3,1);
salondonog 0:9d62b34e332d 400 lcd.printf(" ");
salondonog 0:9d62b34e332d 401 lcd.locate(3,1);
salondonog 0:9d62b34e332d 402 lcd.printf("%d",s);
salondonog 0:9d62b34e332d 403 lcd.locate(11,1);
salondonog 0:9d62b34e332d 404 lcd.printf(" ");
salondonog 0:9d62b34e332d 405 lcd.locate(11,1);
salondonog 0:9d62b34e332d 406 lcd.printf("%d ",pid);
salondonog 0:9d62b34e332d 407 t.reset();
salondonog 0:9d62b34e332d 408 flag=0;
salondonog 0:9d62b34e332d 409 wait(.3);
salondonog 0:9d62b34e332d 410 }
salondonog 0:9d62b34e332d 411 // se actualizan las variables *******************************************
salondonog 0:9d62b34e332d 412 err_v = err;
salondonog 0:9d62b34e332d 413 }
salondonog 0:9d62b34e332d 414 }