Wady i zalety:
+ czujnik analogowy jest bardziej odporny na zakłócenia, można go podłączyć zwykłym przewodem, w porównaniu do czujników cyfrowych
+ czujnik analogowy łatwo można sprawdzić czy jest sprawny, nie trzeba konwertera, wystarczy zwykły miernik elektryczny
- żeby podłączyć czujnik temperatury analogowy, urządzenie odczytujące musi być wyposażone w przetwornik ADC
- można podłączyć tylko jeden czujnik w jeden port ADC
3.3V === NTC === ADC (MCU) === 10k (rezystor) === GND

Szybka metoda odczytu temperatury:
Code: Select all
float NTC_Convert(uint16_t value)
{
const float maxADC = 4095.0; // maksymalna wartosc przetwornika ADC
const float resistor = 10000; // rezystor dzielnika napiecia
const float c1 = 1.009249522e-03, c2 = 2.378405444e-04, c3 = 2.019202697e-07;
float resistanceLog, resistance, temperature;
resistance = resistor * (maxADC / (float)value - 1.0);
resistanceLog = log(resistance);
temperature = (1.0 / (c1 + c2 * resistanceLog + c3 * resistanceLog * resistanceLog * resistanceLog));
temperature -= 273.15;
return temperature;
}
Code: Select all
float NTC_Convert(uint16_t value)
{
const float maxADC = 4095.0; // maksymalna wartosc przetwornika ADC
const float resistor = 10000; // rezystor dzielnika napiecia
const float nominalResistance = 10000; // nominalna wartosc rezystancji
const float nominalTemperature = 25; // nominalna wartosc temperatury
const float coefficient = 3950; // nominalna wartosc beta (dla danego czujnika)
//const float coefficient = 3435; // nominalna wartosc beta (dla danego czujnika)
float resistance, temperature;
resistance = resistor * (maxADC / (float)value - 1.0);
temperature = resistance / nominalResistance;
temperature = log(temperature);
temperature /= coefficient;
temperature += 1.0 / (nominalTemperature + 273.15);
temperature = 1.0 / temperature;
temperature -= 273.15;
return temperature;
}
