Посмотрел пример апроксимации из темы
Получился следующий код:
Код:
#define Temp1Count 8
#include <avr/pgmspace.h> 
uint16_t Temp1[Temp1Count][2] PROGMEM = 
{
  {77.95155709,-25,}, //первое число на входе, второе температура
  {80.18392652,-24.5},
  {256.232939,0},
  {536.3809524,25},
  {772.1414862,50},
  {903.0706326,75},
  {964.8461591,100},
  {993.3008629,125}
};
  
const int in = 0;
int sensor = 0;
int j;
void setup()
{
  Serial.begin(9600);
}

void loop() {
	sensor = analogRead(in);
        Serial.print("Analog = ");
	Serial.println(sensor);
        uint16_t InTemp; 
        uint16_t RealTemp; 
        uint16_t InLeftTemp; 
        InTemp= sensor; 
        j=Temp1Count; 
        do 
          { 
            j--; 
            InLeftTemp=pgm_read_word(&Temp1[j][0]); 
          } 
        while ((j>=0)&&(InTemp<InLeftTemp)); 
        uint16_t InRightTemp=pgm_read_word(&Temp1[j+1][0]); 
        uint16_t OutLeftTemp=pgm_read_word(&Temp1[j][1]); 
        uint16_t OutRightTemp=pgm_read_word(&Temp1[j+1][1]); 
        RealTemp=OutLeftTemp+(OutRightTemp-OutLeftTemp)*(InTemp-InLeftTemp)/(InRightTemp-InLeftTemp);
        Serial.println(RealTemp);    
        delay(1000);
 }
Выводит целые значения температуры (24 28 30).
Вопрос, можно ли сделать чтобы выводились промежуточные значения? (24,5 28,3 30,8)