Все в роде отмучились. Подправил пробелы, благодаря akl. и теперь температура обновляется ими только на пороговых значениях. Код может и глупость, но работает. Низкий поклон всем. Спойлер: код Код (C++): uint32_t myTimer1; bool refresh=false; //>10 bool refresh2=false; //<10 //bool refresh3=false; //меньше -9 int temp_old; #include <OneWire.h> #include <Tiny4kOLED.h> //библтотека OLED #include "HISKYF21_font.h" // шрифт const DCfont *currentFont = FONTHISKYF21; OneWire ds(4); // Создаем объект OneWire для шины 1-Wire, с помощью которого будет осуществляться работа с датчиком void setup(){ oled.begin(64, 48, sizeof(tiny4koled_init_64x48r), tiny4koled_init_64x48r); oled.clear(); oled.on(); } void loop(){ if (millis() - myTimer1 >= 1000) { myTimer1 = millis(); byte data[2]; // Место для значения температуры // Определяем температуру от датчика DS18b20 ds.reset(); // Начинаем взаимодействие со сброса всех предыдущих команд и параметров ds.write(0xCC); // Даем датчику DS18b20 команду пропустить поиск по адресу. В нашем случае только одно устрйоство ds.write(0x44); // Даем датчику DS18b20 команду измерить температуру. Само значение температуры мы еще не получаем - датчик его положит во внутреннюю память ds.reset(); // Теперь готовимся получить значение измеренной температуры ds.write(0xCC); ds.write(0xBE); // Просим передать нам значение регистров со значением температуры data[0] = ds.read(); // Получаем и считываем ответ. Читаем младший байт значения температуры data[1] = ds.read(); // А теперь старший float temperature = ((data[1] << 8) | data[0]) * 0.0625; //вычесление температуры if(temperature>=10) //порог температуры {refresh2=false; temp_old=temperature; if(fresh==false) //обновлние строки температуры {oled.setCursor(7,2); oled.print(F(",,,,,,,")); //на самом деле это пробелы)) refresh=true;} if(refresh==true) {oled.setCursor(16, 0); oled.setFont(FONT6X8); oled.print(F("TEMP>10:")); //заголовок oled.setFont((FONTHISKYF21)); //огромный шрифт oled.setCursor(9,2); oled.print((temperature),1); //вывод температуры oled.setCursor(50,2); oled.print(F("/")); //знак цельсия} } } if(temperature<10) {refresh=false; temp_old=temperature; if(refresh2==false) //обновлние строки температуры {oled.setFont((FONTHISKYF21)); oled.setCursor(1,2); oled.print(F(",,,,,,,,")); //на самом деле это пробелы)) refresh2=true;} if(refresh2==true) //||refresh2==false {oled.setCursor(16, 0); oled.setFont(FONT6X8); oled.print(F("TEMP<30:")); //заголовок oled.setFont((FONTHISKYF21)); //огромный шрифт oled.setCursor(11,2); oled.print((temperature),1); //вывод температуры oled.setCursor(48,2); oled.print(F("/")); //знак цельсия} } } }