Problema con calcolo della temperatura partendo esadecimale.

di il
2 risposte

Problema con calcolo della temperatura partendo esadecimale.

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

  • Re: Problema con calcolo della temperatura partendo esadecimale.

    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
  • Re: Problema con calcolo della temperatura partendo esadecimale.

    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