Procesadores, 2016 - II. Tarea #3. Oswaldo Andrés Giraldo Giraldo, Héctor Andrés Hoyos Ceballos, Jose Fernando Montoya Vargas, María Fernanda Villa Tamayo. Programa para establecer la comunicación con un sensor infrarrojo con el protocolo IrDA.

Dependencies:   Pulse1 TextLCD mbed

Fork of TAREA_3_PID_IRDA by joshema 216

Committer:
joshema216
Date:
Wed Nov 16 02:33:40 2016 +0000
Revision:
5:d4784bf79e0c
Parent:
4:3af282af5e21
Version 1.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
joshema216 4:3af282af5e21 1 // Programa para ejecutar un control PID que lee las constantes del controlador desde la
joshema216 4:3af282af5e21 2 // manipulación de un control LG AKB73275620 por medio de un protocolo IrDA. Un sensor
joshema216 4:3af282af5e21 3 // infrarrojo lee los pulsos de entrada y asigna la acción correspondiente dependiendo
joshema216 4:3af282af5e21 4 // de la tecla pulsada. Para cada tecla el control manda una cadena de pulsos distinta,
joshema216 4:3af282af5e21 5 // se usarán las teclas de los números del 0 al 9 para asignar fácilmente las constantes
joshema216 4:3af282af5e21 6 // del controlador, una tecla de "OK" para acceder a la siguiente constante, una tecla de
joshema216 4:3af282af5e21 7 // "Back" para borrar lo asignado en la constante y una tecla de "Power" para iniciar el
joshema216 4:3af282af5e21 8 // ciclo de control.
joshema216 4:3af282af5e21 9
joshema216 4:3af282af5e21 10 // Oswaldo Andrés Giraldo Giraldo - C.C.: 1152458465
joshema216 4:3af282af5e21 11 // Héctor Andrés Hoyos Ceballos - C.C.: 1039466317
joshema216 4:3af282af5e21 12 // Jose Fernando Montoya Vargas - C.C.: 1039468676
joshema216 4:3af282af5e21 13 // María Fernanda Villa Tamayo - C.C.: 1152457490
joshema216 4:3af282af5e21 14
tony63 0:74d57f8ae247 15 #include "mbed.h"
tony63 0:74d57f8ae247 16 #include <Pulse1.h>
joshema216 4:3af282af5e21 17 #include "stdio.h"
joshema216 4:3af282af5e21 18 #include "math.h"
joshema216 4:3af282af5e21 19 #include "TextLCD.h"
joshema216 4:3af282af5e21 20
joshema216 4:3af282af5e21 21 //control remoto sony disparo camara
joshema216 4:3af282af5e21 22 //puede convertir la trama en un entero
joshema216 4:3af282af5e21 23 //para cualquier tecla
joshema216 4:3af282af5e21 24
joshema216 4:3af282af5e21 25 PulseInOut irda(PTD5);// En este puerto se pone el sensor infrarrojo.
tony63 0:74d57f8ae247 26 Serial pc(USBTX, USBRX);
joshema216 4:3af282af5e21 27 TextLCD lcd(PTB10, PTB11, PTE2, PTE3, PTE4, PTE5); // RS, E, D4 - D7.
joshema216 4:3af282af5e21 28 AnalogIn y(PTB3); // Entrada análoga.
joshema216 4:3af282af5e21 29 AnalogOut u(PTE30); // Salida análoga.
joshema216 4:3af282af5e21 30
joshema216 4:3af282af5e21 31 DigitalOut led1(LED1);
tony63 2:6a15ab0305c8 32 DigitalOut led2(LED2);
joshema216 4:3af282af5e21 33 DigitalOut led3(LED3);
joshema216 4:3af282af5e21 34
joshema216 4:3af282af5e21 35 int C1=0x0E; // Sólo muestra el cursor.
joshema216 4:3af282af5e21 36 int C2=0x18; // Desplaza hacia la izquierda.
joshema216 4:3af282af5e21 37 int C3=0x1A; // Desplaza hacia la derecha.
joshema216 4:3af282af5e21 38 int C4=0x0C; // Quita el cursor bajo.
joshema216 4:3af282af5e21 39
joshema216 4:3af282af5e21 40 float pid, o, ai, ad, ap, med, err;
joshema216 4:3af282af5e21 41 float err_v;
joshema216 4:3af282af5e21 42 int spnum = 0, kinum = 0, kpnum = 0, kdnum = 0, pos = 1, cen = 0, dec = 0, uni = 0, uninum = 0, decnum = 0, cennum = 0, tec = 0;
joshema216 4:3af282af5e21 43
joshema216 4:3af282af5e21 44 int header = 0; // Tiempo de cabecera pulso abajo
joshema216 4:3af282af5e21 45 const int head_H = 9977; //+10% de la cabecera medida, con osciloscopio en microsegundos.
joshema216 4:3af282af5e21 46 const int head_L = 8163;//-10% de la cabecera medida, con osciloscopio.
joshema216 4:3af282af5e21 47 int i = 0;
joshema216 4:3af282af5e21 48
joshema216 4:3af282af5e21 49 const int T_alto = 1240; // Tiempo en ALTO de un 1 lógico.
joshema216 4:3af282af5e21 50 const int T_bajo = 680; // Tiempo en BAJO de un 1 lógico.
joshema216 4:3af282af5e21 51 const int num_bits = 32; // Número de bits al pisar una tecla.
joshema216 4:3af282af5e21 52 int num[num_bits]; // Cadena para almacenar todos los tiempos que conforman los bits de datos
joshema216 4:3af282af5e21 53 int dato; // Tiempo de cada dato que se lee.
joshema216 4:3af282af5e21 54 int numero;
joshema216 4:3af282af5e21 55 int binM[32];
joshema216 4:3af282af5e21 56 int bin_max[32];
tony63 0:74d57f8ae247 57
tony63 0:74d57f8ae247 58 int main(){
joshema216 4:3af282af5e21 59
joshema216 4:3af282af5e21 60 lcd.locate(0,1);
joshema216 4:3af282af5e21 61 lcd.printf("**Control PID**");
joshema216 4:3af282af5e21 62 wait(2);
joshema216 4:3af282af5e21 63 lcd.cls(); // Borrar Pantalla.
joshema216 4:3af282af5e21 64 lcd.writeCommand(C1); // Escribimos un comando segun el manual del modulo LCD.
joshema216 4:3af282af5e21 65
joshema216 4:3af282af5e21 66 lcd.locate(8, 0);
joshema216 4:3af282af5e21 67 lcd.printf("Kp=%d", kpnum);
joshema216 4:3af282af5e21 68 lcd.locate(0, 1);
joshema216 4:3af282af5e21 69 lcd.printf("Ki=%d", kinum);
joshema216 4:3af282af5e21 70 lcd.locate(8, 1);
joshema216 4:3af282af5e21 71 lcd.printf("Kd=%d", kdnum);
joshema216 4:3af282af5e21 72 lcd.locate(0, 0);
joshema216 4:3af282af5e21 73 lcd.printf("Sp=%d", spnum);
joshema216 4:3af282af5e21 74
joshema216 4:3af282af5e21 75 while(1){
joshema216 4:3af282af5e21 76 ini1: fflush( stdin );
joshema216 4:3af282af5e21 77 header = 0;
joshema216 4:3af282af5e21 78 led2 = 1;
joshema216 4:3af282af5e21 79 led1 = 1;
joshema216 4:3af282af5e21 80 header = irda.read_low_us(); // Función para leer un pulso de caida o bajo en header.
joshema216 4:3af282af5e21 81 if (header > head_L && header < head_H) goto seguir; // Verificar que este en la tolerancia +-10%
joshema216 4:3af282af5e21 82 else goto ini1;
joshema216 4:3af282af5e21 83
joshema216 4:3af282af5e21 84 seguir:
joshema216 4:3af282af5e21 85 // Leer los datos de la trama y asignarlos a un arreglo.
joshema216 4:3af282af5e21 86 wait_us(400);// ES EL TIEMPO DE HEADER QUE NO SE Lee O EL ALTO
joshema216 4:3af282af5e21 87 led2 = 1;
joshema216 4:3af282af5e21 88 for(i = 0; i < (num_bits - 1); ++i){ // POR OSCILOSCOPIO se determina que llegan (num_bits), datos.
joshema216 4:3af282af5e21 89 dato = irda.read_high_us(); // Leer un bit de datos que es pulso arriba en este control.
joshema216 4:3af282af5e21 90 num[i] = dato;
joshema216 4:3af282af5e21 91 wait_us(400);
joshema216 4:3af282af5e21 92 }
joshema216 4:3af282af5e21 93 wait(0.5); // Esperar luego de leer todo el arreglo y ponerlo en pantalla.
joshema216 4:3af282af5e21 94 pc.printf("%d",header);
joshema216 4:3af282af5e21 95 /*for(i = 0; i < (num_bits - 1); ++i){
joshema216 4:3af282af5e21 96 pc.printf(",%d",num[i]);
joshema216 4:3af282af5e21 97 }*/
joshema216 4:3af282af5e21 98 wait(0.1);
joshema216 4:3af282af5e21 99 pc.printf("\n\n");
joshema216 4:3af282af5e21 100 for(i = 0; i < (num_bits - 1); ++i){
joshema216 4:3af282af5e21 101 if(num[i] > ((T_alto + T_bajo)/2)){
joshema216 4:3af282af5e21 102 bin_max[i] = 1;
joshema216 4:3af282af5e21 103 }
joshema216 4:3af282af5e21 104 else{
joshema216 4:3af282af5e21 105 bin_max[i] = 0;
joshema216 4:3af282af5e21 106 }
joshema216 4:3af282af5e21 107 }
joshema216 4:3af282af5e21 108 binM[0] = 1;
joshema216 4:3af282af5e21 109 for(i = 1; i < (num_bits - 1); ++i){
joshema216 4:3af282af5e21 110 binM[i] = binM[i - 1]*2;
joshema216 4:3af282af5e21 111 }
joshema216 4:3af282af5e21 112 numero = 0;
joshema216 4:3af282af5e21 113 /*for(i = 0; i < (num_bits - 1); ++i){
joshema216 4:3af282af5e21 114 pc.printf(",%d", binM[i]);
joshema216 4:3af282af5e21 115 }*/
joshema216 4:3af282af5e21 116
joshema216 4:3af282af5e21 117 for(i = 0; i < (num_bits - 1); ++i){
joshema216 4:3af282af5e21 118 numero = numero + (binM[i]*bin_max[i]);
joshema216 4:3af282af5e21 119 }
joshema216 4:3af282af5e21 120 pc.printf("\n\n");
joshema216 4:3af282af5e21 121 pc.printf("Numero = %d", numero);
joshema216 4:3af282af5e21 122 pc.printf("\n\n");
joshema216 4:3af282af5e21 123
joshema216 4:3af282af5e21 124 // Datos del control utilizado.
joshema216 4:3af282af5e21 125
joshema216 4:3af282af5e21 126 //'1846672132' - Número 1
joshema216 4:3af282af5e21 127 //'1829960452' - Número 2
joshema216 4:3af282af5e21 128 //'1813248772' - Número 3
joshema216 4:3af282af5e21 129 //'1796537092' - Número 4
joshema216 4:3af282af5e21 130 //'1779825412' - Número 5
joshema216 4:3af282af5e21 131 //'1763113732' - Número 6
joshema216 4:3af282af5e21 132 //'1746402052' - Número 7
joshema216 4:3af282af5e21 133 //'1729690372' - Número 8
joshema216 4:3af282af5e21 134 //'1712978692' - Número 9
joshema216 4:3af282af5e21 135 //'1863383812' - Número 0
joshema216 4:3af282af5e21 136 //'994376452' - OK
joshema216 4:3af282af5e21 137 //'1462303492' - Back
joshema216 4:3af282af5e21 138 //'1997077252' - Power
joshema216 4:3af282af5e21 139
joshema216 4:3af282af5e21 140 if (numero == 1846672132){ // Número 1
joshema216 4:3af282af5e21 141 tec = 1;
joshema216 4:3af282af5e21 142 if (cen == 0 && dec == 0 && uni == 0){
joshema216 4:3af282af5e21 143 uninum = tec;
joshema216 4:3af282af5e21 144 uni = 1;
joshema216 4:3af282af5e21 145 if(pos == 1){
joshema216 4:3af282af5e21 146 spnum = uninum;
joshema216 4:3af282af5e21 147 lcd.locate(3, 0);
joshema216 4:3af282af5e21 148 lcd.printf(" ");
joshema216 4:3af282af5e21 149 lcd.locate(3, 0);
joshema216 4:3af282af5e21 150 lcd.printf("%d", spnum);
joshema216 4:3af282af5e21 151 }
joshema216 4:3af282af5e21 152 else if (pos == 2){
joshema216 4:3af282af5e21 153 kpnum = uninum;
joshema216 4:3af282af5e21 154 lcd.locate(11, 0);
joshema216 4:3af282af5e21 155 lcd.printf(" ");
joshema216 4:3af282af5e21 156 lcd.locate(11, 0);
joshema216 4:3af282af5e21 157 lcd.printf("%d", kpnum);
joshema216 4:3af282af5e21 158 }
joshema216 4:3af282af5e21 159 else if(pos == 3){
joshema216 4:3af282af5e21 160 kinum = uninum;
joshema216 4:3af282af5e21 161 lcd.locate(3, 1);
joshema216 4:3af282af5e21 162 lcd.printf(" ");
joshema216 4:3af282af5e21 163 lcd.locate(3, 1);
joshema216 4:3af282af5e21 164 lcd.printf("%d", kinum);
joshema216 4:3af282af5e21 165 }
joshema216 4:3af282af5e21 166 else if(pos == 4){
joshema216 4:3af282af5e21 167 kdnum = uninum;
joshema216 4:3af282af5e21 168 lcd.locate(11, 1);
joshema216 4:3af282af5e21 169 lcd.printf(" ");
joshema216 4:3af282af5e21 170 lcd.locate(11, 1);
joshema216 4:3af282af5e21 171 lcd.printf("%d", kdnum);
joshema216 4:3af282af5e21 172 }
joshema216 4:3af282af5e21 173 }
joshema216 4:3af282af5e21 174 else if (cen == 0 && dec == 0 && uni != 0){
joshema216 4:3af282af5e21 175 decnum = tec;
joshema216 4:3af282af5e21 176 dec = 1;
joshema216 4:3af282af5e21 177 if(pos == 1){
joshema216 4:3af282af5e21 178 spnum = uninum*10 + decnum;
joshema216 4:3af282af5e21 179 lcd.locate(3, 0);
joshema216 4:3af282af5e21 180 lcd.printf("%d", spnum);
joshema216 4:3af282af5e21 181 }
joshema216 4:3af282af5e21 182 else if (pos == 2){
joshema216 4:3af282af5e21 183 kpnum = uninum*10 + decnum;
joshema216 4:3af282af5e21 184 lcd.locate(11, 0);
joshema216 4:3af282af5e21 185 lcd.printf("%d", kpnum);
joshema216 4:3af282af5e21 186 }
joshema216 4:3af282af5e21 187 else if(pos == 3){
joshema216 4:3af282af5e21 188 kinum = uninum*10 + decnum;
joshema216 4:3af282af5e21 189 lcd.locate(3, 1);
joshema216 4:3af282af5e21 190 lcd.printf("%d", kinum);
joshema216 4:3af282af5e21 191 }
joshema216 4:3af282af5e21 192 else if(pos == 4){
joshema216 4:3af282af5e21 193 kdnum = uninum*10 + decnum;
joshema216 4:3af282af5e21 194 lcd.locate(11, 1);
joshema216 4:3af282af5e21 195 lcd.printf("%d", kdnum);
joshema216 4:3af282af5e21 196 }
joshema216 4:3af282af5e21 197 }
joshema216 4:3af282af5e21 198 else if (cen == 0 && dec != 0 && uni != 0){
joshema216 4:3af282af5e21 199 cennum = tec;
joshema216 4:3af282af5e21 200 cen = 1;
joshema216 4:3af282af5e21 201 if(pos == 1){
joshema216 4:3af282af5e21 202 spnum = uninum*100 + decnum*10 + cennum;
joshema216 4:3af282af5e21 203 lcd.locate(3, 0);
joshema216 4:3af282af5e21 204 lcd.printf("%d", spnum);
joshema216 4:3af282af5e21 205 }
joshema216 4:3af282af5e21 206 else if (pos == 2){
joshema216 4:3af282af5e21 207 kpnum = uninum*100 + decnum*10 + cennum;
joshema216 4:3af282af5e21 208 lcd.locate(11, 0);
joshema216 4:3af282af5e21 209 lcd.printf("%d", kpnum);
joshema216 4:3af282af5e21 210 }
joshema216 4:3af282af5e21 211 else if(pos == 3){
joshema216 4:3af282af5e21 212 kinum = uninum*100 + decnum*10 + cennum;
joshema216 4:3af282af5e21 213 lcd.locate(3, 1);
joshema216 4:3af282af5e21 214 lcd.printf("%d", kinum);
joshema216 4:3af282af5e21 215 }
joshema216 4:3af282af5e21 216 else if(pos == 4){
joshema216 4:3af282af5e21 217 kdnum = uninum*100 + decnum*10 + cennum;
joshema216 4:3af282af5e21 218 lcd.locate(11, 1);
joshema216 4:3af282af5e21 219 lcd.printf("%d", kdnum);
joshema216 4:3af282af5e21 220 }
joshema216 4:3af282af5e21 221 uni = 0;
joshema216 4:3af282af5e21 222 dec = 0;
joshema216 4:3af282af5e21 223 cen = 0;
joshema216 4:3af282af5e21 224 }
joshema216 4:3af282af5e21 225 }
joshema216 4:3af282af5e21 226
joshema216 4:3af282af5e21 227 if (numero == 1829960452){ // Número 2
joshema216 4:3af282af5e21 228 tec = 2;
joshema216 4:3af282af5e21 229 if (cen == 0 && dec == 0 && uni == 0){
joshema216 4:3af282af5e21 230 uninum = tec;
joshema216 4:3af282af5e21 231 uni = 1;
joshema216 4:3af282af5e21 232 if(pos == 1){
joshema216 4:3af282af5e21 233 spnum = uninum;
joshema216 4:3af282af5e21 234 lcd.locate(3, 0);
joshema216 4:3af282af5e21 235 lcd.printf(" ");
joshema216 4:3af282af5e21 236 lcd.locate(3, 0);
joshema216 4:3af282af5e21 237 lcd.printf("%d", spnum);
joshema216 4:3af282af5e21 238 }
joshema216 4:3af282af5e21 239 else if (pos == 2){
joshema216 4:3af282af5e21 240 kpnum = uninum;
joshema216 4:3af282af5e21 241 lcd.locate(11, 0);
joshema216 4:3af282af5e21 242 lcd.printf(" ");
joshema216 4:3af282af5e21 243 lcd.locate(11, 0);
joshema216 4:3af282af5e21 244 lcd.printf("%d", kpnum);
joshema216 4:3af282af5e21 245 }
joshema216 4:3af282af5e21 246 else if(pos == 3){
joshema216 4:3af282af5e21 247 kinum = uninum;
joshema216 4:3af282af5e21 248 lcd.locate(3, 1);
joshema216 4:3af282af5e21 249 lcd.printf(" ");
joshema216 4:3af282af5e21 250 lcd.locate(3, 1);
joshema216 4:3af282af5e21 251 lcd.printf("%d", kinum);
joshema216 4:3af282af5e21 252 }
joshema216 4:3af282af5e21 253 else if(pos == 4){
joshema216 4:3af282af5e21 254 kdnum = uninum;
joshema216 4:3af282af5e21 255 lcd.locate(11, 1);
joshema216 4:3af282af5e21 256 lcd.printf(" ");
joshema216 4:3af282af5e21 257 lcd.locate(11, 1);
joshema216 4:3af282af5e21 258 lcd.printf("%d", kdnum);
joshema216 4:3af282af5e21 259 }
joshema216 4:3af282af5e21 260 }
joshema216 4:3af282af5e21 261 else if (cen == 0 && dec == 0 && uni != 0){
joshema216 4:3af282af5e21 262 decnum = tec;
joshema216 4:3af282af5e21 263 dec = 1;
joshema216 4:3af282af5e21 264 if(pos == 1){
joshema216 4:3af282af5e21 265 spnum = uninum*10 + decnum;
joshema216 4:3af282af5e21 266 lcd.locate(3, 0);
joshema216 4:3af282af5e21 267 lcd.printf("%d", spnum);
joshema216 4:3af282af5e21 268 }
joshema216 4:3af282af5e21 269 else if (pos == 2){
joshema216 4:3af282af5e21 270 kpnum = uninum*10 + decnum;
joshema216 4:3af282af5e21 271 lcd.locate(11, 0);
joshema216 4:3af282af5e21 272 lcd.printf("%d", kpnum);
joshema216 4:3af282af5e21 273 }
joshema216 4:3af282af5e21 274 else if(pos == 3){
joshema216 4:3af282af5e21 275 kinum = uninum*10 + decnum;
joshema216 4:3af282af5e21 276 lcd.locate(3, 1);
joshema216 4:3af282af5e21 277 lcd.printf("%d", kinum);
joshema216 4:3af282af5e21 278 }
joshema216 4:3af282af5e21 279 else if(pos == 4){
joshema216 4:3af282af5e21 280 kdnum = uninum*10 + decnum;
joshema216 4:3af282af5e21 281 lcd.locate(11, 1);
joshema216 4:3af282af5e21 282 lcd.printf("%d", kdnum);
joshema216 4:3af282af5e21 283 }
joshema216 4:3af282af5e21 284 }
joshema216 4:3af282af5e21 285 else if (cen == 0 && dec != 0 && uni != 0){
joshema216 4:3af282af5e21 286 cennum = tec;
joshema216 4:3af282af5e21 287 cen = 1;
joshema216 4:3af282af5e21 288 if(pos == 1){
joshema216 4:3af282af5e21 289 spnum = uninum*100 + decnum*10 + cennum;
joshema216 4:3af282af5e21 290 lcd.locate(3, 0);
joshema216 4:3af282af5e21 291 lcd.printf("%d", spnum);
joshema216 4:3af282af5e21 292 }
joshema216 4:3af282af5e21 293 else if (pos == 2){
joshema216 4:3af282af5e21 294 kpnum = uninum*100 + decnum*10 + cennum;
joshema216 4:3af282af5e21 295 lcd.locate(11, 0);
joshema216 4:3af282af5e21 296 lcd.printf("%d", kpnum);
joshema216 4:3af282af5e21 297 }
joshema216 4:3af282af5e21 298 else if(pos == 3){
joshema216 4:3af282af5e21 299 kinum = uninum*100 + decnum*10 + cennum;
joshema216 4:3af282af5e21 300 lcd.locate(3, 1);
joshema216 4:3af282af5e21 301 lcd.printf("%d", kinum);
joshema216 4:3af282af5e21 302 }
joshema216 4:3af282af5e21 303 else if(pos == 4){
joshema216 4:3af282af5e21 304 kdnum = uninum*100 + decnum*10 + cennum;
joshema216 4:3af282af5e21 305 lcd.locate(11, 1);
joshema216 4:3af282af5e21 306 lcd.printf("%d", kdnum);
joshema216 4:3af282af5e21 307 }
joshema216 4:3af282af5e21 308 uni = 0;
joshema216 4:3af282af5e21 309 dec = 0;
joshema216 4:3af282af5e21 310 cen = 0;
joshema216 4:3af282af5e21 311 }
joshema216 4:3af282af5e21 312 }
joshema216 4:3af282af5e21 313
joshema216 4:3af282af5e21 314 if (numero == 1813248772){ // Número 3
joshema216 4:3af282af5e21 315 tec = 3;
joshema216 4:3af282af5e21 316 if (cen == 0 && dec == 0 && uni == 0){
joshema216 4:3af282af5e21 317 uninum = tec;
joshema216 4:3af282af5e21 318 uni = 1;
joshema216 4:3af282af5e21 319 if(pos == 1){
joshema216 4:3af282af5e21 320 spnum = uninum;
joshema216 4:3af282af5e21 321 lcd.locate(3, 0);
joshema216 4:3af282af5e21 322 lcd.printf(" ");
joshema216 4:3af282af5e21 323 lcd.locate(3, 0);
joshema216 4:3af282af5e21 324 lcd.printf("%d", spnum);
joshema216 4:3af282af5e21 325 }
joshema216 4:3af282af5e21 326 else if (pos == 2){
joshema216 4:3af282af5e21 327 kpnum = uninum;
joshema216 4:3af282af5e21 328 lcd.locate(11, 0);
joshema216 4:3af282af5e21 329 lcd.printf(" ");
joshema216 4:3af282af5e21 330 lcd.locate(11, 0);
joshema216 4:3af282af5e21 331 lcd.printf("%d", kpnum);
joshema216 4:3af282af5e21 332 }
joshema216 4:3af282af5e21 333 else if(pos == 3){
joshema216 4:3af282af5e21 334 kinum = uninum;
joshema216 4:3af282af5e21 335 lcd.locate(3, 1);
joshema216 4:3af282af5e21 336 lcd.printf(" ");
joshema216 4:3af282af5e21 337 lcd.locate(3, 1);
joshema216 4:3af282af5e21 338 lcd.printf("%d", kinum);
joshema216 4:3af282af5e21 339 }
joshema216 4:3af282af5e21 340 else if(pos == 4){
joshema216 4:3af282af5e21 341 kdnum = uninum;
joshema216 4:3af282af5e21 342 lcd.locate(11, 1);
joshema216 4:3af282af5e21 343 lcd.printf(" ");
joshema216 4:3af282af5e21 344 lcd.locate(11, 1);
joshema216 4:3af282af5e21 345 lcd.printf("%d", kdnum);
joshema216 4:3af282af5e21 346 }
joshema216 4:3af282af5e21 347 }
joshema216 4:3af282af5e21 348 else if (cen == 0 && dec == 0 && uni != 0){
joshema216 4:3af282af5e21 349 decnum = tec;
joshema216 4:3af282af5e21 350 dec = 1;
joshema216 4:3af282af5e21 351 if(pos == 1){
joshema216 4:3af282af5e21 352 spnum = uninum*10 + decnum;
joshema216 4:3af282af5e21 353 lcd.locate(3, 0);
joshema216 4:3af282af5e21 354 lcd.printf("%d", spnum);
joshema216 4:3af282af5e21 355 }
joshema216 4:3af282af5e21 356 else if (pos == 2){
joshema216 4:3af282af5e21 357 kpnum = uninum*10 + decnum;
joshema216 4:3af282af5e21 358 lcd.locate(11, 0);
joshema216 4:3af282af5e21 359 lcd.printf("%d", kpnum);
joshema216 4:3af282af5e21 360 }
joshema216 4:3af282af5e21 361 else if(pos == 3){
joshema216 4:3af282af5e21 362 kinum = uninum*10 + decnum;
joshema216 4:3af282af5e21 363 lcd.locate(3, 1);
joshema216 4:3af282af5e21 364 lcd.printf("%d", kinum);
joshema216 4:3af282af5e21 365 }
joshema216 4:3af282af5e21 366 else if(pos == 4){
joshema216 4:3af282af5e21 367 kdnum = uninum*10 + decnum;
joshema216 4:3af282af5e21 368 lcd.locate(11, 1);
joshema216 4:3af282af5e21 369 lcd.printf("%d", kdnum);
joshema216 4:3af282af5e21 370 }
joshema216 4:3af282af5e21 371 }
joshema216 4:3af282af5e21 372 else if (cen == 0 && dec != 0 && uni != 0){
joshema216 4:3af282af5e21 373 cennum = tec;
joshema216 4:3af282af5e21 374 cen = 1;
joshema216 4:3af282af5e21 375 if(pos == 1){
joshema216 4:3af282af5e21 376 spnum = uninum*100 + decnum*10 + cennum;
joshema216 4:3af282af5e21 377 lcd.locate(3, 0);
joshema216 4:3af282af5e21 378 lcd.printf("%d", spnum);
joshema216 4:3af282af5e21 379 }
joshema216 4:3af282af5e21 380 else if (pos == 2){
joshema216 4:3af282af5e21 381 kpnum = uninum*100 + decnum*10 + cennum;
joshema216 4:3af282af5e21 382 lcd.locate(11, 0);
joshema216 4:3af282af5e21 383 lcd.printf("%d", kpnum);
joshema216 4:3af282af5e21 384 }
joshema216 4:3af282af5e21 385 else if(pos == 3){
joshema216 4:3af282af5e21 386 kinum = uninum*100 + decnum*10 + cennum;
joshema216 4:3af282af5e21 387 lcd.locate(3, 1);
joshema216 4:3af282af5e21 388 lcd.printf("%d", kinum);
joshema216 4:3af282af5e21 389 }
joshema216 4:3af282af5e21 390 else if(pos == 4){
joshema216 4:3af282af5e21 391 kdnum = uninum*100 + decnum*10 + cennum;
joshema216 4:3af282af5e21 392 lcd.locate(11, 1);
joshema216 4:3af282af5e21 393 lcd.printf("%d", kdnum);
joshema216 4:3af282af5e21 394 }
joshema216 4:3af282af5e21 395 uni = 0;
joshema216 4:3af282af5e21 396 dec = 0;
joshema216 4:3af282af5e21 397 cen = 0;
joshema216 4:3af282af5e21 398 }
joshema216 4:3af282af5e21 399 }
joshema216 4:3af282af5e21 400
joshema216 4:3af282af5e21 401 if (numero == 1796537092){ // Número 4
joshema216 4:3af282af5e21 402 tec = 4;
joshema216 4:3af282af5e21 403 if (cen == 0 && dec == 0 && uni == 0){
joshema216 4:3af282af5e21 404 uninum = tec;
joshema216 4:3af282af5e21 405 uni = 1;
joshema216 4:3af282af5e21 406 if(pos == 1){
joshema216 4:3af282af5e21 407 spnum = uninum;
joshema216 4:3af282af5e21 408 lcd.locate(3, 0);
joshema216 4:3af282af5e21 409 lcd.printf(" ");
joshema216 4:3af282af5e21 410 lcd.locate(3, 0);
joshema216 4:3af282af5e21 411 lcd.printf("%d", spnum);
joshema216 4:3af282af5e21 412 }
joshema216 4:3af282af5e21 413 else if (pos == 2){
joshema216 4:3af282af5e21 414 kpnum = uninum;
joshema216 4:3af282af5e21 415 lcd.locate(11, 0);
joshema216 4:3af282af5e21 416 lcd.printf(" ");
joshema216 4:3af282af5e21 417 lcd.locate(11, 0);
joshema216 4:3af282af5e21 418 lcd.printf("%d", kpnum);
joshema216 4:3af282af5e21 419 }
joshema216 4:3af282af5e21 420 else if(pos == 3){
joshema216 4:3af282af5e21 421 kinum = uninum;
joshema216 4:3af282af5e21 422 lcd.locate(3, 1);
joshema216 4:3af282af5e21 423 lcd.printf(" ");
joshema216 4:3af282af5e21 424 lcd.locate(3, 1);
joshema216 4:3af282af5e21 425 lcd.printf("%d", kinum);
joshema216 4:3af282af5e21 426 }
joshema216 4:3af282af5e21 427 else if(pos == 4){
joshema216 4:3af282af5e21 428 kdnum = uninum;
joshema216 4:3af282af5e21 429 lcd.locate(11, 1);
joshema216 4:3af282af5e21 430 lcd.printf(" ");
joshema216 4:3af282af5e21 431 lcd.locate(11, 1);
joshema216 4:3af282af5e21 432 lcd.printf("%d", kdnum);
joshema216 4:3af282af5e21 433 }
joshema216 4:3af282af5e21 434 }
joshema216 4:3af282af5e21 435 else if (cen == 0 && dec == 0 && uni != 0){
joshema216 4:3af282af5e21 436 decnum = tec;
joshema216 4:3af282af5e21 437 dec = 1;
joshema216 4:3af282af5e21 438 if(pos == 1){
joshema216 4:3af282af5e21 439 spnum = uninum*10 + decnum;
joshema216 4:3af282af5e21 440 lcd.locate(3, 0);
joshema216 4:3af282af5e21 441 lcd.printf("%d", spnum);
joshema216 4:3af282af5e21 442 }
joshema216 4:3af282af5e21 443 else if (pos == 2){
joshema216 4:3af282af5e21 444 kpnum = uninum*10 + decnum;
joshema216 4:3af282af5e21 445 lcd.locate(11, 0);
joshema216 4:3af282af5e21 446 lcd.printf("%d", kpnum);
joshema216 4:3af282af5e21 447 }
joshema216 4:3af282af5e21 448 else if(pos == 3){
joshema216 4:3af282af5e21 449 kinum = uninum*10 + decnum;
joshema216 4:3af282af5e21 450 lcd.locate(3, 1);
joshema216 4:3af282af5e21 451 lcd.printf("%d", kinum);
joshema216 4:3af282af5e21 452 }
joshema216 4:3af282af5e21 453 else if(pos == 4){
joshema216 4:3af282af5e21 454 kdnum = uninum*10 + decnum;
joshema216 4:3af282af5e21 455 lcd.locate(11, 1);
joshema216 4:3af282af5e21 456 lcd.printf("%d", kdnum);
joshema216 4:3af282af5e21 457 }
joshema216 4:3af282af5e21 458 }
joshema216 4:3af282af5e21 459 else if (cen == 0 && dec != 0 && uni != 0){
joshema216 4:3af282af5e21 460 cennum = tec;
joshema216 4:3af282af5e21 461 cen = 1;
joshema216 4:3af282af5e21 462 if(pos == 1){
joshema216 4:3af282af5e21 463 spnum = uninum*100 + decnum*10 + cennum;
joshema216 4:3af282af5e21 464 lcd.locate(3, 0);
joshema216 4:3af282af5e21 465 lcd.printf("%d", spnum);
joshema216 4:3af282af5e21 466 }
joshema216 4:3af282af5e21 467 else if (pos == 2){
joshema216 4:3af282af5e21 468 kpnum = uninum*100 + decnum*10 + cennum;
joshema216 4:3af282af5e21 469 lcd.locate(11, 0);
joshema216 4:3af282af5e21 470 lcd.printf("%d", kpnum);
joshema216 4:3af282af5e21 471 }
joshema216 4:3af282af5e21 472 else if(pos == 3){
joshema216 4:3af282af5e21 473 kinum = uninum*100 + decnum*10 + cennum;
joshema216 4:3af282af5e21 474 lcd.locate(3, 1);
joshema216 4:3af282af5e21 475 lcd.printf("%d", kinum);
joshema216 4:3af282af5e21 476 }
joshema216 4:3af282af5e21 477 else if(pos == 4){
joshema216 4:3af282af5e21 478 kdnum = uninum*100 + decnum*10 + cennum;
joshema216 4:3af282af5e21 479 lcd.locate(11, 1);
joshema216 4:3af282af5e21 480 lcd.printf("%d", kdnum);
joshema216 4:3af282af5e21 481 }
joshema216 4:3af282af5e21 482 uni = 0;
joshema216 4:3af282af5e21 483 dec = 0;
joshema216 4:3af282af5e21 484 cen = 0;
joshema216 4:3af282af5e21 485 }
joshema216 4:3af282af5e21 486 }
joshema216 4:3af282af5e21 487
joshema216 4:3af282af5e21 488 if (numero == 1779825412){ // Número 5
joshema216 4:3af282af5e21 489 tec = 5;
joshema216 4:3af282af5e21 490 if (cen == 0 && dec == 0 && uni == 0){
joshema216 4:3af282af5e21 491 uninum = tec;
joshema216 4:3af282af5e21 492 uni = 1;
joshema216 4:3af282af5e21 493 if(pos == 1){
joshema216 4:3af282af5e21 494 spnum = uninum;
joshema216 4:3af282af5e21 495 lcd.locate(3, 0);
joshema216 4:3af282af5e21 496 lcd.printf(" ");
joshema216 4:3af282af5e21 497 lcd.locate(3, 0);
joshema216 4:3af282af5e21 498 lcd.printf("%d", spnum);
joshema216 4:3af282af5e21 499 }
joshema216 4:3af282af5e21 500 else if (pos == 2){
joshema216 4:3af282af5e21 501 kpnum = uninum;
joshema216 4:3af282af5e21 502 lcd.locate(11, 0);
joshema216 4:3af282af5e21 503 lcd.printf(" ");
joshema216 4:3af282af5e21 504 lcd.locate(11, 0);
joshema216 4:3af282af5e21 505 lcd.printf("%d", kpnum);
joshema216 4:3af282af5e21 506 }
joshema216 4:3af282af5e21 507 else if(pos == 3){
joshema216 4:3af282af5e21 508 kinum = uninum;
joshema216 4:3af282af5e21 509 lcd.locate(3, 1);
joshema216 4:3af282af5e21 510 lcd.printf(" ");
joshema216 4:3af282af5e21 511 lcd.locate(3, 1);
joshema216 4:3af282af5e21 512 lcd.printf("%d", kinum);
joshema216 4:3af282af5e21 513 }
joshema216 4:3af282af5e21 514 else if(pos == 4){
joshema216 4:3af282af5e21 515 kdnum = uninum;
joshema216 4:3af282af5e21 516 lcd.locate(11, 1);
joshema216 4:3af282af5e21 517 lcd.printf(" ");
joshema216 4:3af282af5e21 518 lcd.locate(11, 1);
joshema216 4:3af282af5e21 519 lcd.printf("%d", kdnum);
joshema216 4:3af282af5e21 520 }
joshema216 4:3af282af5e21 521 }
joshema216 4:3af282af5e21 522 else if (cen == 0 && dec == 0 && uni != 0){
joshema216 4:3af282af5e21 523 decnum = tec;
joshema216 4:3af282af5e21 524 dec = 1;
joshema216 4:3af282af5e21 525 if(pos == 1){
joshema216 4:3af282af5e21 526 spnum = uninum*10 + decnum;
joshema216 4:3af282af5e21 527 lcd.locate(3, 0);
joshema216 4:3af282af5e21 528 lcd.printf("%d", spnum);
joshema216 4:3af282af5e21 529 }
joshema216 4:3af282af5e21 530 else if (pos == 2){
joshema216 4:3af282af5e21 531 kpnum = uninum*10 + decnum;
joshema216 4:3af282af5e21 532 lcd.locate(11, 0);
joshema216 4:3af282af5e21 533 lcd.printf("%d", kpnum);
joshema216 4:3af282af5e21 534 }
joshema216 4:3af282af5e21 535 else if(pos == 3){
joshema216 4:3af282af5e21 536 kinum = uninum*10 + decnum;
joshema216 4:3af282af5e21 537 lcd.locate(3, 1);
joshema216 4:3af282af5e21 538 lcd.printf("%d", kinum);
joshema216 4:3af282af5e21 539 }
joshema216 4:3af282af5e21 540 else if(pos == 4){
joshema216 4:3af282af5e21 541 kdnum = uninum*10 + decnum;
joshema216 4:3af282af5e21 542 lcd.locate(11, 1);
joshema216 4:3af282af5e21 543 lcd.printf("%d", kdnum);
joshema216 4:3af282af5e21 544 }
joshema216 4:3af282af5e21 545 }
joshema216 4:3af282af5e21 546 else if (cen == 0 && dec != 0 && uni != 0){
joshema216 4:3af282af5e21 547 cennum = tec;
joshema216 4:3af282af5e21 548 cen = 1;
joshema216 4:3af282af5e21 549 if(pos == 1){
joshema216 4:3af282af5e21 550 spnum = uninum*100 + decnum*10 + cennum;
joshema216 4:3af282af5e21 551 lcd.locate(3, 0);
joshema216 4:3af282af5e21 552 lcd.printf("%d", spnum);
joshema216 4:3af282af5e21 553 }
joshema216 4:3af282af5e21 554 else if (pos == 2){
joshema216 4:3af282af5e21 555 kpnum = uninum*100 + decnum*10 + cennum;
joshema216 4:3af282af5e21 556 lcd.locate(11, 0);
joshema216 4:3af282af5e21 557 lcd.printf("%d", kpnum);
joshema216 4:3af282af5e21 558 }
joshema216 4:3af282af5e21 559 else if(pos == 3){
joshema216 4:3af282af5e21 560 kinum = uninum*100 + decnum*10 + cennum;
joshema216 4:3af282af5e21 561 lcd.locate(3, 1);
joshema216 4:3af282af5e21 562 lcd.printf("%d", kinum);
joshema216 4:3af282af5e21 563 }
joshema216 4:3af282af5e21 564 else if(pos == 4){
joshema216 4:3af282af5e21 565 kdnum = uninum*100 + decnum*10 + cennum;
joshema216 4:3af282af5e21 566 lcd.locate(11, 1);
joshema216 4:3af282af5e21 567 lcd.printf("%d", kdnum);
joshema216 4:3af282af5e21 568 }
joshema216 4:3af282af5e21 569 uni = 0;
joshema216 4:3af282af5e21 570 dec = 0;
joshema216 4:3af282af5e21 571 cen = 0;
joshema216 4:3af282af5e21 572 }
joshema216 4:3af282af5e21 573 }
joshema216 4:3af282af5e21 574
joshema216 4:3af282af5e21 575 if (numero == 1763113732){ // Número 6
joshema216 4:3af282af5e21 576 tec = 6;
joshema216 4:3af282af5e21 577 if (cen == 0 && dec == 0 && uni == 0){
joshema216 4:3af282af5e21 578 uninum = tec;
joshema216 4:3af282af5e21 579 uni = 1;
joshema216 4:3af282af5e21 580 if(pos == 1){
joshema216 4:3af282af5e21 581 spnum = uninum;
joshema216 4:3af282af5e21 582 lcd.locate(3, 0);
joshema216 4:3af282af5e21 583 lcd.printf(" ");
joshema216 4:3af282af5e21 584 lcd.locate(3, 0);
joshema216 4:3af282af5e21 585 lcd.printf("%d", spnum);
joshema216 4:3af282af5e21 586 }
joshema216 4:3af282af5e21 587 else if (pos == 2){
joshema216 4:3af282af5e21 588 kpnum = uninum;
joshema216 4:3af282af5e21 589 lcd.locate(11, 0);
joshema216 4:3af282af5e21 590 lcd.printf(" ");
joshema216 4:3af282af5e21 591 lcd.locate(11, 0);
joshema216 4:3af282af5e21 592 lcd.printf("%d", kpnum);
joshema216 4:3af282af5e21 593 }
joshema216 4:3af282af5e21 594 else if(pos == 3){
joshema216 4:3af282af5e21 595 kinum = uninum;
joshema216 4:3af282af5e21 596 lcd.locate(3, 1);
joshema216 4:3af282af5e21 597 lcd.printf(" ");
joshema216 4:3af282af5e21 598 lcd.locate(3, 1);
joshema216 4:3af282af5e21 599 lcd.printf("%d", kinum);
joshema216 4:3af282af5e21 600 }
joshema216 4:3af282af5e21 601 else if(pos == 4){
joshema216 4:3af282af5e21 602 kdnum = uninum;
joshema216 4:3af282af5e21 603 lcd.locate(11, 1);
joshema216 4:3af282af5e21 604 lcd.printf(" ");
joshema216 4:3af282af5e21 605 lcd.locate(11, 1);
joshema216 4:3af282af5e21 606 lcd.printf("%d", kdnum);
joshema216 4:3af282af5e21 607 }
joshema216 4:3af282af5e21 608 }
joshema216 4:3af282af5e21 609 else if (cen == 0 && dec == 0 && uni != 0){
joshema216 4:3af282af5e21 610 decnum = tec;
joshema216 4:3af282af5e21 611 dec = 1;
joshema216 4:3af282af5e21 612 if(pos == 1){
joshema216 4:3af282af5e21 613 spnum = uninum*10 + decnum;
joshema216 4:3af282af5e21 614 lcd.locate(3, 0);
joshema216 4:3af282af5e21 615 lcd.printf("%d", spnum);
joshema216 4:3af282af5e21 616 }
joshema216 4:3af282af5e21 617 else if (pos == 2){
joshema216 4:3af282af5e21 618 kpnum = uninum*10 + decnum;
joshema216 4:3af282af5e21 619 lcd.locate(11, 0);
joshema216 4:3af282af5e21 620 lcd.printf("%d", kpnum);
joshema216 4:3af282af5e21 621 }
joshema216 4:3af282af5e21 622 else if(pos == 3){
joshema216 4:3af282af5e21 623 kinum = uninum*10 + decnum;
joshema216 4:3af282af5e21 624 lcd.locate(3, 1);
joshema216 4:3af282af5e21 625 lcd.printf("%d", kinum);
joshema216 4:3af282af5e21 626 }
joshema216 4:3af282af5e21 627 else if(pos == 4){
joshema216 4:3af282af5e21 628 kdnum = uninum*10 + decnum;
joshema216 4:3af282af5e21 629 lcd.locate(11, 1);
joshema216 4:3af282af5e21 630 lcd.printf("%d", kdnum);
joshema216 4:3af282af5e21 631 }
joshema216 4:3af282af5e21 632 }
joshema216 4:3af282af5e21 633 else if (cen == 0 && dec != 0 && uni != 0){
joshema216 4:3af282af5e21 634 cennum = tec;
joshema216 4:3af282af5e21 635 cen = 1;
joshema216 4:3af282af5e21 636 if(pos == 1){
joshema216 4:3af282af5e21 637 spnum = uninum*100 + decnum*10 + cennum;
joshema216 4:3af282af5e21 638 lcd.locate(3, 0);
joshema216 4:3af282af5e21 639 lcd.printf("%d", spnum);
joshema216 4:3af282af5e21 640 }
joshema216 4:3af282af5e21 641 else if (pos == 2){
joshema216 4:3af282af5e21 642 kpnum = uninum*100 + decnum*10 + cennum;
joshema216 4:3af282af5e21 643 lcd.locate(11, 0);
joshema216 4:3af282af5e21 644 lcd.printf("%d", kpnum);
joshema216 4:3af282af5e21 645 }
joshema216 4:3af282af5e21 646 else if(pos == 3){
joshema216 4:3af282af5e21 647 kinum = uninum*100 + decnum*10 + cennum;
joshema216 4:3af282af5e21 648 lcd.locate(3, 1);
joshema216 4:3af282af5e21 649 lcd.printf("%d", kinum);
joshema216 4:3af282af5e21 650 }
joshema216 4:3af282af5e21 651 else if(pos == 4){
joshema216 4:3af282af5e21 652 kdnum = uninum*100 + decnum*10 + cennum;
joshema216 4:3af282af5e21 653 lcd.locate(11, 1);
joshema216 4:3af282af5e21 654 lcd.printf("%d", kdnum);
joshema216 4:3af282af5e21 655 }
joshema216 4:3af282af5e21 656 uni = 0;
joshema216 4:3af282af5e21 657 dec = 0;
joshema216 4:3af282af5e21 658 cen = 0;
joshema216 4:3af282af5e21 659 }
joshema216 4:3af282af5e21 660 }
joshema216 4:3af282af5e21 661
joshema216 4:3af282af5e21 662 if (numero == 1746402052){ // Número 7
joshema216 4:3af282af5e21 663 tec = 7;
joshema216 4:3af282af5e21 664 if (cen == 0 && dec == 0 && uni == 0){
joshema216 4:3af282af5e21 665 uninum = tec;
joshema216 4:3af282af5e21 666 uni = 1;
joshema216 4:3af282af5e21 667 if(pos == 1){
joshema216 4:3af282af5e21 668 spnum = uninum;
joshema216 4:3af282af5e21 669 lcd.locate(3, 0);
joshema216 4:3af282af5e21 670 lcd.printf(" ");
joshema216 4:3af282af5e21 671 lcd.locate(3, 0);
joshema216 4:3af282af5e21 672 lcd.printf("%d", spnum);
joshema216 4:3af282af5e21 673 }
joshema216 4:3af282af5e21 674 else if (pos == 2){
joshema216 4:3af282af5e21 675 kpnum = uninum;
joshema216 4:3af282af5e21 676 lcd.locate(11, 0);
joshema216 4:3af282af5e21 677 lcd.printf(" ");
joshema216 4:3af282af5e21 678 lcd.locate(11, 0);
joshema216 4:3af282af5e21 679 lcd.printf("%d", kpnum);
joshema216 4:3af282af5e21 680 }
joshema216 4:3af282af5e21 681 else if(pos == 3){
joshema216 4:3af282af5e21 682 kinum = uninum;
joshema216 4:3af282af5e21 683 lcd.locate(3, 1);
joshema216 4:3af282af5e21 684 lcd.printf(" ");
joshema216 4:3af282af5e21 685 lcd.locate(3, 1);
joshema216 4:3af282af5e21 686 lcd.printf("%d", kinum);
joshema216 4:3af282af5e21 687 }
joshema216 4:3af282af5e21 688 else if(pos == 4){
joshema216 4:3af282af5e21 689 kdnum = uninum;
joshema216 4:3af282af5e21 690 lcd.locate(11, 1);
joshema216 4:3af282af5e21 691 lcd.printf(" ");
joshema216 4:3af282af5e21 692 lcd.locate(11, 1);
joshema216 4:3af282af5e21 693 lcd.printf("%d", kdnum);
joshema216 4:3af282af5e21 694 }
joshema216 4:3af282af5e21 695 }
joshema216 4:3af282af5e21 696 else if (cen == 0 && dec == 0 && uni != 0){
joshema216 4:3af282af5e21 697 decnum = tec;
joshema216 4:3af282af5e21 698 dec = 1;
joshema216 4:3af282af5e21 699 if(pos == 1){
joshema216 4:3af282af5e21 700 spnum = uninum*10 + decnum;
joshema216 4:3af282af5e21 701 lcd.locate(3, 0);
joshema216 4:3af282af5e21 702 lcd.printf("%d", spnum);
joshema216 4:3af282af5e21 703 }
joshema216 4:3af282af5e21 704 else if (pos == 2){
joshema216 4:3af282af5e21 705 kpnum = uninum*10 + decnum;
joshema216 4:3af282af5e21 706 lcd.locate(11, 0);
joshema216 4:3af282af5e21 707 lcd.printf("%d", kpnum);
joshema216 4:3af282af5e21 708 }
joshema216 4:3af282af5e21 709 else if(pos == 3){
joshema216 4:3af282af5e21 710 kinum = uninum*10 + decnum;
joshema216 4:3af282af5e21 711 lcd.locate(3, 1);
joshema216 4:3af282af5e21 712 lcd.printf("%d", kinum);
joshema216 4:3af282af5e21 713 }
joshema216 4:3af282af5e21 714 else if(pos == 4){
joshema216 4:3af282af5e21 715 kdnum = uninum*10 + decnum;
joshema216 4:3af282af5e21 716 lcd.locate(11, 1);
joshema216 4:3af282af5e21 717 lcd.printf("%d", kdnum);
joshema216 4:3af282af5e21 718 }
joshema216 4:3af282af5e21 719 }
joshema216 4:3af282af5e21 720 else if (cen == 0 && dec != 0 && uni != 0){
joshema216 4:3af282af5e21 721 cennum = tec;
joshema216 4:3af282af5e21 722 cen = 1;
joshema216 4:3af282af5e21 723 if (pos == 1){
joshema216 4:3af282af5e21 724 spnum = uninum*100 + decnum*10 + cennum;
joshema216 4:3af282af5e21 725 lcd.locate(3, 0);
joshema216 4:3af282af5e21 726 lcd.printf("%d", spnum);
joshema216 4:3af282af5e21 727 }
joshema216 4:3af282af5e21 728 else if (pos == 2){
joshema216 4:3af282af5e21 729 kpnum = uninum*100 + decnum*10 + cennum;
joshema216 4:3af282af5e21 730 lcd.locate(11, 0);
joshema216 4:3af282af5e21 731 lcd.printf("%d", kpnum);
joshema216 4:3af282af5e21 732 }
joshema216 4:3af282af5e21 733 else if(pos == 3){
joshema216 4:3af282af5e21 734 kinum = uninum*100 + decnum*10 + cennum;
joshema216 4:3af282af5e21 735 lcd.locate(3, 1);
joshema216 4:3af282af5e21 736 lcd.printf("%d", kinum);
joshema216 4:3af282af5e21 737 }
joshema216 4:3af282af5e21 738 else if(pos == 4){
joshema216 4:3af282af5e21 739 kdnum = uninum*100 + decnum*10 + cennum;
joshema216 4:3af282af5e21 740 lcd.locate(11, 1);
joshema216 4:3af282af5e21 741 lcd.printf("%d", kdnum);
joshema216 4:3af282af5e21 742 }
joshema216 4:3af282af5e21 743 uni = 0;
joshema216 4:3af282af5e21 744 dec = 0;
joshema216 4:3af282af5e21 745 cen = 0;
joshema216 4:3af282af5e21 746 }
joshema216 4:3af282af5e21 747 }
joshema216 4:3af282af5e21 748
joshema216 4:3af282af5e21 749 if (numero == 1729690372){ // Número 8
joshema216 4:3af282af5e21 750 tec = 8;
joshema216 4:3af282af5e21 751 if (cen == 0 && dec == 0 && uni == 0){
joshema216 4:3af282af5e21 752 uninum = tec;
joshema216 4:3af282af5e21 753 uni = 1;
joshema216 4:3af282af5e21 754 if(pos == 1){
joshema216 4:3af282af5e21 755 spnum = uninum;
joshema216 4:3af282af5e21 756 lcd.locate(3, 0);
joshema216 4:3af282af5e21 757 lcd.printf(" ");
joshema216 4:3af282af5e21 758 lcd.locate(3, 0);
joshema216 4:3af282af5e21 759 lcd.printf("%d", spnum);
joshema216 4:3af282af5e21 760 }
joshema216 4:3af282af5e21 761 else if(pos == 2){
joshema216 4:3af282af5e21 762 kpnum = uninum;
joshema216 4:3af282af5e21 763 lcd.locate(11, 0);
joshema216 4:3af282af5e21 764 lcd.printf(" ");
joshema216 4:3af282af5e21 765 lcd.locate(11, 0);
joshema216 4:3af282af5e21 766 lcd.printf("%d", kpnum);
joshema216 4:3af282af5e21 767 }
joshema216 4:3af282af5e21 768 else if(pos == 3){
joshema216 4:3af282af5e21 769 kinum = uninum;
joshema216 4:3af282af5e21 770 lcd.locate(3, 1);
joshema216 4:3af282af5e21 771 lcd.printf(" ");
joshema216 4:3af282af5e21 772 lcd.locate(3, 1);
joshema216 4:3af282af5e21 773 lcd.printf("%d", kinum);
joshema216 4:3af282af5e21 774 }
joshema216 4:3af282af5e21 775 else if(pos == 4){
joshema216 4:3af282af5e21 776 kdnum = uninum;
joshema216 4:3af282af5e21 777 lcd.locate(11, 1);
joshema216 4:3af282af5e21 778 lcd.printf(" ");
joshema216 4:3af282af5e21 779 lcd.locate(11, 1);
joshema216 4:3af282af5e21 780 lcd.printf("%d", kdnum);
joshema216 4:3af282af5e21 781 }
joshema216 4:3af282af5e21 782 }
joshema216 4:3af282af5e21 783 else if (cen == 0 && dec == 0 && uni != 0){
joshema216 4:3af282af5e21 784 decnum = tec;
joshema216 4:3af282af5e21 785 dec = 1;
joshema216 4:3af282af5e21 786 if(pos == 1){
joshema216 4:3af282af5e21 787 spnum = uninum*10 + decnum;
joshema216 4:3af282af5e21 788 lcd.locate(3, 0);
joshema216 4:3af282af5e21 789 lcd.printf("%d", spnum);
joshema216 4:3af282af5e21 790 }
joshema216 4:3af282af5e21 791 else if(pos == 2){
joshema216 4:3af282af5e21 792 kpnum = uninum*10 + decnum;
joshema216 4:3af282af5e21 793 lcd.locate(11, 0);
joshema216 4:3af282af5e21 794 lcd.printf("%d", kpnum);
joshema216 4:3af282af5e21 795 }
joshema216 4:3af282af5e21 796 else if(pos == 3){
joshema216 4:3af282af5e21 797 kinum = uninum*10 + decnum;
joshema216 4:3af282af5e21 798 lcd.locate(3, 1);
joshema216 4:3af282af5e21 799 lcd.printf("%d", kinum);
joshema216 4:3af282af5e21 800 }
joshema216 4:3af282af5e21 801 else if(pos == 4){
joshema216 4:3af282af5e21 802 kdnum = uninum*10 + decnum;
joshema216 4:3af282af5e21 803 lcd.locate(11, 1);
joshema216 4:3af282af5e21 804 lcd.printf("%d", kdnum);
joshema216 4:3af282af5e21 805 }
joshema216 4:3af282af5e21 806 }
joshema216 4:3af282af5e21 807 else if (cen == 0 && dec != 0 && uni != 0){
joshema216 4:3af282af5e21 808 cennum = tec;
joshema216 4:3af282af5e21 809 cen = 1;
joshema216 4:3af282af5e21 810 if(pos == 1){
joshema216 4:3af282af5e21 811 spnum = uninum*100 + decnum*10 + cennum;
joshema216 4:3af282af5e21 812 lcd.locate(3, 0);
joshema216 4:3af282af5e21 813 lcd.printf("%d", spnum);
joshema216 4:3af282af5e21 814 }
joshema216 4:3af282af5e21 815 else if (pos == 2){
joshema216 4:3af282af5e21 816 kpnum = uninum*100 + decnum*10 + cennum;
joshema216 4:3af282af5e21 817 lcd.locate(11, 0);
joshema216 4:3af282af5e21 818 lcd.printf("%d", kpnum);
joshema216 4:3af282af5e21 819 }
joshema216 4:3af282af5e21 820 else if(pos == 3){
joshema216 4:3af282af5e21 821 kinum = uninum*100 + decnum*10 + cennum;
joshema216 4:3af282af5e21 822 lcd.locate(3, 1);
joshema216 4:3af282af5e21 823 lcd.printf("%d", kinum);
joshema216 4:3af282af5e21 824 }
joshema216 4:3af282af5e21 825 else if(pos == 4){
joshema216 4:3af282af5e21 826 kdnum = uninum*100 + decnum*10 + cennum;
joshema216 4:3af282af5e21 827 lcd.locate(11, 1);
joshema216 4:3af282af5e21 828 lcd.printf("%d", kdnum);
joshema216 4:3af282af5e21 829 }
joshema216 4:3af282af5e21 830 uni = 0;
joshema216 4:3af282af5e21 831 dec = 0;
joshema216 4:3af282af5e21 832 cen = 0;
joshema216 4:3af282af5e21 833 }
joshema216 4:3af282af5e21 834 }
joshema216 4:3af282af5e21 835
joshema216 4:3af282af5e21 836 if (numero == 1712978692){ // Número 9
joshema216 4:3af282af5e21 837 tec = 9;
joshema216 4:3af282af5e21 838 if (cen == 0 && dec == 0 && uni == 0){
joshema216 4:3af282af5e21 839 uninum = tec;
joshema216 4:3af282af5e21 840 uni = 1;
joshema216 4:3af282af5e21 841 if(pos == 1){
joshema216 4:3af282af5e21 842 spnum = uninum;
joshema216 4:3af282af5e21 843 lcd.locate(3, 0);
joshema216 4:3af282af5e21 844 lcd.printf(" ");
joshema216 4:3af282af5e21 845 lcd.locate(3, 0);
joshema216 4:3af282af5e21 846 lcd.printf("%d", spnum);
joshema216 4:3af282af5e21 847 }
joshema216 4:3af282af5e21 848 else if (pos == 2){
joshema216 4:3af282af5e21 849 kpnum = uninum;
joshema216 4:3af282af5e21 850 lcd.locate(11, 0);
joshema216 4:3af282af5e21 851 lcd.printf(" ");
joshema216 4:3af282af5e21 852 lcd.locate(11, 0);
joshema216 4:3af282af5e21 853 lcd.printf("%d", kpnum);
joshema216 4:3af282af5e21 854 }
joshema216 4:3af282af5e21 855 else if(pos == 3){
joshema216 4:3af282af5e21 856 kinum = uninum;
joshema216 4:3af282af5e21 857 lcd.locate(3, 1);
joshema216 4:3af282af5e21 858 lcd.printf(" ");
joshema216 4:3af282af5e21 859 lcd.locate(3, 1);
joshema216 4:3af282af5e21 860 lcd.printf("%d", kinum);
joshema216 4:3af282af5e21 861 }
joshema216 4:3af282af5e21 862 else if(pos == 4){
joshema216 4:3af282af5e21 863 kdnum = uninum;
joshema216 4:3af282af5e21 864 lcd.locate(11, 1);
joshema216 4:3af282af5e21 865 lcd.printf(" ");
joshema216 4:3af282af5e21 866 lcd.locate(11, 1);
joshema216 4:3af282af5e21 867 lcd.printf("%d", kdnum);
joshema216 4:3af282af5e21 868 }
joshema216 4:3af282af5e21 869 }
joshema216 4:3af282af5e21 870 else if (cen == 0 && dec == 0 && uni != 0){
joshema216 4:3af282af5e21 871 decnum = tec;
joshema216 4:3af282af5e21 872 dec = 1;
joshema216 4:3af282af5e21 873 if(pos == 1){
joshema216 4:3af282af5e21 874 spnum = uninum*10 + decnum;
joshema216 4:3af282af5e21 875 lcd.locate(3, 0);
joshema216 4:3af282af5e21 876 lcd.printf("%d", spnum);
joshema216 4:3af282af5e21 877 }
joshema216 4:3af282af5e21 878 else if(pos == 2){
joshema216 4:3af282af5e21 879 kpnum = uninum*10 + decnum;
joshema216 4:3af282af5e21 880 lcd.locate(11, 0);
joshema216 4:3af282af5e21 881 lcd.printf("%d", kpnum);
joshema216 4:3af282af5e21 882 }
joshema216 4:3af282af5e21 883 else if(pos == 3){
joshema216 4:3af282af5e21 884 kinum = uninum*10 + decnum;
joshema216 4:3af282af5e21 885 lcd.locate(3, 1);
joshema216 4:3af282af5e21 886 lcd.printf("%d", kinum);
joshema216 4:3af282af5e21 887 }
joshema216 4:3af282af5e21 888 else if(pos == 4){
joshema216 4:3af282af5e21 889 kdnum = uninum*10 + decnum;
joshema216 4:3af282af5e21 890 lcd.locate(11, 1);
joshema216 4:3af282af5e21 891 lcd.printf("%d", kdnum);
joshema216 4:3af282af5e21 892 }
joshema216 4:3af282af5e21 893 }
joshema216 4:3af282af5e21 894 else if (cen == 0 && dec != 0 && uni != 0){
joshema216 4:3af282af5e21 895 cennum = tec;
joshema216 4:3af282af5e21 896 cen = 1;
joshema216 4:3af282af5e21 897 if(pos == 1){
joshema216 4:3af282af5e21 898 spnum = uninum*100 + decnum*10 + cennum;
joshema216 4:3af282af5e21 899 lcd.locate(3, 0);
joshema216 4:3af282af5e21 900 lcd.printf("%d", spnum);
joshema216 4:3af282af5e21 901 }
joshema216 4:3af282af5e21 902 else if (pos == 2){
joshema216 4:3af282af5e21 903 kpnum = uninum*100 + decnum*10 + cennum;
joshema216 4:3af282af5e21 904 lcd.locate(11, 0);
joshema216 4:3af282af5e21 905 lcd.printf("%d", kpnum);
joshema216 4:3af282af5e21 906 }
joshema216 4:3af282af5e21 907 else if(pos == 3){
joshema216 4:3af282af5e21 908 kinum = uninum*100 + decnum*10 + cennum;
joshema216 4:3af282af5e21 909 lcd.locate(3, 1);
joshema216 4:3af282af5e21 910 lcd.printf("%d", kinum);
joshema216 4:3af282af5e21 911 }
joshema216 4:3af282af5e21 912 else if(pos == 4){
joshema216 4:3af282af5e21 913 kdnum = uninum*100 + decnum*10 + cennum;
joshema216 4:3af282af5e21 914 lcd.locate(11, 1);
joshema216 4:3af282af5e21 915 lcd.printf("%d", kdnum);
joshema216 4:3af282af5e21 916 }
joshema216 4:3af282af5e21 917 uni = 0;
joshema216 4:3af282af5e21 918 dec = 0;
joshema216 4:3af282af5e21 919 cen = 0;
joshema216 4:3af282af5e21 920 }
joshema216 4:3af282af5e21 921 }
joshema216 4:3af282af5e21 922
joshema216 4:3af282af5e21 923 if (numero == 1863383812){ // Número 0
joshema216 4:3af282af5e21 924 tec = 0;
joshema216 4:3af282af5e21 925 if (cen == 0 && dec == 0 && uni == 0){
joshema216 4:3af282af5e21 926 uninum = tec;
joshema216 4:3af282af5e21 927 uni = 1;
joshema216 4:3af282af5e21 928 if(pos == 1){
joshema216 4:3af282af5e21 929 spnum = uninum;
joshema216 4:3af282af5e21 930 lcd.locate(3, 0);
joshema216 4:3af282af5e21 931 lcd.printf(" ");
joshema216 4:3af282af5e21 932 lcd.locate(3, 0);
joshema216 4:3af282af5e21 933 lcd.printf("%d", spnum);
joshema216 4:3af282af5e21 934 }
joshema216 4:3af282af5e21 935 else if (pos == 2){
joshema216 4:3af282af5e21 936 kpnum = uninum;
joshema216 4:3af282af5e21 937 lcd.locate(11, 0);
joshema216 4:3af282af5e21 938 lcd.locate(11, 0);
joshema216 4:3af282af5e21 939 lcd.printf(" ");
joshema216 4:3af282af5e21 940 lcd.printf("%d", kpnum);
joshema216 4:3af282af5e21 941 }
joshema216 4:3af282af5e21 942 else if(pos == 3){
joshema216 4:3af282af5e21 943 kinum = uninum;
joshema216 4:3af282af5e21 944 lcd.locate(3, 1);
joshema216 4:3af282af5e21 945 lcd.printf(" ");
joshema216 4:3af282af5e21 946 lcd.locate(3, 1);
joshema216 4:3af282af5e21 947 lcd.printf("%d", kinum);
joshema216 4:3af282af5e21 948 }
joshema216 4:3af282af5e21 949 else if(pos == 4){
joshema216 4:3af282af5e21 950 kdnum = uninum;
joshema216 4:3af282af5e21 951 lcd.locate(11, 1);
joshema216 4:3af282af5e21 952 lcd.printf(" ");
joshema216 4:3af282af5e21 953 lcd.locate(11, 1);
joshema216 4:3af282af5e21 954 lcd.printf("%d", kdnum);
joshema216 4:3af282af5e21 955 }
joshema216 4:3af282af5e21 956 }
joshema216 4:3af282af5e21 957 else if (cen == 0 && dec == 0 && uni != 0){
joshema216 4:3af282af5e21 958 decnum = tec;
joshema216 4:3af282af5e21 959 dec = 1;
joshema216 4:3af282af5e21 960 if(pos == 1){
joshema216 4:3af282af5e21 961 spnum = uninum*10 + decnum;
joshema216 4:3af282af5e21 962 lcd.locate(3, 0);
joshema216 4:3af282af5e21 963 lcd.printf("%d", spnum);
joshema216 4:3af282af5e21 964 }
joshema216 4:3af282af5e21 965 else if (pos == 2){
joshema216 4:3af282af5e21 966 kpnum = uninum*10 + decnum;
joshema216 4:3af282af5e21 967 lcd.locate(11, 0);
joshema216 4:3af282af5e21 968 lcd.printf("%d", kpnum);
joshema216 4:3af282af5e21 969 }
joshema216 4:3af282af5e21 970 else if(pos == 3){
joshema216 4:3af282af5e21 971 kinum = uninum*10 + decnum;
joshema216 4:3af282af5e21 972 lcd.locate(3, 1);
joshema216 4:3af282af5e21 973 lcd.printf("%d", kinum);
joshema216 4:3af282af5e21 974 }
joshema216 4:3af282af5e21 975 else if(pos == 4){
joshema216 4:3af282af5e21 976 kdnum = uninum*10 + decnum;
joshema216 4:3af282af5e21 977 lcd.locate(11, 1);
joshema216 4:3af282af5e21 978 lcd.printf("%d", kdnum);
joshema216 4:3af282af5e21 979 }
joshema216 4:3af282af5e21 980 }
joshema216 4:3af282af5e21 981 else if (cen == 0 && dec != 0 && uni != 0){
joshema216 4:3af282af5e21 982 cennum = tec;
joshema216 4:3af282af5e21 983 cen = 1;
joshema216 4:3af282af5e21 984 if(pos == 1){
joshema216 4:3af282af5e21 985 spnum = uninum*100 + decnum*10 + cennum;
joshema216 4:3af282af5e21 986 lcd.locate(3, 0);
joshema216 4:3af282af5e21 987 lcd.printf("%d", spnum);
joshema216 4:3af282af5e21 988 }
joshema216 4:3af282af5e21 989 else if (pos == 2){
joshema216 4:3af282af5e21 990 kpnum = uninum*100 + decnum*10 + cennum;
joshema216 4:3af282af5e21 991 lcd.locate(11, 0);
joshema216 4:3af282af5e21 992 lcd.printf("%d", kpnum);
joshema216 4:3af282af5e21 993 }
joshema216 4:3af282af5e21 994 else if(pos == 3){
joshema216 4:3af282af5e21 995 kinum = uninum*100 + decnum*10 + cennum;
joshema216 4:3af282af5e21 996 lcd.locate(3, 1);
joshema216 4:3af282af5e21 997 lcd.printf("%d", kinum);
joshema216 4:3af282af5e21 998 }
joshema216 4:3af282af5e21 999 else if(pos == 4){
joshema216 4:3af282af5e21 1000 kdnum = uninum*100 + decnum*10 + cennum;
joshema216 4:3af282af5e21 1001 lcd.locate(11, 1);
joshema216 4:3af282af5e21 1002 lcd.printf("%d", kdnum);
joshema216 4:3af282af5e21 1003 }
joshema216 4:3af282af5e21 1004 uni = 0;
joshema216 4:3af282af5e21 1005 dec = 0;
joshema216 4:3af282af5e21 1006 cen = 0;
joshema216 4:3af282af5e21 1007 }
joshema216 4:3af282af5e21 1008 }
joshema216 4:3af282af5e21 1009
joshema216 4:3af282af5e21 1010 if (numero == 1462303492){ // Back (Borrar el número actual).
joshema216 4:3af282af5e21 1011 if(pos == 1){
joshema216 4:3af282af5e21 1012 uni = 0;
joshema216 4:3af282af5e21 1013 dec = 0;
joshema216 4:3af282af5e21 1014 cen = 0;
joshema216 4:3af282af5e21 1015 spnum = 0;
joshema216 4:3af282af5e21 1016 lcd.locate(3, 0);
joshema216 4:3af282af5e21 1017 lcd.printf(" ");
joshema216 4:3af282af5e21 1018 lcd.locate(3, 0);
joshema216 4:3af282af5e21 1019 lcd.printf("%d", spnum);
joshema216 4:3af282af5e21 1020 }
joshema216 4:3af282af5e21 1021 else if (pos == 2){
joshema216 4:3af282af5e21 1022 uni = 0;
joshema216 4:3af282af5e21 1023 dec = 0;
joshema216 4:3af282af5e21 1024 cen = 0;
joshema216 4:3af282af5e21 1025 kpnum = 0;
joshema216 4:3af282af5e21 1026 lcd.locate(11, 0);
joshema216 4:3af282af5e21 1027 lcd.printf(" ");
joshema216 4:3af282af5e21 1028 lcd.locate(11, 0);
joshema216 4:3af282af5e21 1029 lcd.printf("%d", kpnum);
joshema216 4:3af282af5e21 1030 }
joshema216 4:3af282af5e21 1031 else if(pos == 3){
joshema216 4:3af282af5e21 1032 uni = 0;
joshema216 4:3af282af5e21 1033 dec = 0;
joshema216 4:3af282af5e21 1034 cen = 0;
joshema216 4:3af282af5e21 1035 kinum = 0;
joshema216 4:3af282af5e21 1036 lcd.locate(3, 1);
joshema216 4:3af282af5e21 1037 lcd.printf(" ");
joshema216 4:3af282af5e21 1038 lcd.locate(3, 1);
joshema216 4:3af282af5e21 1039 lcd.printf("%d", kinum);
joshema216 4:3af282af5e21 1040 }
joshema216 4:3af282af5e21 1041 else if(pos == 4){
joshema216 4:3af282af5e21 1042 uni = 0;
joshema216 4:3af282af5e21 1043 dec = 0;
joshema216 4:3af282af5e21 1044 cen = 0;
joshema216 4:3af282af5e21 1045 kdnum = 0;
joshema216 4:3af282af5e21 1046 lcd.locate(11, 1);
joshema216 4:3af282af5e21 1047 lcd.printf(" ");
joshema216 4:3af282af5e21 1048 lcd.locate(11, 1);
joshema216 4:3af282af5e21 1049 lcd.printf("%d", kdnum);
joshema216 4:3af282af5e21 1050 }
joshema216 4:3af282af5e21 1051 }
joshema216 4:3af282af5e21 1052
joshema216 4:3af282af5e21 1053 if (numero == 994376452){ // OK (Cambiar a la siguiente constante).
joshema216 4:3af282af5e21 1054 led3 =!led3;
joshema216 4:3af282af5e21 1055 uni = 0;
joshema216 4:3af282af5e21 1056 dec = 0;
joshema216 4:3af282af5e21 1057 cen = 0;
joshema216 4:3af282af5e21 1058 if(pos == 4){
joshema216 4:3af282af5e21 1059 pos = 1;
joshema216 4:3af282af5e21 1060 lcd.locate(3, 0);
joshema216 4:3af282af5e21 1061 lcd.printf("%d", spnum);
joshema216 4:3af282af5e21 1062 }
joshema216 4:3af282af5e21 1063 else if (pos == 1){
joshema216 4:3af282af5e21 1064 pos++;
joshema216 4:3af282af5e21 1065 lcd.locate(11, 0);
joshema216 4:3af282af5e21 1066 lcd.printf("%d", kpnum);
joshema216 4:3af282af5e21 1067 }
joshema216 4:3af282af5e21 1068 else if(pos == 2){
joshema216 4:3af282af5e21 1069 pos++;
joshema216 4:3af282af5e21 1070 lcd.locate(3, 1);
joshema216 4:3af282af5e21 1071 lcd.printf("%d", kinum);
joshema216 4:3af282af5e21 1072 }
joshema216 4:3af282af5e21 1073 else if(pos == 3){
joshema216 4:3af282af5e21 1074 pos++;
joshema216 4:3af282af5e21 1075 lcd.locate(11, 1);
joshema216 4:3af282af5e21 1076 lcd.printf("%d", kdnum);
joshema216 4:3af282af5e21 1077 }
joshema216 4:3af282af5e21 1078 wait(0.25);
joshema216 4:3af282af5e21 1079 }
joshema216 4:3af282af5e21 1080
joshema216 4:3af282af5e21 1081 if (numero == 1997077252){ // Power (Inicializar el PID).
joshema216 4:3af282af5e21 1082 break; // Sale del bucle si se pisa Power.
joshema216 4:3af282af5e21 1083 }
joshema216 4:3af282af5e21 1084 wait(0.1);
joshema216 4:3af282af5e21 1085 }
joshema216 4:3af282af5e21 1086
joshema216 4:3af282af5e21 1087 //Transición
joshema216 4:3af282af5e21 1088 lcd.writeCommand(C4); // Escribimos un comando segun el manual del modulo LCD para quitar cursor bajo.
joshema216 4:3af282af5e21 1089 lcd.cls(); // Borra la pantalla.
joshema216 4:3af282af5e21 1090 lcd.locate(1, 1);
joshema216 4:3af282af5e21 1091 lcd.printf("DATOS GUARDADOS");
joshema216 4:3af282af5e21 1092 wait(1);
joshema216 4:3af282af5e21 1093 lcd.cls();
joshema216 4:3af282af5e21 1094 lcd.locate(1, 1);
joshema216 4:3af282af5e21 1095 lcd.printf("INICIO DEL PID");
joshema216 4:3af282af5e21 1096 wait(1);
joshema216 4:3af282af5e21 1097
joshema216 4:3af282af5e21 1098 // Se imprimen los parches del control.
joshema216 4:3af282af5e21 1099 lcd.cls();
joshema216 4:3af282af5e21 1100 lcd.printf("Er=%3.0f",err);
joshema216 4:3af282af5e21 1101 lcd.locate(8,0);
joshema216 4:3af282af5e21 1102 lcd.printf("Me=%3.0f",med);
joshema216 4:3af282af5e21 1103 lcd.locate(0,1);
joshema216 4:3af282af5e21 1104 lcd.printf("Sp=%3.0f",spnum);
joshema216 4:3af282af5e21 1105 lcd.locate(8,1);
joshema216 4:3af282af5e21 1106 lcd.printf("Co=%3.0f",pid);
joshema216 4:3af282af5e21 1107 wait(1);
joshema216 4:3af282af5e21 1108
joshema216 4:3af282af5e21 1109 // CICLO PRINCIPAL CONTROLADOR PID.
joshema216 4:3af282af5e21 1110 lop1:
joshema216 4:3af282af5e21 1111 med = y.read()*999;
joshema216 4:3af282af5e21 1112 err = (spnum-med); // Se calcula el error.
joshema216 4:3af282af5e21 1113 ap = kpnum*err*0.01f; // Se calcula la acción proporcinal.
joshema216 4:3af282af5e21 1114 ai =(kinum*err*0.01f)+ai; // Cálculo de la integral del error.
joshema216 4:3af282af5e21 1115 ad = kdnum*(err-err_v)*0.01f; // Cálculo de la acción derivativa.
joshema216 4:3af282af5e21 1116 pid = (ap+ai+ad); // Se actualiza el valor del la acción de control.
joshema216 4:3af282af5e21 1117
joshema216 4:3af282af5e21 1118 // Se verifica que pid sea positivo.
joshema216 4:3af282af5e21 1119 if(pid<=0){
joshema216 4:3af282af5e21 1120 pid=0;
joshema216 4:3af282af5e21 1121 }
joshema216 4:3af282af5e21 1122
joshema216 4:3af282af5e21 1123 // Se verifica que pid sea menor o igual la valor máximo.
joshema216 4:3af282af5e21 1124 if (pid > 999){
joshema216 4:3af282af5e21 1125 pid=999;
joshema216 4:3af282af5e21 1126 }
joshema216 4:3af282af5e21 1127
joshema216 4:3af282af5e21 1128 // Se muestran las variables en la LCD.
joshema216 4:3af282af5e21 1129 lcd.locate(3,0);
joshema216 4:3af282af5e21 1130 lcd.printf(" ");
joshema216 4:3af282af5e21 1131 lcd.locate(3,0);
joshema216 4:3af282af5e21 1132 lcd.printf("%3.0f",err);
joshema216 4:3af282af5e21 1133 lcd.locate(11,0);
joshema216 4:3af282af5e21 1134 lcd.printf(" ");
joshema216 4:3af282af5e21 1135 lcd.locate(11,0);
joshema216 4:3af282af5e21 1136 lcd.printf("%3.0f",med);
joshema216 4:3af282af5e21 1137 lcd.locate(3,1);
joshema216 4:3af282af5e21 1138 lcd.printf(" ");
joshema216 4:3af282af5e21 1139 lcd.locate(3,1);
joshema216 4:3af282af5e21 1140 lcd.printf("%d",spnum);
joshema216 4:3af282af5e21 1141 lcd.locate(11,1);
joshema216 4:3af282af5e21 1142 lcd.printf(" ");
joshema216 4:3af282af5e21 1143 lcd.locate(11,1);
joshema216 4:3af282af5e21 1144 lcd.printf("%3.0f",pid);
joshema216 4:3af282af5e21 1145
joshema216 4:3af282af5e21 1146 // Normalización de la salida.
joshema216 4:3af282af5e21 1147 // Se actualizan las variables.
joshema216 4:3af282af5e21 1148 err_v = err;
joshema216 4:3af282af5e21 1149 o = pid/999;
joshema216 4:3af282af5e21 1150 u.write(o); // Se envía el valor de pid al puerto analogico de salida (D/A).
joshema216 4:3af282af5e21 1151
joshema216 4:3af282af5e21 1152 // Se repite el ciclo.
joshema216 4:3af282af5e21 1153 wait_ms(300);
joshema216 4:3af282af5e21 1154 goto lop1;
joshema216 4:3af282af5e21 1155 }