Управление цветами на LCD-дисплее

fatal890
Offline
Зарегистрирован: 21.10.2018

Доброго времени суток! Имеется следующая ситуация:

Собираю тепловизор на базе датчика температуры MLX90614. Хочу поточечно вывести полученные результаты на LCD-дисплей (2.8 TFT LCD Shield). Использую библиотеку UTFT. Но там всего 2 варианта использования цветов:

1) Использовать зашитые в библиотеку цвета (VGA_BLACK, VGA_RED и т.д.)

2) Прописывать цвет вручную в формате RGB

Выводимое значение имеет десятичную систему счисления.

Вопрос следующий: можно ли изменять цвет пикселя в зависимости от полученного значения? Если можно, то как это сделать?

P.S. Безусловно, есть вариант вручную ввести массив со значениями температуры и их соответсвующими значениями в палитре RGB, но программа получится сильно громоздкой.

 

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Посмотреть исходники библиотеки, или просто почитать про систему кодирования RGB565 - и вопросы отпадут сами собой. По поводу вывода пиксела определённым цветом - емнип, в UTFT есть drawPixel. Кстати сказать то, как вы хотите это сделать - по быстродействию будет пичалька.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

fatal890 пишет:

Использую библиотеку UTFT. Но там всего 2 варианта использования цветов:

1) Использовать зашитые в библиотеку цвета (VGA_BLACK, VGA_RED и т.д.)

2) Прописывать цвет вручную в формате RGB

Первое - для упрощения элементарной графики (типа нарисовать желтую линию на синем фоне), а второе - универсальное решение. Соответственно, можно пользоваться только вторым вариантом. И если у Вас цветов много (цветовой континуум), о первом варианте можно вообще забыть.

Цитата:

Выводимое значение имеет десятичную систему счисления.

Это как?

Цитата:

Вопрос следующий: можно ли изменять цвет пикселя в зависимости от полученного значения? Если можно, то как это сделать?

Ну так выше написано. В Вашей формулировке "Прописывать цвет вручную в формате RGB".

И, кстати, DIYMan все правильно написал. Просто постарайтесь внимательно прочитать и понять каждое его предложение.

b707
Offline
Зарегистрирован: 26.05.2017

fatal890 пишет:

P.S. Безусловно, есть вариант вручную ввести массив со значениями температуры и их соответсвующими значениями в палитре RGB, но программа получится сильно громоздкой.

 

вероятно, именно так и надо делать. Насчет громозкости программы я бы не беспокоился - вряд ли табличка получится больше сотни значений RGB

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

b707 пишет:

вероятно, именно так и надо делать. Насчет громозкости программы я бы не беспокоился - вряд ли табличка получится больше сотни значений RGB

Кстати - да.

Табличное представление функций - совершенно стандартный способ для микроконтроллеров.

Ну и для длины таблички оценка вполне адекватная: максимальная разрядность цвета - 6, т.е. имеем 64 градации яркости для зеленого. Для остальных цветов 5 разрядов, т.е. 32 градации яркости. Т.е. если будем делать в пределах одной гаммы, таблица получится не длиннее 64, а если вдоль спектра - при более или менее равномерных шагах (32 на цвет) получится 160 значений.

b707
Offline
Зарегистрирован: 26.05.2017

andriano пишет:

Ну и для длины таблички оценка вполне адекватная: максимальная разрядность цвета - 6, т.е. имеем 64 градации яркости для зеленого.

ну я просто исходил из того, что больше сотни предустановленных значений температуры вряд ли имеет смысл кодировать, все равно разводы на экране тепловизора - это  лишь картинка, точных данных от нее никто не ждет

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Если оценки, выполненные, исходя их различных предположений, совпадают, то с большой вероятностью он верные.