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

Mike_Levin_

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

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


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

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

Так вот, хочу услышать ваше предложение и виденье реализации!
Пс: если ошибся разделом - перенесите в нужный. Я у вас тут новенький
 
Изменено:

Wonderrus

✩✩✩✩✩✩✩
20 Мар 2020
17
0
сверху можно цифры нарисовать с шагом в 1000 об/мин и начать отсчёт не с 0, а, например, с 500. Рядом с Water лампу нарисовать Перегрев и контрольную лампу работает охлаждение или нет. Ну и скетчем поделиться )) Данные берутся из ОБД2 ?
 

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

★★★★★★✩
23 Сен 2019
2,265
944
58
Марий-Эл
Как это реализовать изящнее?
Я ее нарисовал просто набором прямоугольников.
Закрашиваются они у меня при помощи if.
Набор прямоугольников самое простое решение.
Но IF лучше не использовать.
https://community.alexgyver.ru/threads/termometr-dlja-bani.2410/
Посмотрите здесь. Там реализован стрелочный индикатор на треугольниках. Алгоритм Вам подойдёт, надеюсь.
 
  • Лойс +1
Реакции: Mike_Levin_

r4wabr

★✩✩✩✩✩✩
21 Май 2019
47
15
40
Ижевск
ПОпробуйте работать с буфером экрана. Вам надо создать спрайты (BMP) и ими отрисовывать шкалу.
 

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

★★★★★★✩
23 Сен 2019
2,265
944
58
Марий-Эл
Набить буфер. Перекинуть буфер. На ардуине делать графику, себя не уважать. Тогда отказываться от ардуинного ядра и писать самому, напрямую. Прирост скорости раз в 5.
 
  • Лойс +1
Реакции: Mike_Levin_

Mike_Levin_

✩✩✩✩✩✩✩
Набить буфер. Перекинуть буфер. На ардуине делать графику, себя не уважать. Тогда отказываться от ардуинного ядра и писать самому, напрямую. Прирост скорости раз в 5.
А можешь рассказать как? Это на чистом С++?
 

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

★★★★★★✩
23 Сен 2019
2,265
944
58
Марий-Эл
Лучше на ASMе Но это тяжело. На C получается код меньше, чем на C++, плюс к этому не нужно использовать ядро Arduino IDE.
Со всеми регистрами микроконтроллера работать напрямую. Все свои функции писать только с прямым обращениям к регистрам, а не через универсальные функции.
 
  • Лойс +1
Реакции: Mike_Levin_

r4wabr

★✩✩✩✩✩✩
21 Май 2019
47
15
40
Ижевск
Можно взять дисплей с RGB интерфейсом (40pin) И собрать или купить готовый модуль на RA8875. И вообще не заморачиваться с микроконтроллером. Данный контроллер дисплея многое умеет. Им надо только управлять по SPI. Подгружать ему данные.
МЕня покупать такой модуль жаба задушила и я заказал платы и собрал сам. Благо все исходники есть на сайте Adafruit.
Привожу ниже исходники для сборки и библиотеку для ардуино IDE
 

Вложения

Изменено:
  • Лойс +1
Реакции: Mike_Levin_