LCD TFT проблема с выводом значения. температуры
- Войдите на сайт для отправки комментариев
Втр, 06/08/2019 - 12:42
Приветик всем.
У меня проблема не могу вывести значение температуры (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); }
ошибка кода на 69
проблема решена я дура. myGLCD.printNumI надо было.