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