SBorovkov, спасибо за информацию.
Честно скажу, большинство я не понял того что вы написали... Не хватает базы, но интуитивно все получилось. Единственное, нужно будет все же сделать реальные замеры вплоть до крайних точек температурного диапазона и увеличить до 16-20 точек аппроксимацию.
Ниже текущий код.. может есть у кого что добавить/изменить?
PHP код:
#include <LiquidCrystal.h>
#include <avr/pgmspace.h>  
#define Temp1Count 10 //Увеличил до 10 значений

LiquidCrystal lcd(1211105432);
int analog 0;    // Аналоговый вход для температурного датчика
int K 1;         //Калибровочный коэффициент по входу от датчика
int t;       //Температура
int P;         //Мощность вентиляторов
int V;        //Значение напряжения на входе
int T 75;        //Определяем нужную температуру двигателя
uint16_t Temp1[Temp1Count][2PROGMEM = {{471,46}, {655,58}, {713,65}, {772,74}, {775,80}, {802,90}, {823,100}, {839,110}, {852120}, {861130}}; //Точки аппроксимации

void setup() {
    
Serial.begin(9600);
    
lcd.begin(162);
    
lcd.print("   WELCOME TO   ");
    
lcd.setCursor(0,1);
    
lcd.print("*THERMOCONTROL*");
    
delay(2000);
    
lcd.clear();
}

void loop() {
    
int i;
    
uint16_t InTemp;
    
uint16_t RealTemp;

    
uint16_t InLeftTemp;
    
InTemp 1024 analogRead(0);
    
i=Temp1Count;
    do
    {
    
i--;
    
InLeftTemp=pgm_read_word(&Temp1[i][0]);
    }
    while ((
i>=0)&&(InTemp<InLeftTemp));
    
uint16_t InRightTemp=pgm_read_word(&Temp1[i+1][0]);
    
uint16_t OutLeftTemp=pgm_read_word(&Temp1[i][1]);
    
uint16_t OutRightTemp=pgm_read_word(&Temp1[i+1][1]);

    
RealTemp=OutLeftTemp+(OutRightTemp-OutLeftTemp)*(InTemp-InLeftTemp)/(InRightTemp-InLeftTemp);
    if (
RealTemp==130);
    
    
//Спасибо SBorovkov

  
float V = (5.00 1024.00 analogRead(analog)) * K//Переводим входные данные к абсолютному напряжению
  
if (50;
  if (
>= 550;
  if (
>= 470;
  if (
>= 390;
  if (
>= 2120;  
  if (
>= 1160;  
  if (
>= T200;  
  if (
>= 1255;  
  
analogWrite (6P); //Запускаем вентиляторы
  
Serial.println(PDEC);  //Выводим информацию на всякий случай
  
lcd.clear();
  
lcd.setCursor(0,0);
  
lcd.print("VLT:");
  
lcd.setCursor(4,0);
  
lcd.print(V);
  
lcd.setCursor(8,0);
  
lcd.print("*TP:");
  
lcd.setCursor(12,0);
  
lcd.print(RealTemp);
  
lcd.setCursor(15,0);
  
lcd.print("C");  
  
lcd.setCursor(0,1);
  
lcd.print("PWR:");
  
lcd.setCursor(4,1);
  
lcd.print(100.00/255.00*P);
//  lcd.setCursor(7,1);
  
lcd.print("%");
  
delay(300);