![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Tarea 2-Procesadores 2016-2. Aldair Navarro
Dependencies: Pulse1 TextLCD mbed
Fork of irda_Sony by
main.cpp@5:6d9292b2d5e3, 2016-11-30 (annotated)
- Committer:
- LaVerga_A
- Date:
- Wed Nov 30 04:02:51 2016 +0000
- Revision:
- 5:6d9292b2d5e3
- Parent:
- 4:150bc6a5f5b4
Tarea 2-Procesadores 2016-2. Aldair Navarro
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
tony63 | 0:74d57f8ae247 | 1 | #include "mbed.h" |
tony63 | 0:74d57f8ae247 | 2 | #include <Pulse1.h> |
LaVerga_A | 5:6d9292b2d5e3 | 3 | #include "TextLCD.h" |
tony63 | 4:150bc6a5f5b4 | 4 | #include "stdio.h" |
tony63 | 4:150bc6a5f5b4 | 5 | #include "math.h" |
LaVerga_A | 5:6d9292b2d5e3 | 6 | |
LaVerga_A | 5:6d9292b2d5e3 | 7 | //===============================================================================CONTROL REMOTO SONY |
LaVerga_A | 5:6d9292b2d5e3 | 8 | |
LaVerga_A | 5:6d9292b2d5e3 | 9 | PulseInOut irda(PTD4); //puerto para sensor infrarrojo |
LaVerga_A | 5:6d9292b2d5e3 | 10 | Serial pc(USBTX, USBRX); //Para Termite |
LaVerga_A | 5:6d9292b2d5e3 | 11 | DigitalOut led(LED1); DigitalOut led2(LED2); // Leds |
LaVerga_A | 5:6d9292b2d5e3 | 12 | TextLCD lcd(PTB10, PTB11, PTE2, PTE3, PTE4, PTE5); // LCD |
LaVerga_A | 5:6d9292b2d5e3 | 13 | AnalogIn y(PTB3); //entrada analoga |
LaVerga_A | 5:6d9292b2d5e3 | 14 | AnalogOut u(PTE30); //salida analoga OJO solo se le pueden drenar 1.5mA en circuitos use un Buffer |
LaVerga_A | 5:6d9292b2d5e3 | 15 | //si se ignora se daña la FRDMKL25Z |
LaVerga_A | 5:6d9292b2d5e3 | 16 | int header =0; //tiempo de Bit de Inicio (4T) |
LaVerga_A | 5:6d9292b2d5e3 | 17 | int head_H = 2900; //20% tiempo de Bit de Inicio |
LaVerga_A | 5:6d9292b2d5e3 | 18 | int head_L= 1900; |
LaVerga_A | 5:6d9292b2d5e3 | 19 | int T_alto=1200; //Tiempo maximo de un bit 1 |
LaVerga_A | 5:6d9292b2d5e3 | 20 | int T_bajo=600; //Tiempo maximo de un bit 0 |
LaVerga_A | 5:6d9292b2d5e3 | 21 | int num_bits = 12; //Número de bits |
LaVerga_A | 5:6d9292b2d5e3 | 22 | int times[12]; //almacenador de tiempos de bits |
LaVerga_A | 5:6d9292b2d5e3 | 23 | |
LaVerga_A | 5:6d9292b2d5e3 | 24 | int dato=0; //Tiempo del Bit actual |
LaVerga_A | 5:6d9292b2d5e3 | 25 | int bin[12]; //Cadena de Bits |
LaVerga_A | 5:6d9292b2d5e3 | 26 | //int Serie[20]; //Serie 2^n |
LaVerga_A | 5:6d9292b2d5e3 | 27 | int numero=0; //Numero Decimal del botón |
LaVerga_A | 5:6d9292b2d5e3 | 28 | int boton=0; //boton que se undió |
LaVerga_A | 5:6d9292b2d5e3 | 29 | |
LaVerga_A | 5:6d9292b2d5e3 | 30 | int Sp=0, Kp=0, Ki=0, Kd=0, pos=1 , i=0 , j=0 , k=0, valPar=0 ; //Variables |
LaVerga_A | 5:6d9292b2d5e3 | 31 | float pid,ai,ad,ap,med,err,err_v; |
LaVerga_A | 5:6d9292b2d5e3 | 32 | //const int base[]={1,10,100}; |
LaVerga_A | 5:6d9292b2d5e3 | 33 | int C1=0x0F; int C4=0x0C; // cursor y cursor bajo |
tony63 | 4:150bc6a5f5b4 | 34 | int binM[20]; |
tony63 | 4:150bc6a5f5b4 | 35 | |
tony63 | 4:150bc6a5f5b4 | 36 | |
LaVerga_A | 5:6d9292b2d5e3 | 37 | //=============================================================================== Prototipo de Funciones |
LaVerga_A | 5:6d9292b2d5e3 | 38 | void PID (int Sp, int Kp, int Ki, int Kd); |
LaVerga_A | 5:6d9292b2d5e3 | 39 | void LCD1 (int col, int fil, int val ) ; |
LaVerga_A | 5:6d9292b2d5e3 | 40 | void LCD2 (int col, int fil, float val ) ; |
tony63 | 4:150bc6a5f5b4 | 41 | |
LaVerga_A | 5:6d9292b2d5e3 | 42 | |
LaVerga_A | 5:6d9292b2d5e3 | 43 | //================================================================================ Main - Configuración de Parámetros |
LaVerga_A | 5:6d9292b2d5e3 | 44 | int main(){ |
LaVerga_A | 5:6d9292b2d5e3 | 45 | lcd.locate(0,1); lcd.printf("**PID Control**"); |
LaVerga_A | 5:6d9292b2d5e3 | 46 | wait(2); lcd.cls(); lcd.writeCommand(C1); |
LaVerga_A | 5:6d9292b2d5e3 | 47 | |
LaVerga_A | 5:6d9292b2d5e3 | 48 | lcd.locate(0,0); lcd.printf("Sp=%d",Sp); |
LaVerga_A | 5:6d9292b2d5e3 | 49 | lcd.locate(8,0); lcd.printf("Kp=%d",Kp); |
LaVerga_A | 5:6d9292b2d5e3 | 50 | lcd.locate(0,1); lcd.printf("Ki=%d",Ki); |
LaVerga_A | 5:6d9292b2d5e3 | 51 | lcd.locate(8,1); lcd.printf("Kd=%d",Kd); |
LaVerga_A | 5:6d9292b2d5e3 | 52 | |
LaVerga_A | 5:6d9292b2d5e3 | 53 | while(1){ |
LaVerga_A | 5:6d9292b2d5e3 | 54 | ini1: fflush( stdin ); |
LaVerga_A | 5:6d9292b2d5e3 | 55 | header=0; |
LaVerga_A | 5:6d9292b2d5e3 | 56 | led2=0; led=1; |
tony63 | 3:82bebaf2a06a | 57 | header = irda.read_low_us(); //funcion para leer un pulso de caida o bajo en header |
tony63 | 2:6a15ab0305c8 | 58 | if (header > head_L && header < head_H) goto seguir;//verificar que este en la tolerancia +-20% |
tony63 | 2:6a15ab0305c8 | 59 | else goto ini1; |
tony63 | 0:74d57f8ae247 | 60 | |
tony63 | 2:6a15ab0305c8 | 61 | seguir: |
tony63 | 2:6a15ab0305c8 | 62 | //leo los datos de la trama y se meten a un arreglo |
tony63 | 4:150bc6a5f5b4 | 63 | wait_us(400);// ES EL TIEMPO DE HEADER QUE NO SE Lee O EL ALTO |
tony63 | 4:150bc6a5f5b4 | 64 | led2=1; |
tony63 | 2:6a15ab0305c8 | 65 | for(i=0;i<(num_bits-1);++i){ // POR OSCILOSCOPIO se determina que llegan (num_bits),datos |
tony63 | 4:150bc6a5f5b4 | 66 | dato = irda.read_low_us(); //leer un bit de datos que es pulso arriba en este control |
LaVerga_A | 5:6d9292b2d5e3 | 67 | times[i]=dato; |
LaVerga_A | 5:6d9292b2d5e3 | 68 | wait_us(400); } |
LaVerga_A | 5:6d9292b2d5e3 | 69 | |
tony63 | 3:82bebaf2a06a | 70 | wait(0.5); //espero un poquito luego de leer todo el arreglo y ponerlo en pantalla |
LaVerga_A | 5:6d9292b2d5e3 | 71 | |
LaVerga_A | 5:6d9292b2d5e3 | 72 | pc.printf("heder= ,%d\n",header); |
LaVerga_A | 5:6d9292b2d5e3 | 73 | |
LaVerga_A | 5:6d9292b2d5e3 | 74 | for(i=0;i<(num_bits-1);++i){pc.printf("%d,",times[i]); } |
LaVerga_A | 5:6d9292b2d5e3 | 75 | |
LaVerga_A | 5:6d9292b2d5e3 | 76 | wait(0.1); pc.printf("\n"); |
LaVerga_A | 5:6d9292b2d5e3 | 77 | |
tony63 | 2:6a15ab0305c8 | 78 | for(i=0;i<(num_bits-1);++i){ |
tony63 | 4:150bc6a5f5b4 | 79 | |
LaVerga_A | 5:6d9292b2d5e3 | 80 | if(times[i] > ((T_alto+T_bajo)/2)){ bin[i]=1; } |
LaVerga_A | 5:6d9292b2d5e3 | 81 | else{ bin[i]=0; } |
tony63 | 4:150bc6a5f5b4 | 82 | |
LaVerga_A | 5:6d9292b2d5e3 | 83 | pc.printf("%d ",bin[i]); } |
LaVerga_A | 5:6d9292b2d5e3 | 84 | |
LaVerga_A | 5:6d9292b2d5e3 | 85 | pc.printf("\n"); |
LaVerga_A | 5:6d9292b2d5e3 | 86 | |
LaVerga_A | 5:6d9292b2d5e3 | 87 | |
LaVerga_A | 5:6d9292b2d5e3 | 88 | binM[0]=1; |
LaVerga_A | 5:6d9292b2d5e3 | 89 | for(i=1;i<(num_bits-1);++i){ binM[i]=binM[i-1]*2; } |
LaVerga_A | 5:6d9292b2d5e3 | 90 | |
tony63 | 4:150bc6a5f5b4 | 91 | numero=0; |
LaVerga_A | 5:6d9292b2d5e3 | 92 | for(i=0;i<(num_bits-1);++i){ numero=numero+(binM[i]*bin[i]);} |
LaVerga_A | 5:6d9292b2d5e3 | 93 | |
LaVerga_A | 5:6d9292b2d5e3 | 94 | |
LaVerga_A | 5:6d9292b2d5e3 | 95 | pc.printf("numero=%d\n",numero); |
tony63 | 4:150bc6a5f5b4 | 96 | |
LaVerga_A | 5:6d9292b2d5e3 | 97 | if (numero==128){ boton=1 ;} else if (numero==129){ boton=2 ;} //boton 1 a 0 normales |
LaVerga_A | 5:6d9292b2d5e3 | 98 | else if (numero==130){ boton=3 ;} else if (numero==131){ boton=4 ;} //boton 11 subir, chan+ |
LaVerga_A | 5:6d9292b2d5e3 | 99 | else if (numero==132){ boton=5 ;} else if (numero==133){ boton=6 ;} //boton 12 bajar, chan- |
LaVerga_A | 5:6d9292b2d5e3 | 100 | else if (numero==134){ boton=7 ;} else if (numero==135){ boton=8 ;} //boton 13 derecha, vol+ |
LaVerga_A | 5:6d9292b2d5e3 | 101 | else if (numero==136){ boton=9 ;} else if (numero==137){ boton=0 ;} //boton 14 derecha, vol+ |
LaVerga_A | 5:6d9292b2d5e3 | 102 | else if (numero==144){ boton=11;} else if (numero==145){ boton=12;} //boton 15 ir a PID, MUTE |
LaVerga_A | 5:6d9292b2d5e3 | 103 | else if (numero==146){ boton=13;} else if (numero==147){ boton=14;} |
LaVerga_A | 5:6d9292b2d5e3 | 104 | else if (numero==148){ boton=15;} else { boton=16;} |
LaVerga_A | 5:6d9292b2d5e3 | 105 | |
LaVerga_A | 5:6d9292b2d5e3 | 106 | //pc.printf("boton= %d\n",boton); |
LaVerga_A | 5:6d9292b2d5e3 | 107 | wait(0.2); |
LaVerga_A | 5:6d9292b2d5e3 | 108 | //=================================================================USAR FLECHAS |
LaVerga_A | 5:6d9292b2d5e3 | 109 | |
LaVerga_A | 5:6d9292b2d5e3 | 110 | switch (boton) { //Toca bajar al Parámetro //Llegó chan- |
LaVerga_A | 5:6d9292b2d5e3 | 111 | case 11: |
LaVerga_A | 5:6d9292b2d5e3 | 112 | if (pos==1) { |
LaVerga_A | 5:6d9292b2d5e3 | 113 | if (Sp!=999){ Sp++; LCD1(3,0,Sp) ; pc.printf("Sp=%d",Sp);}} |
LaVerga_A | 5:6d9292b2d5e3 | 114 | if (pos==2) { |
LaVerga_A | 5:6d9292b2d5e3 | 115 | if (Kp!=999){ Kp++; LCD1(11,0,Kp);pc.printf("Kp=%d",Kp);}} |
LaVerga_A | 5:6d9292b2d5e3 | 116 | if (pos==3) { |
LaVerga_A | 5:6d9292b2d5e3 | 117 | if (Ki!=999){ Ki++; LCD1(3,1,Ki) ;pc.printf("Ki=%d",Ki);}} |
LaVerga_A | 5:6d9292b2d5e3 | 118 | if (pos==4 ){ |
LaVerga_A | 5:6d9292b2d5e3 | 119 | if (Kd!=999){ Kd++; LCD1(3,11,Kd);pc.printf("Kd=%d",Kd);}} |
LaVerga_A | 5:6d9292b2d5e3 | 120 | break; |
LaVerga_A | 5:6d9292b2d5e3 | 121 | |
LaVerga_A | 5:6d9292b2d5e3 | 122 | case 12: //Toca bajar al Parámetro //Llegó chan- |
LaVerga_A | 5:6d9292b2d5e3 | 123 | |
LaVerga_A | 5:6d9292b2d5e3 | 124 | if( pos==1 ){ |
LaVerga_A | 5:6d9292b2d5e3 | 125 | if (Sp!=0) { Sp--; LCD1(3,0,Sp) ; pc.printf("Sp=%d",Sp);}} |
LaVerga_A | 5:6d9292b2d5e3 | 126 | if (pos==2) { |
LaVerga_A | 5:6d9292b2d5e3 | 127 | if (Kp!=0) { Kp--; LCD1(11,0,Kp); pc.printf("Kp=%d",Kp);}} |
LaVerga_A | 5:6d9292b2d5e3 | 128 | if (pos==3) { |
LaVerga_A | 5:6d9292b2d5e3 | 129 | if (Ki!=0) { Ki--; LCD1(3,1,Ki) ; pc.printf("Ki=%d",Ki);}} |
LaVerga_A | 5:6d9292b2d5e3 | 130 | if (pos==4) { |
LaVerga_A | 5:6d9292b2d5e3 | 131 | if (Kd!=0) { Kd--; LCD1(3,11,Kd); pc.printf("Kd=%d",Kd);}} |
LaVerga_A | 5:6d9292b2d5e3 | 132 | break; |
LaVerga_A | 5:6d9292b2d5e3 | 133 | |
LaVerga_A | 5:6d9292b2d5e3 | 134 | case 13: //Mover hacia derecha, llegó vol+ |
LaVerga_A | 5:6d9292b2d5e3 | 135 | j=0; valPar=0; |
LaVerga_A | 5:6d9292b2d5e3 | 136 | if(pos==4){ pos=1; LCD1(3,0,Sp) ; pc.printf("Sp=%d",Sp);} |
LaVerga_A | 5:6d9292b2d5e3 | 137 | else if(pos==1){ pos++; LCD1(11,0,Kp) ;pc.printf("Kp=%d",Kp); } |
LaVerga_A | 5:6d9292b2d5e3 | 138 | else if(pos==2){ pos++; LCD1(3,1,Ki) ;pc.printf("Ki=%d",Ki); } |
LaVerga_A | 5:6d9292b2d5e3 | 139 | else if(pos==3){ pos++; LCD1(11,1,Kd) ; pc.printf("Kd=%d",Kd); } |
LaVerga_A | 5:6d9292b2d5e3 | 140 | break; |
LaVerga_A | 5:6d9292b2d5e3 | 141 | |
LaVerga_A | 5:6d9292b2d5e3 | 142 | case 14: //Mover hacia derecha, llegó vol- |
LaVerga_A | 5:6d9292b2d5e3 | 143 | j=0; valPar=0; |
LaVerga_A | 5:6d9292b2d5e3 | 144 | if(pos==1){ pos=4; LCD1(11,1,Kd) ; pc.printf("Sp=%d",Sp);} |
LaVerga_A | 5:6d9292b2d5e3 | 145 | else if(pos==4){ pos--; LCD1(3,1, Ki) ; pc.printf("Kp=%d",Kp);} |
LaVerga_A | 5:6d9292b2d5e3 | 146 | else if(pos==3){ pos--; LCD1(11,0,Kp) ; pc.printf("Ki=%d",Ki);} |
LaVerga_A | 5:6d9292b2d5e3 | 147 | else if(pos==2){ pos--; LCD1(3,0, Sp) ; pc.printf("Kd=%d",Kd);} |
LaVerga_A | 5:6d9292b2d5e3 | 148 | break; |
LaVerga_A | 5:6d9292b2d5e3 | 149 | |
LaVerga_A | 5:6d9292b2d5e3 | 150 | case 15: //ir al PID, llegó Mute |
LaVerga_A | 5:6d9292b2d5e3 | 151 | PID(Sp,Kp,Ki,Kd) ; break; |
LaVerga_A | 5:6d9292b2d5e3 | 152 | default: {}; } // cierra Switch |
LaVerga_A | 5:6d9292b2d5e3 | 153 | |
LaVerga_A | 5:6d9292b2d5e3 | 154 | |
LaVerga_A | 5:6d9292b2d5e3 | 155 | //=======================================================================Botones |
LaVerga_A | 5:6d9292b2d5e3 | 156 | if ((boton==0)||(boton==1)||(boton==2)||(boton==3)||(boton==4)||(boton==5)||(boton==6)||(boton==7)||(boton==8)||(boton==9)){ |
LaVerga_A | 5:6d9292b2d5e3 | 157 | if(j<3){ |
LaVerga_A | 5:6d9292b2d5e3 | 158 | valPar = 10*valPar + boton; |
LaVerga_A | 5:6d9292b2d5e3 | 159 | j++; |
LaVerga_A | 5:6d9292b2d5e3 | 160 | |
LaVerga_A | 5:6d9292b2d5e3 | 161 | if(pos==1){ Sp=valPar; LCD1(3,0, Sp) ; } |
LaVerga_A | 5:6d9292b2d5e3 | 162 | else if(pos==2){ Kp=valPar; LCD1(11,0,Kp) ; } |
LaVerga_A | 5:6d9292b2d5e3 | 163 | else if(pos==3){ Ki=valPar; LCD1(3,1, Ki) ; } |
LaVerga_A | 5:6d9292b2d5e3 | 164 | else if(pos==4){ Kd=valPar; LCD1(11,1, Kd) ; } |
LaVerga_A | 5:6d9292b2d5e3 | 165 | }} |
LaVerga_A | 5:6d9292b2d5e3 | 166 | |
LaVerga_A | 5:6d9292b2d5e3 | 167 | } // cierra while |
LaVerga_A | 5:6d9292b2d5e3 | 168 | } // cierran Main |
LaVerga_A | 5:6d9292b2d5e3 | 169 | |
LaVerga_A | 5:6d9292b2d5e3 | 170 | |
LaVerga_A | 5:6d9292b2d5e3 | 171 | //=================================================================================CICLO PID INFINITO |
LaVerga_A | 5:6d9292b2d5e3 | 172 | void PID (int Sp, int Kp, int Ki, int Kd) { |
LaVerga_A | 5:6d9292b2d5e3 | 173 | //======================================= Parches del control |
LaVerga_A | 5:6d9292b2d5e3 | 174 | lcd.writeCommand(C4); //quita cursor bajo |
LaVerga_A | 5:6d9292b2d5e3 | 175 | lcd.cls(); lcd.printf(" GUARDADOS!") ; wait(1); //borra la pantalla |
LaVerga_A | 5:6d9292b2d5e3 | 176 | lcd.cls(); lcd.printf(" INICIA EL PID"); wait(1); |
LaVerga_A | 5:6d9292b2d5e3 | 177 | lcd.cls(); |
LaVerga_A | 5:6d9292b2d5e3 | 178 | |
LaVerga_A | 5:6d9292b2d5e3 | 179 | lcd.printf("Er=%3.0f",err); |
LaVerga_A | 5:6d9292b2d5e3 | 180 | lcd.locate(8,0); lcd.printf("Me=%3.0f",med); |
LaVerga_A | 5:6d9292b2d5e3 | 181 | lcd.locate(0,1); lcd.printf("Sp=%3.0f",Sp); |
LaVerga_A | 5:6d9292b2d5e3 | 182 | lcd.locate(8,1); lcd.printf("Co=%3.0f",pid); |
LaVerga_A | 5:6d9292b2d5e3 | 183 | wait(1); |
LaVerga_A | 5:6d9292b2d5e3 | 184 | |
LaVerga_A | 5:6d9292b2d5e3 | 185 | while(1){ //=============================================================== CICLO PRINCIPAL CONTROLADOR PID |
LaVerga_A | 5:6d9292b2d5e3 | 186 | med = y.read()*999 ; |
LaVerga_A | 5:6d9292b2d5e3 | 187 | err = Sp-med ; //se calcula el error |
LaVerga_A | 5:6d9292b2d5e3 | 188 | ap = Kp*err*0.01f ; //se calcula la accion proporcinal |
LaVerga_A | 5:6d9292b2d5e3 | 189 | ai = (Ki*err*0.01f)+ai ; //calculo de la integral del error |
LaVerga_A | 5:6d9292b2d5e3 | 190 | ad = Kd*(err-err_v)*0.01f ; //calculo de la accion derivativa |
LaVerga_A | 5:6d9292b2d5e3 | 191 | pid = ap+ai+ad ; |
LaVerga_A | 5:6d9292b2d5e3 | 192 | |
LaVerga_A | 5:6d9292b2d5e3 | 193 | if(pid<=0) {pid=0 ;} // se verifica que pid sea positivo |
LaVerga_A | 5:6d9292b2d5e3 | 194 | if(pid > 999){pid=999;} // se verifica que pid sea menor a 1000 |
LaVerga_A | 5:6d9292b2d5e3 | 195 | |
LaVerga_A | 5:6d9292b2d5e3 | 196 | LCD2(3,0,err) ; // pc.putc(sprintf (mm,"ER%3.0f",err)); wait_ms(30); |
LaVerga_A | 5:6d9292b2d5e3 | 197 | LCD2(11,0,med); // pc.putc(sprintf(mm,"ME%3.0f",med)); wait_ms(30); |
LaVerga_A | 5:6d9292b2d5e3 | 198 | LCD2(3,1,Sp) ; |
LaVerga_A | 5:6d9292b2d5e3 | 199 | LCD2(11,1,med); // pc.putc(sprintf(mm,"ID%3.0f",pid)); wait_ms(30); |
LaVerga_A | 5:6d9292b2d5e3 | 200 | |
LaVerga_A | 5:6d9292b2d5e3 | 201 | err_v = err; // guarda error |
LaVerga_A | 5:6d9292b2d5e3 | 202 | u.write(pid/999); // se envia el valor pid (normalizado) a puerto analogico de salida (D/A) |
LaVerga_A | 5:6d9292b2d5e3 | 203 | |
LaVerga_A | 5:6d9292b2d5e3 | 204 | /* pc.printf("%3.0f\t",ER); pc.printf("%3.0f\t",ME); |
LaVerga_A | 5:6d9292b2d5e3 | 205 | pc.printf("%3.0f\t",SP); pc.printf("%3.0f\n",ID);*/ |
LaVerga_A | 5:6d9292b2d5e3 | 206 | wait_ms(300); |
LaVerga_A | 5:6d9292b2d5e3 | 207 | |
LaVerga_A | 5:6d9292b2d5e3 | 208 | } // cierra while |
LaVerga_A | 5:6d9292b2d5e3 | 209 | } // funtion |
LaVerga_A | 5:6d9292b2d5e3 | 210 | |
LaVerga_A | 5:6d9292b2d5e3 | 211 | //==============================================================================Funciones Mostrar en LCD |
LaVerga_A | 5:6d9292b2d5e3 | 212 | void LCD1 (int col, int fil, int val ){ |
LaVerga_A | 5:6d9292b2d5e3 | 213 | lcd.locate(col,fil); lcd.printf(" "); |
LaVerga_A | 5:6d9292b2d5e3 | 214 | lcd.locate(col,fil); lcd.printf("%d", val); } |
LaVerga_A | 5:6d9292b2d5e3 | 215 | |
LaVerga_A | 5:6d9292b2d5e3 | 216 | void LCD2 (int col, int fil, float val ){ |
LaVerga_A | 5:6d9292b2d5e3 | 217 | lcd.locate(col,fil); lcd.printf(" "); |
LaVerga_A | 5:6d9292b2d5e3 | 218 | lcd.locate(col,fil); lcd.printf("%3.0f", val); } |