RadioRadar - Радиоэлектроника, даташиты, схемы

https://www.radioradar.net/radiofan/motorcar_enthusiast/digital_car_dashboard_part_3.html

Цифровая приборная панель автомобиля (часть 3)

Дисплей (рис. 13) закрепляют в корпусе четырьмя винтами, а модуль Arduino Mega 2560 вставляют в контакты разъёма дисплея. Из разъёма дисплея выпаивают четыре контакта 50-53 - это шина SPI, по ней в дисплее подключается сенсорный экран (TUCHSCREEN). Я специально заказывал дисплей с сенсорным экраном, чтобы управлять устройством через нажатие на экран, но у меня ничего не получилось. По шине SPI ещё работает модуль NRF24L01, хотя теоретически шина SPI позволяет подключить к ней несколько устройств, на практике удавалось заставить работать только одно устройство - либо TUCHSCREEN, либо NRF24L01, вместе они отказывались "дружить". Похоже, есть какая-то ошибка в библиотеке SPI.

Рис. 13.

 

Рис. 14.

 

Внешний вид устройства показан на рис. 14. Корпус размерами 125x80x32 мм приобретён в интернет-магазине.

Все мелкие модули приклеены к плате Arduino Mega 2560 двухсторонней липкой лентой, модуль RTC на DS3231 и гальванический элемент резервного питания - отдельно к ней с внутренней стороны (рис. 15), остальные модули - с внешней стороны (рис. 16). На корпус наклеивают накладку, вид которой показан на рис. 17.

Рис. 15.

 

Рис. 16.

 

Рис. 17.

 

С платы Arduino Mega 2560 надо удалить диод, через который напряжение 12 В с разъёма поступает на контакт VIN платы и далее на стабилизатор 5 В. На рис. 15 место установки диода выделено красной линией, диод уже удалён. Вместо диода подключают драйвер А1, уменьшающий входное напряжение до 8 В. Пришлось установить понижающий драйвер, поскольку без него после включения всё нормально работает несколько минут, а затем микроконтроллер "подвисает". Выяснилось, что перегревается и перестаёт работать стабилизатор на микросхеме LM317.

Для ускорения вывода информации на дисплей вместо платы Arduino Mega 2560 можно применить более быструю плату Arduino Due на ARM-процессоре, тактовая частота микроконтроллера на плате Arduino Mega 2560 - 16 МГц, у Arduino Due - 84 МГц, почувствуете разницу. Только придётся изменить функции измерения напряжения и длительности импульса (тахометр, инжектор), в программе для Arduino Mega 2560 они на ARM-процессоре работать не будут.

Для тех, у кого есть 3,95" дисплей на ili9481 /ili9488, который инициализируется с помощью UTFT myGLCD (CTE32HR,38,39,40,41) и на нём получается зеркальное изображение, хочу дать совет, как избавиться от этой проблемы. Заходим в установленную библиотеку UTFT, путь к которой показан ниже - ...libranesUTFT-master ft_driversili9481initlcd.h, и в строке 43 файла initlcd.h изменяем данные (табл. 1).

Таблица 1

В результате получаем нормальное изображение.

Такой зеркальный вывод изображения можно использовать для отображения параметров на лобовом стекле. Есть специальная прозрачная отражающая плёнка для наклейки на лобовое стекло для отображения информации в зеркальном виде.

Модуль радиоканала NRF24L01 желательно поднять над платой для исключения эффекта экранировки, у меня он приклеен через ластик толщиной 8 мм. Первоначально модуль был приклеен без прокладки из ластика, но оказался неуверенный приём в радиусе 50 см.

Платы кнопок размерами 100x17 мм и зуммера размерами 35x22 мм изготовлены из отрезков монтажных плат, соединения сделаны проводом МГТФ. Платы рассчитаны на применение постоянных резисторов МЛТ, оксидных конденсаторов К50-35, плёночных К73-17 или аналогов иностранного производства.

Эта цифровая приборная панель установлена в автомобиле Hyundai Getz рестайлинг, поэтому все показания верны для этой модели или аналогичной.

Корректировка показаний тахометра и скорости под датчик скорости с другим числом импульсов производится в программе передатчика в функции табл. 2.

Таблица 2

Корректировка показаний температуры двигателя и количества бензина производится в программе цифровой панели в функции voidConvert_Analog(), в ней находим строки, показанные в табл. 3, значения 500 и 1250 - максимальные показания, значения -650 и -790 - минимальные показания.

Таблица 3

 

Показания пройденного пути из штатной панели заносятся в строку табл. 4, её можно найти в программе цифровой панели в списке переменных.

Таблица 4

Цифры "1,39,53,10" будут выглядеть как "139531 км" на штатной панели, другие цифры в массиве не трогаем, они для промежуточных одометров.

Перед первым запуском программы в функции SETUP разблокируем две строки для записи данных в EEPROM и FRAM с прошивкой микроконтроллера. В EEPROM и FRAM занесутся данные пройденного пути и цветовой интерфейс дисплея по умолчанию (табл. 5).

Таблица 5

После запуска программы и проверки данных блокируем эти две строки и снова прошиваем микроконтроллер.

Все библиотеки, применённые в программах, можно скачать с GitHub.

Программа микроконтроллера находится здесь.

Автор: В. Киба, г. Волжский Волгоградской обл.