Arduino mega2560+TFT 3.2`+ DS18B20 как вывести показания на экран
- Войдите на сайт для отправки комментариев
Пнд, 14/12/2015 - 11:08
Никак не получается вывести данные с датчика на экран с помощью SevenSegNumFont шрифта
#include <UTFT.h> #include <OneWire.h> #include <DallasTemperature.h> extern uint8_t SevenSegNumFont[]; UTFT myGLCD(ITDB32S, 38,39,40,41); #define ONE_WIRE_BUS 12 // Номер пина термометра OneWire oneWire(ONE_WIRE_BUS); // Pass our oneWire reference to Dallas Temperature. DallasTemperature sensors(&oneWire); // arrays to hold device address DeviceAddress insideThermometer; void printTemperature(DeviceAddress deviceAddress) { float tempC = sensors.getTempC(deviceAddress); myGLCD.setColor(255, 255, 255); myGLCD.setFont(SevenSegNumFont); myGLCD.printNumI(tempC, CENTER, 60, 0); } void setup () { myGLCD.InitLCD(); myGLCD.fillScr(0, 0, 0); sensors.begin(); sensors.getAddress(insideThermometer, 0); sensors.setResolution(insideThermometer, 12); } void printTemperature(DeviceAddress deviceAddress) { float tempC = sensors.getTempC(deviceAddress); myGLCD.setColor(255, 255, 255); myGLCD.setFont(SevenSegNumFont); myGLCD.printNumI(tempC, CENTER, 60, 0); } void loop () { }
что делаю не так?
что делаю не так?
1. Не так публикуете скетч. Его трудно читать и ещё труднее обсуждать, т.к. нет номеров строк.
2. Зачем дважды определяли функцию printTemperature ?
3. А что Вы хотите от этого скетча? Вы хотите увидеть число на экране? А в каком месте Вы его туда выводите? В функции printTemperature? А в каком месте Вы её вызываете? Ни в каком? Так если Вы не печатаете число на экран, то как оно там окажется?
строка 24 должна выводить на экран переменную температуры
http://www.rinkydinkelectronics.com/r_fonts.php вот отсюда хочу скачать SevenSeg_XXXL_Num
вот это шрифт и с помощью него по центру вывести температуру.
при публикации случайно дважды вставил эту функцию
Я в упор не вижу вызова функции 19-25 ни в setup ни в loop
все понял. вызвал функцию и все заработало, но теперь появился другой вопрос. показывает только целое число без десятых. как
Сорсы смотрят трусы!
Тип первого параметра видишь?
я не силен в програмировании :( глумится не надо.
изменил с printNumI на printNumF десятые появились но с переди появился ноль а вместо точки каракули. если можешь обьясни почему
тема закрыта, все разобрался.
Всё равно не расскажет.
теперь возникла другая проблема
кнопки моргают все глючит
ошибки:
1) в цикле постоянно все перерисовываете. Перерисовка - процесс длительный на ардуине, поэтому заметен невооруженным глазом. А вы перерисовываете стопицот раз в секунду.
2) каждый раз вы не только перерисовываете изображение, но еще и добавляете кнопки. В итоге превышаете лимит в классе UTFT_Buttons. Нужно рисовать один раз и потом проверять нажали или нет.
ну и вообще этот класс UTFT_Buttons очень не экономный: жрет в памяти около 300..500 байт.
Спасибо за ответ, то есть лучше прорисовать кнопки средствами библиотеки UTFT, и средствами UTouch задать координаты нажатия и действие?
это если памяти не будет хватать. Пока хватает - этот класс удобен.
это если памяти не будет хватать. Пока хватает - этот класс удобен.
"2) каждый раз вы не только перерисовываете изображение, но еще и добавляете кнопки. В итоге превышаете лимит в классе UTFT_Buttons. Нужно рисовать один раз и потом проверять нажали или нет."
помогите как исправить код?
вынесите рисование кнопок в отдельную фунцию, которую вызывайте только если что-то поменялось. В остальных случаях - опрашивайте нажатия.
это если памяти не будет хватать. Пока хватает - этот класс удобен.
Золотые слова! Относятся не только к это класссу, а ко всему - философия! А то меня холивар в сосддей ветке задолбал уже.