Problema con calcolo della temperatura partendo esadecimale.

di Anonimizzato4086 il
2 risposte
Salve ha tutti.
Ho un programma che leggendo un esadecimale mi dovrebbe "tirare fuori" la temperatura in Celcius, ma mi viene sballata di quasi 5 gradi(almeno dell'esempio che posto sotto; il risultato è sicuro perchè viene da un articolo scientifico così come le formule).Qualcuno di voi mi può essere di aiuto???

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <unistd.h>
uint16_t xconvert_thermistor_resistance(uint16_t thermistor)
{
    float    adc  = (float)thermistor;
    uint16_t Rthr = 10000 * (1023-adc) / adc;
    return   Rthr;
}

float   xconvert_thermistor_temperature(uint16_t thermistor)
{
    float temperature,temperatureCels, temperatureKelv,temperatureFah, a, b, c, Rthr;
    a  = 0.001307050;
    b  = 0.000214381;
    c  = 0.000000093;
    Rthr = xconvert_thermistor_resistance(thermistor);
    
    temperatureKelv = 1 / (a + b * log(Rthr) + c * pow(log(Rthr),3));


    temperatureCels = temperatureKelv - 273.15;   // Convert from Kelvin to Celcius

    temperatureFah = (temperatureCels * 9/5) + 32;

    //printf("debug 3: a=%lg b=%lg c=%lg Rt=%lg Kelv=%lg Cels=%lg Fah=%lg  \n",a,b,c,Rthr,temperatureKelv,temperatureCels,temperatureFah);

    return temperatureCels;
}

int main(){
    uint16_t thermistor = 0x01e1;
     printf("debug 0:thermistor=%u \n",thermistor);
printf ("Temp: %f\t", xconvert_thermistor_temperature(thermistor));
getchar()!='\n';
}

Il risultato è 22.47 e dovrebbe essere 27.53(naturalmente sono sbagliati anche le altre temperature, ma risolto questo penso di farcela anche con le altre)
Grazie

2 Risposte

  • Ciao anche noi abbiamo un problema con la trasformazione da esadecimale a temperatura. Dobbiamo fare un plugin per gimp e ci serve sapere a che temperatura corrisponde ogni colore. Dove hai trovato le formule? Per la trasformazione esiste solo quel metodo, o ne conosci altri?
    Mi dispiace per adesso non riusciamo ad esserti di aiuto, ma se ci sono novità lo postiamo qui.
    ci sentiamo
    ciao e grazie
  • infgraf ha scritto:


    Dove hai trovato le formule? Per la trasformazione esiste solo quel metodo, o ne conosci altri?
    le formule vengono da articoli scientifici nulla di inventato, io l'ho riscritto semplicemte in c...non so se vi possono servire al 100%
Devi accedere o registrarti per scrivere nel forum
2 risposte