LCD TFT проблема с выводом значения. температуры

Gluck-Truck
Gluck-Truck аватар
Offline
Зарегистрирован: 17.06.2019

Приветик всем.

У меня проблема не могу вывести значение температуры (temperature) на LCD экран, посмотрела форумы. решения не нашла. все заканчивается на неясном. 

Как правильно этот код прописать? подскажите пожалуйста. 

 

 

#include <OneWire.h>
#include <UTFT.h>   
extern uint8_t BigFont[];
extern uint8_t SmallFont[];
OneWire ds(8);

// подключаем библиотеку UTFT для работы с дисплеем
UTFT myGLCD(TFT32MEGA_2, 38, 39, 40, 41);               // объявляем объект myGLCD класса библиотеки UTFT указывая тип дисплея TFT32MEGA и номера выводов Arduino к которым подключён дисплей: RS, WR, CS, RST. Выводы параллельной шины данных не указываются
//          TFT32MEGA_2                             // если изображение на дисплее отображается зеркально, значит для инициализации Вашего дисплея, нужно указать не TFT32MEGA, а TFT32MEGA_2.
                                                    // (тип TFT32MEGA - для дисплеев на базе чипа ILI9481, а тип TFT32MEGA_2 - для дисплеев на базе чипа HX8357С).
extern unsigned short image_128x64[0x2000];         // объявляем массив image_128x64 который был определён во внешнем файле
                                                    //
void setup(){
  Serial.begin(9600);//
   myGLCD.InitLCD();                                // инициируем дисплей
   myGLCD.clrScr();
   myGLCD.clrScr();
                                      // стираем всю информацию с дисплея
  myGLCD.setFont(SmallFont);                           // устанавливаем маленький шрифт
  myGLCD.setColor(VGA_WHITE);                          // устанавливаем цвет текста
  myGLCD.print("turok.ru | production", CENTER, 50); // выводим текст на дисплей
  myGLCD.setFont(BigFont);                             // устанавливаем большой шрифт
  myGLCD.setColor(VGA_WHITE);                           // устанавливаем цвет текста
    myGLCD.print("TUROK", CENTER, 250);           
  myGLCD.drawBitmap(300,100,140,99,image_128x64);   delay(1);
  myGLCD.drawBitmap(290,100,140,99,image_128x64);delay(1);
  myGLCD.drawBitmap(280,100,140,99,image_128x64);delay(1);
  myGLCD.drawBitmap(270,100,140,99,image_128x64);delay(1);
  myGLCD.drawBitmap(260,100,140,99,image_128x64);delay(1);
  myGLCD.drawBitmap(250,100,140,99,image_128x64);delay(1);
  myGLCD.drawBitmap(240,100,140,99,image_128x64);delay(1);
  myGLCD.drawBitmap(230,100,140,99,image_128x64);delay(1);
  myGLCD.drawBitmap(220,100,140,99,image_128x64);delay(1);
  myGLCD.drawBitmap(210,100,140,99,image_128x64);delay(1);
  myGLCD.drawBitmap(200,100,140,99,image_128x64);delay(1);
  myGLCD.drawBitmap(190,100,140,99,image_128x64);delay(1);
  myGLCD.drawBitmap(180,100,140,99,image_128x64);delay(1);
  myGLCD.drawBitmap(170,100,140,99,image_128x64);delay(1);
   delay(1000);
  myGLCD.clrScr();
  myGLCD.print("Temperature:", LEFT, 50); 
}                                                   //
void loop()
{
  
  // Определяем температуру от датчика DS18b20
  byte data[2]; // Место для значения температуры
  
  ds.reset(); // Начинаем взаимодействие со сброса всех предыдущих команд и параметров
  ds.write(0xCC); // Даем датчику DS18b20 команду пропустить поиск по адресу. В нашем случае только одно устрйоство 
  ds.write(0x44); // Даем датчику DS18b20 команду измерить температуру. Само значение температуры мы еще не получаем - датчик его положит во внутреннюю память
  
  delay(100); // Микросхема измеряет температуру, а мы ждем.  
  
  ds.reset(); // Теперь готовимся получить значение измеренной температуры
  ds.write(0xCC); 
  ds.write(0xBE); // Просим передать нам значение регистров со значением температуры

  // Получаем и считываем ответ
  data[0] = ds.read(); // Читаем младший байт значения температуры
  data[1] = ds.read(); // А теперь старший

  // Формируем итоговое значение: 
  //    - сперва "склеиваем" значение, 
  //    - затем умножаем его на коэффициент, соответсвующий разрешающей способности (для 12 бит по умолчанию - это 0,0625)
  float temperature =  ((data[1] << 8) | data[0]) * 0.0625;
  
  // Выводим полученное значение температуры на монитор 
   myGLCD.print(temperature, CENTER,50);
  delay(100);
  myGLCD.print("     ", CENTER,50);
  
}

 

