Всем привет. В общем "победил" вывод переменных, но как мне кажется через *опу. Ниже скетч:
PHP код:
/*
Программа термоконтроля за системой охлаждения ДВС. Использует плавную регулировку по ШИМ.
Может применяться и в других проектах, где исходные данные будет выдавать термистор (терморезистор).
В качестве исходных данных - 1 проводной температурный датчик (термистор(терморезистор))
двигателя с которого берется информация на штатную приборную панель автомобиля.
Т.к. датчик имеет нелинейную зависимость сопротивления (падения напряжения),
то необходима аппроксимация по заранее известным точкам. Чем выше температура,
тем ниже сопротивление и больше падение напряжения.
Для достоверной работы программы нужно ввести значения проходящего через датчик напряжения при
различных температурах, желательно во всем диапазоне его работы.
За аппроксимацию спасибо SBorovkov.
*/

#include <Metro.h> //Библиотека регулярных действий по интервалу времени
#include <LCD3Wire.h>
#include <avr/pgmspace.h>  //Подключаем макрос PROGMEM

#define LCD_LINES 2  // number of lines in your display
#define DOUT_PIN  11  // Dout pin
#define STR_PIN   12  // Strobe pin
#define CLK_PIN   10  // Clock pin

//create object to control an LCD.  
LCD3Wire lcd LCD3Wire(LCD_LINESDOUT_PINSTR_PINCLK_PIN); 

//*********************Параметры для работы термоконтроля ОЖ двигателя
#define EngineTemp1Count 14 //Количество точек аппроксимации
#define DestinationEngineTemp 90        //Определяем нужную температуру двигателя
#define EngineTempSensorPin 0 // Аналоговый вход для температурного датчика ОЖ ДВС
#define EnginePowerVentPin 6 //ШИМ выход на вентиляторы основного радиатора ДВС
//Задаем точки аппроксимации. Первая цифра - р\азность из 1024 и значения на входе от датчика
//(сделано для того чтобы развернуть график зависимости и сделать так чтобы с ростом температуры значение увеличивалось)
//не переводил в напряжение чтобы не морочиться и оперировать целыми числами с достаточной точностью;
//вторая цифра - значение температуры (заранее измеренное) при данном значении на выходе с датчика.
uint16_t EngineTemp1[EngineTemp1Count][2PROGMEM = {{0,0}, {471,46}, {635,56}, {702,64}, {723,71}, {729,75}, {764,80}, {793,85}, {81190}, {83695}, {862102}, {872110}, {882120}, {890130}};
//************************Процедуры по таймеру*************************
Metro PWMengineMetro Metro(10);  //Плавное изменение мощности вентиляторов каждые ХХ миллисекунд 
Metro LCDoutMetro Metro(10);   //Выводим информацию на ЖК каждые ХХ миллисекунд 

....................................................лишнее убрали........................

//***********************Выводим все что нам нужно на ЖК дисплей
if (LCDoutMetro.check() == 1){ 
//  lcd.clear();
  
lcd.cursorTo(1,0);
  
lcd.printIn("VLT:");
  
lcd.cursorTo(1,4);
  
char buf[10];
  
lcd.printIn(itoa(EngineVoltInbuf10)); //Входное напряжение с датчика
  
lcd.cursorTo(1,8);
  if (
EngineVoltIn 2.70) {
  
lcd.printIn("*TMP:");
  
lcd.cursorTo(1,13);
  
lcd.printIn("MIN"); //Ниже минимальной точки аппроксимации
  
}
  else if (
EngineVoltIn 0.65){
  
lcd.printIn("*TMP:");
  
lcd.cursorTo(1,13);
  
lcd.printIn("MAX"); //Выше максимальной точки аппроксимации
  
}
  else {
  
lcd.printIn("*TMP:");
  
lcd.cursorTo(1,13);
  
lcd.printIn(itoa(EngineRealTempbuf10)); //Аппроксимированная температура
  
lcd.printIn("  ");    
  }
  
lcd.cursorTo(2,0);
  
lcd.printIn("POWER:");
  
lcd.cursorTo(2,9);
  
lcd.printIn(itoa(EnginePowerVentPercentbuf10)); //Мощность вентиляторов
  
lcd.printIn("  ");  
  
lcd.cursorTo(2,12);  
  
lcd.printIn("%");
  
lcd.cursorTo(2,13);
  
lcd.printIn(itoa(EngineTargetVentPercentbuf10)); //Заданная мощность вентиляторов
  
lcd.printIn("  ");    
}  

Я так понял что этой библиотеке обязательно нужно преобразовать численное значение в символы... маразм... ну все бы ничего, да не могу вывести таким способом переменную EngineVoltIn типа float... вернее он выводит но без десятичных значений - только целое число. Как это победить? И обновляется информация на дисплее крайне медленно... ШИМ набирает с 0 до 100% за 2-3 минуты ))))) хотя должен за 2-3 секунды, а то и быстрее... Если закомментить вывод инфы на ЖК, то так и происходит. Что за грабли?