Шкала тахометра

16.09.2019
7
0
1
#1
Всем привет!
Я к Вам пришел с вопросом! Хочется, что бы вы поделились знаниями и своим виденьем реализации.
Я делаю гоночную приборную панель на tft экране. Как правило в автоспорте на экране всегда есть шкала с делениями, так называемыми оборотами двигателя.

Получилась она таким образом:


Как это реализовать изящнее?
Я ее нарисовал просто набором прямоугольников.
Закрашиваются они у меня при помощи if.

Типа таким образом:
if (RPM >=1000 && RPM <=1499)
{
Рисуем определенное количество палочек;
}

Так вот, хочу услышать ваше предложение и виденье реализации!
Пс: если ошибся разделом - перенесите в нужный. Я у вас тут новенький
 
Последнее редактирование:
20.03.2020
3
0
1
#2
сверху можно цифры нарисовать с шагом в 1000 об/мин и начать отсчёт не с 0, а, например, с 500. Рядом с Water лампу нарисовать Перегрев и контрольную лампу работает охлаждение или нет. Ну и скетчем поделиться )) Данные берутся из ОБД2 ?
 

Эдуард Анисимов

Проходящий мимо
23.09.2019
325
70
28
54
Марий-Эл
#3
Как это реализовать изящнее?
Я ее нарисовал просто набором прямоугольников.
Закрашиваются они у меня при помощи if.
Набор прямоугольников самое простое решение.
Но IF лучше не использовать.
https://community.alexgyver.ru/threads/termometr-dlja-bani.2410/
Посмотрите здесь. Там реализован стрелочный индикатор на треугольниках. Алгоритм Вам подойдёт, надеюсь.
 
21.05.2019
26
3
3
36
Ижевск
#4
ПОпробуйте работать с буфером экрана. Вам надо создать спрайты (BMP) и ими отрисовывать шкалу.
 
16.09.2019
7
0
1
#10
Набить буфер. Перекинуть буфер. На ардуине делать графику, себя не уважать. Тогда отказываться от ардуинного ядра и писать самому, напрямую. Прирост скорости раз в 5.
А можешь рассказать как? Это на чистом С++?
 

Эдуард Анисимов

Проходящий мимо
23.09.2019
325
70
28
54
Марий-Эл
#11
Лучше на ASMе Но это тяжело. На C получается код меньше, чем на C++, плюс к этому не нужно использовать ядро Arduino IDE.
Со всеми регистрами микроконтроллера работать напрямую. Все свои функции писать только с прямым обращениям к регистрам, а не через универсальные функции.
 
21.05.2019
26
3
3
36
Ижевск
#12
Можно взять дисплей с RGB интерфейсом (40pin) И собрать или купить готовый модуль на RA8875. И вообще не заморачиваться с микроконтроллером. Данный контроллер дисплея многое умеет. Им надо только управлять по SPI. Подгружать ему данные.
МЕня покупать такой модуль жаба задушила и я заказал платы и собрал сам. Благо все исходники есть на сайте Adafruit.
Привожу ниже исходники для сборки и библиотеку для ардуино IDE
 

Вложения

Последнее редактирование: