Hola,
Vereis, estoy con un proyecto entre manos en el q mido temperaturas con sondas NTC utilizando un
PIC16F876 desde 0º a 90º con una precision de 0.1º.
Para obtener una varible con la q obtener la temperatura utilizo un inversor trigger-schmitt con una topologia como la q muestro en la siguiente figura:
Con esto cosigo una onda cuadrada en la q la frecuencia depende de la temperatura. Despejando la temperatura de la ecuacion, me queda algo asi como:
Como esto seria muy complicado de implementar con el PIC y pensando como podria implementar esto, di con un programa llamado WEKA que creando una tabla de excel con la acuacion q puse arriba calcula una serie de acuaciones lineales (normalmente 16) q responden a los valores introducidos en la tabla. Os pego un fragmento para q os hagais una idea.
F <= 657.273 : | F <= 415.715 : | | F <= 324.639 : | | | F <= 286.431 : LM1 (28/0.099%) | | | F > 286.431 : LM2 (28/0.097%) | | F > 324.639 : | | | F <= 368.624 : LM3 (29/0.102%) | | | F > 368.624 : LM4 (28/0.093%)
| LM num: 1 -- T = 0.0815 * F - 20.5654
LM num: 2 -- T = 0.0733 * F - 18.2149
LM num: 3 -- T = 0.0659 * F - 15.8274
LM num: 4 -- T = 0.0595 * F - 13.4441
|
Bueno, despues de este peñazo de introducción, voy a ir un poco al grano. Tengo q hacer esas operaciones lo mas rapido q sea posible y tengo varias opciones y no se cual utilizar o será la mas adecuada...
- Puedo utilizar operaciones en coma flotante directamente.
- Puedo multiplicar previamente por 10000 y luego en el programa utilizar coma fija y dividir entre 10000.
- Tambien he pensado en hacer 16 codigos diferentes para cada ecuación optimizando las operaciones para q sea lo mas rapido posible.
No se, como lo hariais vosotros? Se os ocurre alguna idea o algun cambio?
Saludos! y si has leido hasta aqui te mereces un premio! jejeje gracias!