Gluck-Truck
Gluck-Truck аватар
Offline
Зарегистрирован: 17.06.2019

ошибка кода на 69

exit status 1
no matching function for call to 'UTFT::print(float&, int, int)'
Gluck-Truck
Gluck-Truck аватар
Offline
Зарегистрирован: 17.06.2019

проблема решена я дура. myGLCD.printNumI надо было. 

#include <OneWire.h>
#include <UTFT.h>   
extern uint8_t BigFont[];
extern uint8_t SmallFont[];
OneWire ds(8);

// подключаем библиотеку UTFT для работы с дисплеем
UTFT myGLCD(TFT32MEGA_2, 38, 39, 40, 41);               // объявляем объект myGLCD класса библиотеки UTFT указывая тип дисплея TFT32MEGA и номера выводов Arduino к которым подключён дисплей: RS, WR, CS, RST. Выводы параллельной шины данных не указываются
//          TFT32MEGA_2                             // если изображение на дисплее отображается зеркально, значит для инициализации Вашего дисплея, нужно указать не TFT32MEGA, а TFT32MEGA_2.
                                                    // (тип TFT32MEGA - для дисплеев на базе чипа ILI9481, а тип TFT32MEGA_2 - для дисплеев на базе чипа HX8357С).
extern unsigned short image_128x64[0x2000];         // объявляем массив image_128x64 который был определён во внешнем файле
                                                    //
void setup(){
  Serial.begin(9600);//
   myGLCD.InitLCD();                                // инициируем дисплей
   myGLCD.clrScr();
   myGLCD.clrScr();
                                      // стираем всю информацию с дисплея
  myGLCD.setFont(SmallFont);                           // устанавливаем маленький шрифт
  myGLCD.setColor(VGA_WHITE);                          // устанавливаем цвет текста
  myGLCD.print("turok.ru | production", CENTER, 50); // выводим текст на дисплей
  myGLCD.setFont(BigFont);                             // устанавливаем большой шрифт
  myGLCD.setColor(VGA_WHITE);                           // устанавливаем цвет текста
    myGLCD.print("TUROK", CENTER, 250);           
  myGLCD.drawBitmap(300,100,140,99,image_128x64);   delay(1);
  myGLCD.drawBitmap(290,100,140,99,image_128x64);delay(1);
  myGLCD.drawBitmap(280,100,140,99,image_128x64);delay(1);
  myGLCD.drawBitmap(270,100,140,99,image_128x64);delay(1);
  myGLCD.drawBitmap(260,100,140,99,image_128x64);delay(1);
  myGLCD.drawBitmap(250,100,140,99,image_128x64);delay(1);
  myGLCD.drawBitmap(240,100,140,99,image_128x64);delay(1);
  myGLCD.drawBitmap(230,100,140,99,image_128x64);delay(1);
  myGLCD.drawBitmap(220,100,140,99,image_128x64);delay(1);
  myGLCD.drawBitmap(210,100,140,99,image_128x64);delay(1);
  myGLCD.drawBitmap(200,100,140,99,image_128x64);delay(1);
  myGLCD.drawBitmap(190,100,140,99,image_128x64);delay(1);
  myGLCD.drawBitmap(180,100,140,99,image_128x64);delay(1);
  myGLCD.drawBitmap(170,100,140,99,image_128x64);delay(1);
   delay(1000);
  myGLCD.clrScr();
  myGLCD.print("Temperature:", LEFT, 50); 
}                                                   //
void loop()
{
  
  // Определяем температуру от датчика DS18b20
  byte data[2]; // Место для значения температуры
  
  ds.reset(); // Начинаем взаимодействие со сброса всех предыдущих команд и параметров
  ds.write(0xCC); // Даем датчику DS18b20 команду пропустить поиск по адресу. В нашем случае только одно устрйоство 
  ds.write(0x44); // Даем датчику DS18b20 команду измерить температуру. Само значение температуры мы еще не получаем - датчик его положит во внутреннюю память
  
  delay(100); // Микросхема измеряет температуру, а мы ждем.  
  
  ds.reset(); // Теперь готовимся получить значение измеренной температуры
  ds.write(0xCC); 
  ds.write(0xBE); // Просим передать нам значение регистров со значением температуры

  // Получаем и считываем ответ
  data[0] = ds.read(); // Читаем младший байт значения температуры
  data[1] = ds.read(); // А теперь старший

  // Формируем итоговое значение: 
  //    - сперва "склеиваем" значение, 
  //    - затем умножаем его на коэффициент, соответсвующий разрешающей способности (для 12 бит по умолчанию - это 0,0625)
  float temperature =  ((data[1] << 8) | data[0]) * 0.0625;
  
  // Выводим полученное значение температуры в монитор порта
myGLCD.printNumI(temperature, CENTER,50);
  delay(100);
  myGLCD.print("     ", CENTER,50);
  
}