Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Fork of ControlTemperatura_2_5 by
main.cpp@5:cc6ff3f4aca1, 2015-04-09 (annotated)
- Committer:
- davicone
- Date:
- Thu Apr 09 07:30:53 2015 +0000
- Revision:
- 5:cc6ff3f4aca1
- Parent:
- 4:9d435331bbc7
- Child:
- 6:de176672744c
:)
Who changed what in which revision?
| User | Revision | Line number | New 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 | 0:ac833c85625c | 29 | float 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.printf("Iniciando\n\r"); // Se imprime y se da enter |
| davicone | 0:ac833c85625c | 80 | pc.attach(&LeerSerie); |
| davicone | 5:cc6ff3f4aca1 | 81 | //timmer.attach(&Contador,1.0); |
| davicone | 0:ac833c85625c | 82 | |
| davicone | 0:ac833c85625c | 83 | while(inicioProceso == No) |
| davicone | 0:ac833c85625c | 84 | { |
| davicone | 0:ac833c85625c | 85 | wait(0.1); |
| davicone | 0:ac833c85625c | 86 | //pc.printf("y"); |
| davicone | 0:ac833c85625c | 87 | }// Espera a recibir comando |
| davicone | 0:ac833c85625c | 88 | |
| davicone | 0:ac833c85625c | 89 | pc.printf("Proceso Iniciado\r\n"); |
| davicone | 3:e060cff29402 | 90 | // Encender Ventiladores |
| davicone | 3:e060cff29402 | 91 | ventilador1 = 1; |
| davicone | 3:e060cff29402 | 92 | ventilador2 = 1; |
| davicone | 3:e060cff29402 | 93 | pc.printf("Ventiladores Encendidos\r\n"); |
| davicone | 3:e060cff29402 | 94 | reflector1 = Encendido; |
| davicone | 3:e060cff29402 | 95 | reflector2 = Encendido; |
| davicone | 3:e060cff29402 | 96 | reflector3 = Encendido; |
| davicone | 3:e060cff29402 | 97 | reflector4 = Encendido; |
| davicone | 3:e060cff29402 | 98 | pc.printf("Reflectores Encendidos\r\n"); |
| davicone | 0:ac833c85625c | 99 | |
| davicone | 3:e060cff29402 | 100 | |
| davicone | 3:e060cff29402 | 101 | // Espera a que todos los sensores alcancen la temperatura de trabajo, que el curado inicie |
| davicone | 3:e060cff29402 | 102 | while(curadoIniciado == No) |
| davicone | 3:e060cff29402 | 103 | { |
| davicone | 3:e060cff29402 | 104 | LeerSensores(); |
| davicone | 3:e060cff29402 | 105 | if((tempSen1 >= tempTrabajo) && (tempSen2 >= tempTrabajo) && (tempSen3 >= tempTrabajo) && (tempSen4 >= tempTrabajo)) |
| davicone | 3:e060cff29402 | 106 | { |
| davicone | 3:e060cff29402 | 107 | curadoIniciado = Si; |
| davicone | 3:e060cff29402 | 108 | } |
| davicone | 3:e060cff29402 | 109 | } |
| davicone | 3:e060cff29402 | 110 | |
| davicone | 3:e060cff29402 | 111 | pc.printf("Curado Iniciado\r\n"); |
| davicone | 3:e060cff29402 | 112 | // Activar timer |
| davicone | 3:e060cff29402 | 113 | |
| davicone | 0:ac833c85625c | 114 | // --------------------------------------------------------------------------- PROCESO |
| davicone | 0:ac833c85625c | 115 | while(finProceso == No) |
| davicone | 0:ac833c85625c | 116 | { |
| davicone | 0:ac833c85625c | 117 | |
| davicone | 3:e060cff29402 | 118 | LeerSensores(); |
| davicone | 0:ac833c85625c | 119 | |
| davicone | 3:e060cff29402 | 120 | // ------------------------------ Controlar Reflector 1 |
| davicone | 3:e060cff29402 | 121 | if(tempSen1 > tempTrabajo) |
| davicone | 3:e060cff29402 | 122 | { |
| davicone | 3:e060cff29402 | 123 | reflector1 = Apagado; |
| davicone | 3:e060cff29402 | 124 | pc.printf("Reflector 1: Apagado\r\n"); |
| davicone | 3:e060cff29402 | 125 | } |
| davicone | 3:e060cff29402 | 126 | else if(tempSen1 < tempTrabajo) |
| davicone | 3:e060cff29402 | 127 | { |
| davicone | 3:e060cff29402 | 128 | reflector1 = Encendido; |
| davicone | 3:e060cff29402 | 129 | pc.printf("Reflector 1: Encendido\r\n"); |
| davicone | 3:e060cff29402 | 130 | } |
| davicone | 3:e060cff29402 | 131 | |
| davicone | 3:e060cff29402 | 132 | // ------------------------------ Controlar Reflector 2 |
| davicone | 3:e060cff29402 | 133 | if(tempSen2 > tempTrabajo) |
| davicone | 3:e060cff29402 | 134 | { |
| davicone | 3:e060cff29402 | 135 | reflector2 = Apagado; |
| davicone | 3:e060cff29402 | 136 | pc.printf("Reflector 2: Apagado\r\n"); |
| davicone | 3:e060cff29402 | 137 | } |
| davicone | 3:e060cff29402 | 138 | else if(tempSen2 < tempTrabajo) |
| davicone | 3:e060cff29402 | 139 | { |
| davicone | 3:e060cff29402 | 140 | reflector2 = Encendido; |
| davicone | 3:e060cff29402 | 141 | pc.printf("Reflector 2: Encendido\r\n"); |
| davicone | 3:e060cff29402 | 142 | } |
| davicone | 3:e060cff29402 | 143 | |
| davicone | 3:e060cff29402 | 144 | // ------------------------------ Controlar Reflector 3 |
| davicone | 3:e060cff29402 | 145 | if(tempSen3 > tempTrabajo) |
| davicone | 3:e060cff29402 | 146 | { |
| davicone | 3:e060cff29402 | 147 | reflector3 = Apagado; |
| davicone | 3:e060cff29402 | 148 | pc.printf("Reflector 3: Apagado\r\n"); |
| davicone | 3:e060cff29402 | 149 | } |
| davicone | 3:e060cff29402 | 150 | else if(tempSen3 < tempTrabajo) |
| davicone | 3:e060cff29402 | 151 | { |
| davicone | 3:e060cff29402 | 152 | reflector3 = Encendido; |
| davicone | 3:e060cff29402 | 153 | pc.printf("Reflector 3: Encendido\r\n"); |
| davicone | 3:e060cff29402 | 154 | } |
| davicone | 3:e060cff29402 | 155 | |
| davicone | 3:e060cff29402 | 156 | // ------------------------------ Controlar Reflector 4 |
| davicone | 3:e060cff29402 | 157 | if(tempSen4 > tempTrabajo) |
| davicone | 3:e060cff29402 | 158 | { |
| davicone | 3:e060cff29402 | 159 | reflector4 = Apagado; |
| davicone | 3:e060cff29402 | 160 | pc.printf("Reflector 4: Apagado\r\n"); |
| davicone | 3:e060cff29402 | 161 | } |
| davicone | 3:e060cff29402 | 162 | else if(tempSen4 < tempTrabajo) |
| davicone | 3:e060cff29402 | 163 | { |
| davicone | 3:e060cff29402 | 164 | reflector4 = Encendido; |
| davicone | 3:e060cff29402 | 165 | pc.printf("Reflector 4: Encendido\r\n"); |
| davicone | 3:e060cff29402 | 166 | } |
| davicone | 0:ac833c85625c | 167 | |
| davicone | 5:cc6ff3f4aca1 | 168 | while((pausaProceso == Si) && (finProceso == No)) // ---------------------------------- Proceso Pausado |
| davicone | 0:ac833c85625c | 169 | { |
| davicone | 0:ac833c85625c | 170 | pc.printf("Proceso Puasado\r\n"); |
| davicone | 3:e060cff29402 | 171 | // Apagar Ventiladores |
| davicone | 3:e060cff29402 | 172 | ventilador1 = 0; |
| davicone | 3:e060cff29402 | 173 | ventilador2 = 0; |
| davicone | 3:e060cff29402 | 174 | pc.printf("Ventiladores Apagados\r\n"); |
| davicone | 3:e060cff29402 | 175 | reflector1 = Apagado; |
| davicone | 3:e060cff29402 | 176 | reflector2 = Apagado; |
| davicone | 3:e060cff29402 | 177 | reflector3 = Apagado; |
| davicone | 3:e060cff29402 | 178 | reflector4 = Apagado; |
| davicone | 3:e060cff29402 | 179 | pc.printf("Reflectores Apagados\r\n"); |
| davicone | 3:e060cff29402 | 180 | wait(1); |
| davicone | 0:ac833c85625c | 181 | } |
| davicone | 5:cc6ff3f4aca1 | 182 | wait(1); |
| davicone | 0:ac833c85625c | 183 | } |
| davicone | 0:ac833c85625c | 184 | |
| davicone | 0:ac833c85625c | 185 | pc.printf("Proceso Terminado\r\n"); |
| davicone | 5:cc6ff3f4aca1 | 186 | while(1); |
| davicone | 0:ac833c85625c | 187 | } |
| davicone | 0:ac833c85625c | 188 | |
| davicone | 0:ac833c85625c | 189 | |
| davicone | 0:ac833c85625c | 190 | // --------------------------------------------------------------------------- Funciones |
| davicone | 0:ac833c85625c | 191 | |
| davicone | 0:ac833c85625c | 192 | // --------------------------------------------------------------------------- LeerSerie |
| davicone | 0:ac833c85625c | 193 | void LeerSerie(void) |
| davicone | 0:ac833c85625c | 194 | { |
| davicone | 0:ac833c85625c | 195 | comando = pc.getc(); |
| davicone | 0:ac833c85625c | 196 | switch(comando) |
| davicone | 0:ac833c85625c | 197 | { |
| davicone | 0:ac833c85625c | 198 | case 'I': |
| davicone | 0:ac833c85625c | 199 | inicioProceso = Si; |
| davicone | 0:ac833c85625c | 200 | // Guardar Tiempo |
| davicone | 0:ac833c85625c | 201 | // Guardar Temperatura |
| davicone | 0:ac833c85625c | 202 | pc.scanf("%s %s",sTiempo, sTemperatura); |
| davicone | 0:ac833c85625c | 203 | pc.printf("\r\n"); |
| davicone | 0:ac833c85625c | 204 | pc.printf(sTiempo); |
| davicone | 0:ac833c85625c | 205 | pc.printf("\r\n"); |
| davicone | 0:ac833c85625c | 206 | pc.printf(sTemperatura); |
| davicone | 0:ac833c85625c | 207 | pc.printf("\r\n"); |
| davicone | 0:ac833c85625c | 208 | |
| davicone | 0:ac833c85625c | 209 | tiempoFinal = atoi(sTiempo); |
| davicone | 0:ac833c85625c | 210 | tempTrabajo = atoi(sTemperatura); |
| davicone | 0:ac833c85625c | 211 | break; |
| davicone | 0:ac833c85625c | 212 | |
| davicone | 0:ac833c85625c | 213 | case 'P': |
| davicone | 0:ac833c85625c | 214 | pausaProceso = Si; |
| davicone | 0:ac833c85625c | 215 | break; |
| davicone | 0:ac833c85625c | 216 | |
| davicone | 0:ac833c85625c | 217 | case 'F': |
| davicone | 0:ac833c85625c | 218 | finProceso = Si; |
| davicone | 0:ac833c85625c | 219 | break; |
| davicone | 0:ac833c85625c | 220 | |
| davicone | 0:ac833c85625c | 221 | case 'R': |
| davicone | 0:ac833c85625c | 222 | pausaProceso = No; |
| davicone | 0:ac833c85625c | 223 | break; |
| davicone | 0:ac833c85625c | 224 | |
| davicone | 0:ac833c85625c | 225 | } |
| davicone | 3:e060cff29402 | 226 | } |
| davicone | 3:e060cff29402 | 227 | |
| jeka | 1:677ecfe29f10 | 228 | |
| jeka | 2:7e518b8dcda8 | 229 | //----------------------------------------------------Leer temperatura |
| jeka | 1:677ecfe29f10 | 230 | void LeerSensores(void) |
| jeka | 1:677ecfe29f10 | 231 | { |
| davicone | 4:9d435331bbc7 | 232 | /*int i; |
| davicone | 3:e060cff29402 | 233 | //-------------------------------------------------------------------------- sensor 1 |
| davicone | 3:e060cff29402 | 234 | //----------------------------- Se realizan múltiples lecturas para sacar un promedio de voltaje |
| davicone | 3:e060cff29402 | 235 | for ( i=0; i< numMuestreos; i++) |
| davicone | 3:e060cff29402 | 236 | { |
| davicone | 3:e060cff29402 | 237 | adcTempSen1[i] = pinSen1.read_u16(); |
| davicone | 3:e060cff29402 | 238 | wait(0.01); |
| davicone | 3:e060cff29402 | 239 | } |
| davicone | 3:e060cff29402 | 240 | // ---------------------------- Se calcula el promedio |
| davicone | 3:e060cff29402 | 241 | proSen1 = 0; |
| davicone | 3:e060cff29402 | 242 | for (i=0; i< numMuestreos; i++) |
| davicone | 3:e060cff29402 | 243 | { |
| davicone | 3:e060cff29402 | 244 | proSen1 += adcTempSen1[i]; |
| davicone | 3:e060cff29402 | 245 | } |
| davicone | 3:e060cff29402 | 246 | proSen1 /= numMuestreos; |
| davicone | 4:9d435331bbc7 | 247 | |
| jeka | 1:677ecfe29f10 | 248 | |
| davicone | 3:e060cff29402 | 249 | //-------------------------------------------------------------------------- sensor 2 |
| davicone | 3:e060cff29402 | 250 | //----------------------------- Se realizan múltiples lecturas para sacar un promedio de voltaje |
| davicone | 3:e060cff29402 | 251 | for ( i=0; i< numMuestreos; i++) |
| davicone | 3:e060cff29402 | 252 | { |
| davicone | 3:e060cff29402 | 253 | adcTempSen2[i] = pinSen2.read_u16(); |
| davicone | 3:e060cff29402 | 254 | wait(0.01); |
| davicone | 3:e060cff29402 | 255 | } |
| davicone | 3:e060cff29402 | 256 | // ---------------------------- Se calcula el promedio |
| davicone | 3:e060cff29402 | 257 | proSen2 = 0; |
| davicone | 3:e060cff29402 | 258 | for (i=0; i< numMuestreos; i++) |
| davicone | 3:e060cff29402 | 259 | { |
| davicone | 3:e060cff29402 | 260 | proSen2 += adcTempSen2[i]; |
| davicone | 3:e060cff29402 | 261 | } |
| davicone | 3:e060cff29402 | 262 | proSen2 /= numMuestreos; |
| davicone | 4:9d435331bbc7 | 263 | |
| jeka | 1:677ecfe29f10 | 264 | |
| davicone | 3:e060cff29402 | 265 | //-------------------------------------------------------------------------- sensor 3 |
| davicone | 3:e060cff29402 | 266 | //----------------------------- Se realizan múltiples lecturas para sacar un promedio de voltaje |
| davicone | 3:e060cff29402 | 267 | for ( i=0; i< numMuestreos; i++) |
| davicone | 3:e060cff29402 | 268 | { |
| davicone | 3:e060cff29402 | 269 | adcTempSen3[i] = pinSen3.read_u16(); |
| davicone | 3:e060cff29402 | 270 | wait(0.01); |
| davicone | 3:e060cff29402 | 271 | } |
| davicone | 3:e060cff29402 | 272 | // ---------------------------- Se calcula el promedio |
| davicone | 3:e060cff29402 | 273 | proSen3 = 0; |
| davicone | 3:e060cff29402 | 274 | for (i=0; i< numMuestreos; i++) |
| davicone | 3:e060cff29402 | 275 | { |
| davicone | 3:e060cff29402 | 276 | proSen3 += adcTempSen3[i]; |
| davicone | 3:e060cff29402 | 277 | } |
| davicone | 3:e060cff29402 | 278 | proSen3 /= numMuestreos; |
| davicone | 4:9d435331bbc7 | 279 | |
| davicone | 3:e060cff29402 | 280 | |
| davicone | 3:e060cff29402 | 281 | //-------------------------------------------------------------------------- sensor 4 |
| davicone | 3:e060cff29402 | 282 | //----------------------------- Se realizan múltiples lecturas para sacar un promedio de voltaje |
| davicone | 3:e060cff29402 | 283 | for ( i=0; i< numMuestreos; i++) |
| davicone | 3:e060cff29402 | 284 | { |
| davicone | 3:e060cff29402 | 285 | adcTempSen4[i] = pinSen4.read_u16(); |
| davicone | 3:e060cff29402 | 286 | wait(0.01); |
| davicone | 3:e060cff29402 | 287 | } |
| davicone | 3:e060cff29402 | 288 | // ---------------------------- Se calcula el promedio |
| davicone | 3:e060cff29402 | 289 | proSen4 = 0; |
| davicone | 3:e060cff29402 | 290 | for (i=0; i< numMuestreos; i++) |
| davicone | 3:e060cff29402 | 291 | { |
| davicone | 3:e060cff29402 | 292 | proSen4 += adcTempSen4[i]; |
| davicone | 3:e060cff29402 | 293 | } |
| davicone | 3:e060cff29402 | 294 | proSen4 /= numMuestreos; |
| jeka | 1:677ecfe29f10 | 295 | |
| jeka | 1:677ecfe29f10 | 296 | |
| davicone | 4:9d435331bbc7 | 297 | tempSen1 = convertirTemp(proSen1); |
| davicone | 4:9d435331bbc7 | 298 | tempSen2 = convertirTemp(proSen2); |
| davicone | 4:9d435331bbc7 | 299 | tempSen3 = convertirTemp(proSen3); |
| davicone | 4:9d435331bbc7 | 300 | tempSen4 = convertirTemp(proSen4);*/ |
| davicone | 4:9d435331bbc7 | 301 | |
| davicone | 4:9d435331bbc7 | 302 | // SOLO TEST |
| davicone | 4:9d435331bbc7 | 303 | tempSen1 = 50; |
| davicone | 4:9d435331bbc7 | 304 | tempSen2 = 50; |
| davicone | 4:9d435331bbc7 | 305 | tempSen3 = 50; |
| davicone | 4:9d435331bbc7 | 306 | tempSen4 = 50; |
| davicone | 4:9d435331bbc7 | 307 | // ----- TEST |
| davicone | 3:e060cff29402 | 308 | |
| davicone | 3:e060cff29402 | 309 | pc.printf("Sensor1: %.2f C. /r /n ", tempSen1); |
| davicone | 3:e060cff29402 | 310 | pc.printf("Sensor2: %.2f C. /r /n ", tempSen2); |
| davicone | 3:e060cff29402 | 311 | pc.printf("Sensor3: %.2f C. /r /n ", tempSen3); |
| davicone | 3:e060cff29402 | 312 | pc.printf("Sensor4: %.2f C. /r /n ", tempSen4); |
| jeka | 1:677ecfe29f10 | 313 | |
| davicone | 3:e060cff29402 | 314 | } |
| davicone | 3:e060cff29402 | 315 | |
| davicone | 3:e060cff29402 | 316 | // --------------------------------------------------------------------------- convertirTemp |
| davicone | 3:e060cff29402 | 317 | float convertirTemp(float promedio) |
| davicone | 3:e060cff29402 | 318 | { |
| davicone | 3:e060cff29402 | 319 | float temperatura; |
| jeka | 1:677ecfe29f10 | 320 | |
| davicone | 3:e060cff29402 | 321 | // convertir el promedio a resistencia |
| davicone | 3:e060cff29402 | 322 | promedio = 65535 / promedio - 1; |
| davicone | 3:e060cff29402 | 323 | promedio = ResistSerie / promedio; |
| davicone | 3:e060cff29402 | 324 | temperatura = promedio / NominalTermistor; // (R/Ro) |
| davicone | 3:e060cff29402 | 325 | temperatura = log(temperatura); // ln(R/Ro) |
| davicone | 3:e060cff29402 | 326 | temperatura /= CoeficienteB; // 1/B * ln(R/Ro) |
| davicone | 3:e060cff29402 | 327 | temperatura += 1.0 / (TempNominal + 273.15); // + (1/To) |
| davicone | 3:e060cff29402 | 328 | temperatura = 1.0 / temperatura; // Invertir |
| davicone | 3:e060cff29402 | 329 | temperatura -= 273.15; // convertir a C |
| davicone | 3:e060cff29402 | 330 | return temperatura; |
| davicone | 3:e060cff29402 | 331 | } |
| davicone | 3:e060cff29402 | 332 | |
| davicone | 5:cc6ff3f4aca1 | 333 | // --------------------------------------------------------------------------- Contador |
| davicone | 5:cc6ff3f4aca1 | 334 | void Contador(void) |
| davicone | 5:cc6ff3f4aca1 | 335 | { |
| davicone | 5:cc6ff3f4aca1 | 336 | |
| davicone | 5:cc6ff3f4aca1 | 337 | } |
| davicone | 5:cc6ff3f4aca1 | 338 | |
| davicone | 3:e060cff29402 | 339 |
