ControlTemperatura / Mbed 2 deprecated ControlTemperatura_2_6

Dependencies:   mbed

Fork of ControlTemperatura_2_5 by ControlTemperatura

Committer:
davicone
Date:
Thu Apr 09 08:31:35 2015 +0000
Revision:
7:d064bd8f9c87
Parent:
6:de176672744c
Child:
8:b12a3d56f3c4
:);

Who changed what in which revision?

UserRevisionLine numberNew contents of line
davicone 0:ac833c85625c 1
davicone 0:ac833c85625c 2 // --------------------------------------------------------------------------- Inclusiones
davicone 0:ac833c85625c 3 #include "mbed.h"
davicone 0:ac833c85625c 4 #include "string.h"
davicone 5:cc6ff3f4aca1 5 #include <TimerEvent.h>
davicone 5:cc6ff3f4aca1 6 #include <Ticker.h>
davicone 0:ac833c85625c 7 using namespace std;
davicone 0:ac833c85625c 8
davicone 3:e060cff29402 9 #define Si 1
davicone 3:e060cff29402 10 #define No 0
davicone 3:e060cff29402 11 #define numMuestreos 5
davicone 3:e060cff29402 12 #define CoeficienteB 3950
davicone 3:e060cff29402 13 #define NominalTermistor 10000
davicone 3:e060cff29402 14 #define TempNominal 25
davicone 3:e060cff29402 15 #define ResistSerie 100
davicone 3:e060cff29402 16 #define Encendido 0
davicone 3:e060cff29402 17 #define Apagado 1
davicone 3:e060cff29402 18
davicone 0:ac833c85625c 19
davicone 0:ac833c85625c 20
davicone 0:ac833c85625c 21
davicone 0:ac833c85625c 22
davicone 0:ac833c85625c 23 // --------------------------------------------------------------------------- Variables y objetos
davicone 0:ac833c85625c 24 Serial pc(USBTX, USBRX); // Inicializo el puerto serie para comunicarme con la computadora
davicone 0:ac833c85625c 25 // La frecuencia por default es de 9600
davicone 0:ac833c85625c 26
davicone 0:ac833c85625c 27 // Variables
davicone 0:ac833c85625c 28 unsigned int tiempoFinal; // Variable para almacenar el tiempo máximo
davicone 7:d064bd8f9c87 29 int tempTrabajo; // Temperatura a la cual se debe mantener el sistema
jeka 1:677ecfe29f10 30 float tempSen1; // Temperatura del sensor 1
davicone 0:ac833c85625c 31 float tempSen2; // Temperatura del sensor 2
davicone 0:ac833c85625c 32 float tempSen3; // Temperatura del sensor 3
jeka 1:677ecfe29f10 33 float tempSen4; // Temperatura del sensor 4
davicone 3:e060cff29402 34 float proSen1; // Promedio para conversión sensor 1
davicone 3:e060cff29402 35 float proSen2; // Promedio para conversión sensor 2
davicone 3:e060cff29402 36 float proSen3; // Promedio para conversión sensor 3
davicone 3:e060cff29402 37 float proSen4; // Promedio para conversión sensor 4
davicone 3:e060cff29402 38 uint16_t adcTempSen1[numMuestreos]; // Variable para almacenar valor de adc sensor 1
davicone 3:e060cff29402 39 uint16_t adcTempSen2[numMuestreos]; // Variable para almacenar valor de adc sensor 2
davicone 3:e060cff29402 40 uint16_t adcTempSen3[numMuestreos]; // Variable para almacenar valor de adc sensor 3
davicone 3:e060cff29402 41 uint16_t adcTempSen4[numMuestreos]; // Variable para almacenar valor de adc sensor 4
davicone 0:ac833c85625c 42 Timer timmer; // Timer para medir el tiempo transcurrido
davicone 0:ac833c85625c 43 bool inicioProceso = No; // Variable para determinar si el proceso se inicia
davicone 0:ac833c85625c 44 bool pausaProceso = No; // Variable para pausar
davicone 0:ac833c85625c 45 bool finProceso = No; // Variable finalizar el proceso
davicone 0:ac833c85625c 46 char comando; // Variable para leer el comando a ejecutar en el proceso
jeka 1:677ecfe29f10 47 char sTiempo[10]; // stringtiempo
davicone 3:e060cff29402 48 char sTemperatura[10]; // string temperatura
davicone 3:e060cff29402 49 bool curadoIniciado = No;
jeka 1:677ecfe29f10 50
davicone 0:ac833c85625c 51
davicone 0:ac833c85625c 52
davicone 0:ac833c85625c 53 //Pines de Salida
davicone 0:ac833c85625c 54 DigitalOut reflector1(p26); // Salida para controlar el reflector 1
davicone 0:ac833c85625c 55 DigitalOut reflector2(p25); // Salida para controlar el reflector 2
davicone 0:ac833c85625c 56 DigitalOut reflector3(p24); // Salida para controlar el reflector 3
davicone 0:ac833c85625c 57 DigitalOut reflector4(p23); // Salida para controlar el reflector 4
davicone 0:ac833c85625c 58 DigitalOut ventilador1(p22); // Salida para controlar el ventilador 1
davicone 0:ac833c85625c 59 DigitalOut ventilador2(p21); // Salida para controlar el ventilador 2
davicone 0:ac833c85625c 60
davicone 0:ac833c85625c 61 // Pines de Entrada
davicone 0:ac833c85625c 62 AnalogIn pinSen1(p16); // Entrada para leer la temperatura del sensor 1
davicone 0:ac833c85625c 63 AnalogIn pinSen2(p17); // Entrada para leer la temperatura del sensor 2
davicone 0:ac833c85625c 64 AnalogIn pinSen3(p18); // Entrada para leer la temperatura del sensor 3
davicone 0:ac833c85625c 65 AnalogIn pinSen4(p19); // Entrada para leer la temperatura del sensor 4
davicone 0:ac833c85625c 66
davicone 0:ac833c85625c 67
davicone 0:ac833c85625c 68 // --------------------------------------------------------------------------- Prototipos
jeka 1:677ecfe29f10 69 void LeerSerie (void); // Función para leer el puerto serie
davicone 3:e060cff29402 70 void LeerSensores (void); // Función para leer temperatura delos sensores
davicone 5:cc6ff3f4aca1 71 float convertirTemp(float promedio); // Función para convertir la lectura ADC a temperatura
davicone 5:cc6ff3f4aca1 72 void Contador(void); // Función para contar el tiempo transcurrido en segundos
davicone 0:ac833c85625c 73
davicone 0:ac833c85625c 74
davicone 0:ac833c85625c 75 // --------------------------------------------------------------------------- Programa principal
davicone 0:ac833c85625c 76 int main()
davicone 0:ac833c85625c 77 {
davicone 0:ac833c85625c 78 pc.baud(9600);
davicone 0:ac833c85625c 79 pc.attach(&LeerSerie);
davicone 7:d064bd8f9c87 80 pc.printf("Iniciando\n\r"); // Se imprime y se da enter
davicone 5:cc6ff3f4aca1 81 //timmer.attach(&Contador,1.0);
davicone 0:ac833c85625c 82
davicone 6:de176672744c 83 while(1)
davicone 0:ac833c85625c 84 {
davicone 7:d064bd8f9c87 85 pc.printf("Esperando Inicio\n\r"); // Se imprime y se da enter
davicone 6:de176672744c 86 while(inicioProceso == No)
davicone 3:e060cff29402 87 {
davicone 6:de176672744c 88 wait(0.1);
davicone 6:de176672744c 89 //pc.printf("y");
davicone 6:de176672744c 90 }// Espera a recibir comando
davicone 0:ac833c85625c 91
davicone 6:de176672744c 92 pc.printf("Proceso Iniciado\r\n");
davicone 6:de176672744c 93 // Encender Ventiladores
davicone 6:de176672744c 94 ventilador1 = 1;
davicone 6:de176672744c 95 ventilador2 = 1;
davicone 6:de176672744c 96 pc.printf("Ventiladores Encendidos\r\n");
davicone 6:de176672744c 97 reflector1 = Encendido;
davicone 6:de176672744c 98 reflector2 = Encendido;
davicone 6:de176672744c 99 reflector3 = Encendido;
davicone 6:de176672744c 100 reflector4 = Encendido;
davicone 6:de176672744c 101 pc.printf("Reflectores Encendidos\r\n");
davicone 0:ac833c85625c 102
davicone 6:de176672744c 103
davicone 6:de176672744c 104 // Espera a que todos los sensores alcancen la temperatura de trabajo, que el curado inicie
davicone 7:d064bd8f9c87 105 /*while(curadoIniciado == No)
davicone 3:e060cff29402 106 {
davicone 6:de176672744c 107 LeerSensores();
davicone 6:de176672744c 108 if((tempSen1 >= tempTrabajo) && (tempSen2 >= tempTrabajo) && (tempSen3 >= tempTrabajo) && (tempSen4 >= tempTrabajo))
davicone 6:de176672744c 109 {
davicone 6:de176672744c 110 curadoIniciado = Si;
davicone 6:de176672744c 111 }
davicone 7:d064bd8f9c87 112 }*/
davicone 3:e060cff29402 113
davicone 6:de176672744c 114 pc.printf("Curado Iniciado\r\n");
davicone 6:de176672744c 115 // Activar timer
davicone 6:de176672744c 116
davicone 6:de176672744c 117 // --------------------------------------------------------------------------- PROCESO
davicone 6:de176672744c 118 while(finProceso == No)
davicone 3:e060cff29402 119 {
davicone 6:de176672744c 120
davicone 6:de176672744c 121 LeerSensores();
davicone 6:de176672744c 122
davicone 6:de176672744c 123 // ------------------------------ Controlar Reflector 1
davicone 7:d064bd8f9c87 124 if(int(tempSen1) > tempTrabajo)
davicone 6:de176672744c 125 {
davicone 6:de176672744c 126 reflector1 = Apagado;
davicone 6:de176672744c 127 pc.printf("Reflector 1: Apagado\r\n");
davicone 6:de176672744c 128 }
davicone 7:d064bd8f9c87 129 else
davicone 6:de176672744c 130 {
davicone 6:de176672744c 131 reflector1 = Encendido;
davicone 6:de176672744c 132 pc.printf("Reflector 1: Encendido\r\n");
davicone 6:de176672744c 133 }
davicone 6:de176672744c 134
davicone 6:de176672744c 135 // ------------------------------ Controlar Reflector 2
davicone 7:d064bd8f9c87 136 if(int(tempSen2) > tempTrabajo)
davicone 6:de176672744c 137 {
davicone 6:de176672744c 138 reflector2 = Apagado;
davicone 6:de176672744c 139 pc.printf("Reflector 2: Apagado\r\n");
davicone 6:de176672744c 140 }
davicone 7:d064bd8f9c87 141 else
davicone 6:de176672744c 142 {
davicone 6:de176672744c 143 reflector2 = Encendido;
davicone 6:de176672744c 144 pc.printf("Reflector 2: Encendido\r\n");
davicone 6:de176672744c 145 }
davicone 6:de176672744c 146
davicone 6:de176672744c 147 // ------------------------------ Controlar Reflector 3
davicone 7:d064bd8f9c87 148 if(int(tempSen3) > tempTrabajo)
davicone 6:de176672744c 149 {
davicone 6:de176672744c 150 reflector3 = Apagado;
davicone 6:de176672744c 151 pc.printf("Reflector 3: Apagado\r\n");
davicone 6:de176672744c 152 }
davicone 7:d064bd8f9c87 153 else
davicone 6:de176672744c 154 {
davicone 6:de176672744c 155 reflector3 = Encendido;
davicone 6:de176672744c 156 pc.printf("Reflector 3: Encendido\r\n");
davicone 6:de176672744c 157 }
davicone 6:de176672744c 158
davicone 6:de176672744c 159 // ------------------------------ Controlar Reflector 4
davicone 7:d064bd8f9c87 160 if(int(tempSen4) > tempTrabajo)
davicone 6:de176672744c 161 {
davicone 6:de176672744c 162 reflector4 = Apagado;
davicone 6:de176672744c 163 pc.printf("Reflector 4: Apagado\r\n");
davicone 6:de176672744c 164 }
davicone 7:d064bd8f9c87 165 else
davicone 6:de176672744c 166 {
davicone 6:de176672744c 167 reflector4 = Encendido;
davicone 6:de176672744c 168 pc.printf("Reflector 4: Encendido\r\n");
davicone 6:de176672744c 169 }
davicone 6:de176672744c 170
davicone 6:de176672744c 171 while((pausaProceso == Si) && (finProceso == No)) // ---------------------------------- Proceso Pausado
davicone 6:de176672744c 172 {
davicone 6:de176672744c 173 pc.printf("Proceso Puasado\r\n");
davicone 6:de176672744c 174 // Apagar Ventiladores
davicone 6:de176672744c 175 ventilador1 = 0;
davicone 6:de176672744c 176 ventilador2 = 0;
davicone 6:de176672744c 177 pc.printf("Ventiladores Apagados\r\n");
davicone 6:de176672744c 178 reflector1 = Apagado;
davicone 6:de176672744c 179 reflector2 = Apagado;
davicone 6:de176672744c 180 reflector3 = Apagado;
davicone 6:de176672744c 181 reflector4 = Apagado;
davicone 6:de176672744c 182 pc.printf("Reflectores Apagados\r\n");
davicone 7:d064bd8f9c87 183 wait(1.0);
davicone 6:de176672744c 184 }
davicone 7:d064bd8f9c87 185 wait(1.0);
davicone 3:e060cff29402 186 }
davicone 3:e060cff29402 187
davicone 6:de176672744c 188 // Apagar Ventiladores
davicone 6:de176672744c 189 ventilador1 = 0;
davicone 6:de176672744c 190 ventilador2 = 0;
davicone 6:de176672744c 191 pc.printf("Ventiladores Apagados\r\n");
davicone 6:de176672744c 192 reflector1 = Apagado;
davicone 6:de176672744c 193 reflector2 = Apagado;
davicone 6:de176672744c 194 reflector3 = Apagado;
davicone 6:de176672744c 195 reflector4 = Apagado;
davicone 6:de176672744c 196 pc.printf("Reflectores Apagados\r\n");
davicone 6:de176672744c 197 inicioProceso = No; // Variable para determinar si el proceso se inicia
davicone 6:de176672744c 198 pausaProceso = No; // Variable para pausar
davicone 6:de176672744c 199 finProceso = No; // Variable finalizar el proceso
davicone 6:de176672744c 200 pc.printf("Proceso Terminado\r\n");
davicone 0:ac833c85625c 201 }
davicone 0:ac833c85625c 202 }
davicone 0:ac833c85625c 203
davicone 0:ac833c85625c 204
davicone 0:ac833c85625c 205 // --------------------------------------------------------------------------- Funciones
davicone 0:ac833c85625c 206
davicone 0:ac833c85625c 207 // --------------------------------------------------------------------------- LeerSerie
davicone 0:ac833c85625c 208 void LeerSerie(void)
davicone 0:ac833c85625c 209 {
davicone 0:ac833c85625c 210 comando = pc.getc();
davicone 0:ac833c85625c 211 switch(comando)
davicone 0:ac833c85625c 212 {
davicone 0:ac833c85625c 213 case 'I':
davicone 0:ac833c85625c 214 inicioProceso = Si;
davicone 0:ac833c85625c 215 // Guardar Tiempo
davicone 0:ac833c85625c 216 // Guardar Temperatura
davicone 0:ac833c85625c 217 pc.scanf("%s %s",sTiempo, sTemperatura);
davicone 0:ac833c85625c 218 pc.printf("\r\n");
davicone 0:ac833c85625c 219 pc.printf(sTiempo);
davicone 0:ac833c85625c 220 pc.printf("\r\n");
davicone 0:ac833c85625c 221 pc.printf(sTemperatura);
davicone 0:ac833c85625c 222 pc.printf("\r\n");
davicone 0:ac833c85625c 223
davicone 7:d064bd8f9c87 224 //tiempoFinal = atoi(sTiempo);
davicone 7:d064bd8f9c87 225 //tempTrabajo = atoi(sTemperatura);
davicone 7:d064bd8f9c87 226 tiempoFinal = 20000;
davicone 7:d064bd8f9c87 227 tempTrabajo = 80;
davicone 7:d064bd8f9c87 228 comando = 0;
davicone 0:ac833c85625c 229 break;
davicone 0:ac833c85625c 230
davicone 0:ac833c85625c 231 case 'P':
davicone 7:d064bd8f9c87 232 pc.printf("Llego pausa\r\n");
davicone 0:ac833c85625c 233 pausaProceso = Si;
davicone 7:d064bd8f9c87 234 comando = 0;
davicone 0:ac833c85625c 235 break;
davicone 0:ac833c85625c 236
davicone 0:ac833c85625c 237 case 'F':
davicone 7:d064bd8f9c87 238 pc.printf("Llego Fin\r\n");
davicone 0:ac833c85625c 239 finProceso = Si;
davicone 7:d064bd8f9c87 240 inicioProceso = No;
davicone 7:d064bd8f9c87 241 comando = 0;
davicone 0:ac833c85625c 242 break;
davicone 0:ac833c85625c 243
davicone 0:ac833c85625c 244 case 'R':
davicone 7:d064bd8f9c87 245 pc.printf("Llego reinicio\r\n");
davicone 0:ac833c85625c 246 pausaProceso = No;
davicone 7:d064bd8f9c87 247 comando = 0;
davicone 0:ac833c85625c 248 break;
davicone 0:ac833c85625c 249
davicone 0:ac833c85625c 250 }
davicone 3:e060cff29402 251 }
davicone 3:e060cff29402 252
jeka 1:677ecfe29f10 253
jeka 2:7e518b8dcda8 254 //----------------------------------------------------Leer temperatura
jeka 1:677ecfe29f10 255 void LeerSensores(void)
jeka 1:677ecfe29f10 256 {
davicone 4:9d435331bbc7 257 /*int i;
davicone 3:e060cff29402 258 //-------------------------------------------------------------------------- sensor 1
davicone 3:e060cff29402 259 //----------------------------- Se realizan múltiples lecturas para sacar un promedio de voltaje
davicone 3:e060cff29402 260 for ( i=0; i< numMuestreos; i++)
davicone 3:e060cff29402 261 {
davicone 3:e060cff29402 262 adcTempSen1[i] = pinSen1.read_u16();
davicone 3:e060cff29402 263 wait(0.01);
davicone 3:e060cff29402 264 }
davicone 3:e060cff29402 265 // ---------------------------- Se calcula el promedio
davicone 3:e060cff29402 266 proSen1 = 0;
davicone 3:e060cff29402 267 for (i=0; i< numMuestreos; i++)
davicone 3:e060cff29402 268 {
davicone 3:e060cff29402 269 proSen1 += adcTempSen1[i];
davicone 3:e060cff29402 270 }
davicone 3:e060cff29402 271 proSen1 /= numMuestreos;
davicone 4:9d435331bbc7 272
jeka 1:677ecfe29f10 273
davicone 3:e060cff29402 274 //-------------------------------------------------------------------------- sensor 2
davicone 3:e060cff29402 275 //----------------------------- Se realizan múltiples lecturas para sacar un promedio de voltaje
davicone 3:e060cff29402 276 for ( i=0; i< numMuestreos; i++)
davicone 3:e060cff29402 277 {
davicone 3:e060cff29402 278 adcTempSen2[i] = pinSen2.read_u16();
davicone 3:e060cff29402 279 wait(0.01);
davicone 3:e060cff29402 280 }
davicone 3:e060cff29402 281 // ---------------------------- Se calcula el promedio
davicone 3:e060cff29402 282 proSen2 = 0;
davicone 3:e060cff29402 283 for (i=0; i< numMuestreos; i++)
davicone 3:e060cff29402 284 {
davicone 3:e060cff29402 285 proSen2 += adcTempSen2[i];
davicone 3:e060cff29402 286 }
davicone 3:e060cff29402 287 proSen2 /= numMuestreos;
davicone 4:9d435331bbc7 288
jeka 1:677ecfe29f10 289
davicone 3:e060cff29402 290 //-------------------------------------------------------------------------- sensor 3
davicone 3:e060cff29402 291 //----------------------------- Se realizan múltiples lecturas para sacar un promedio de voltaje
davicone 3:e060cff29402 292 for ( i=0; i< numMuestreos; i++)
davicone 3:e060cff29402 293 {
davicone 3:e060cff29402 294 adcTempSen3[i] = pinSen3.read_u16();
davicone 3:e060cff29402 295 wait(0.01);
davicone 3:e060cff29402 296 }
davicone 3:e060cff29402 297 // ---------------------------- Se calcula el promedio
davicone 3:e060cff29402 298 proSen3 = 0;
davicone 3:e060cff29402 299 for (i=0; i< numMuestreos; i++)
davicone 3:e060cff29402 300 {
davicone 3:e060cff29402 301 proSen3 += adcTempSen3[i];
davicone 3:e060cff29402 302 }
davicone 3:e060cff29402 303 proSen3 /= numMuestreos;
davicone 4:9d435331bbc7 304
davicone 3:e060cff29402 305
davicone 3:e060cff29402 306 //-------------------------------------------------------------------------- sensor 4
davicone 3:e060cff29402 307 //----------------------------- Se realizan múltiples lecturas para sacar un promedio de voltaje
davicone 3:e060cff29402 308 for ( i=0; i< numMuestreos; i++)
davicone 3:e060cff29402 309 {
davicone 3:e060cff29402 310 adcTempSen4[i] = pinSen4.read_u16();
davicone 3:e060cff29402 311 wait(0.01);
davicone 3:e060cff29402 312 }
davicone 3:e060cff29402 313 // ---------------------------- Se calcula el promedio
davicone 3:e060cff29402 314 proSen4 = 0;
davicone 3:e060cff29402 315 for (i=0; i< numMuestreos; i++)
davicone 3:e060cff29402 316 {
davicone 3:e060cff29402 317 proSen4 += adcTempSen4[i];
davicone 3:e060cff29402 318 }
davicone 3:e060cff29402 319 proSen4 /= numMuestreos;
jeka 1:677ecfe29f10 320
jeka 1:677ecfe29f10 321
davicone 4:9d435331bbc7 322 tempSen1 = convertirTemp(proSen1);
davicone 4:9d435331bbc7 323 tempSen2 = convertirTemp(proSen2);
davicone 4:9d435331bbc7 324 tempSen3 = convertirTemp(proSen3);
davicone 4:9d435331bbc7 325 tempSen4 = convertirTemp(proSen4);*/
davicone 4:9d435331bbc7 326
davicone 4:9d435331bbc7 327 // SOLO TEST
davicone 4:9d435331bbc7 328 tempSen1 = 50;
davicone 4:9d435331bbc7 329 tempSen2 = 50;
davicone 4:9d435331bbc7 330 tempSen3 = 50;
davicone 4:9d435331bbc7 331 tempSen4 = 50;
davicone 4:9d435331bbc7 332 // ----- TEST
davicone 3:e060cff29402 333
davicone 7:d064bd8f9c87 334 pc.printf("Sensor1: %.2f C. \r \n ", tempSen1);
davicone 7:d064bd8f9c87 335 pc.printf("Sensor2: %.2f C. \r \n ", tempSen2);
davicone 7:d064bd8f9c87 336 pc.printf("Sensor3: %.2f C. \r \n ", tempSen3);
davicone 7:d064bd8f9c87 337 pc.printf("Sensor4: %.2f C. \r \n ", tempSen4);
jeka 1:677ecfe29f10 338
davicone 3:e060cff29402 339 }
davicone 3:e060cff29402 340
davicone 3:e060cff29402 341 // --------------------------------------------------------------------------- convertirTemp
davicone 3:e060cff29402 342 float convertirTemp(float promedio)
davicone 3:e060cff29402 343 {
davicone 3:e060cff29402 344 float temperatura;
jeka 1:677ecfe29f10 345
davicone 3:e060cff29402 346 // convertir el promedio a resistencia
davicone 3:e060cff29402 347 promedio = 65535 / promedio - 1;
davicone 3:e060cff29402 348 promedio = ResistSerie / promedio;
davicone 3:e060cff29402 349 temperatura = promedio / NominalTermistor; // (R/Ro)
davicone 3:e060cff29402 350 temperatura = log(temperatura); // ln(R/Ro)
davicone 3:e060cff29402 351 temperatura /= CoeficienteB; // 1/B * ln(R/Ro)
davicone 3:e060cff29402 352 temperatura += 1.0 / (TempNominal + 273.15); // + (1/To)
davicone 3:e060cff29402 353 temperatura = 1.0 / temperatura; // Invertir
davicone 3:e060cff29402 354 temperatura -= 273.15; // convertir a C
davicone 3:e060cff29402 355 return temperatura;
davicone 3:e060cff29402 356 }
davicone 3:e060cff29402 357
davicone 5:cc6ff3f4aca1 358 // --------------------------------------------------------------------------- Contador
davicone 5:cc6ff3f4aca1 359 void Contador(void)
davicone 5:cc6ff3f4aca1 360 {
davicone 5:cc6ff3f4aca1 361
davicone 5:cc6ff3f4aca1 362 }
davicone 5:cc6ff3f4aca1 363
davicone 3:e060cff29402 364