Arduino в автомобиле: использование с жк-дисплеем

Парктроник на Ардуино с дисплеем и LED

Парктроник на Ардуино ► сделать просто, при этом можно использовать дисплей, световую и звуковую индикацию. Рассмотрим сборку проекта парктроника на Arduino Uno.

Парктроник для гаража на Ардуино сделать довольно просто, при этом можно использовать световую и звуковую индикацию для предупреждения о минимальном расстоянии. Использовать данный проект на ультразвуковых датчиках в автомобиле не рекомендуется, так как они обладают большой погрешностью и не защищены от влаги. Рассмотрим сразу несколько вариантов реализации проекта на Ардуино.

Парктроник на Ардуино своими руками

Первым делом необходимо решить проблему с ложными срабатываниями датчика, сделав в программе функцию с несколькими измерениями расстояния и расчета средне арифметического значения. Для этого в цикле for выполняем 10 измерений подряд, складывая полученный результат в общую сумму, а по окончании цикла полученную сумму делим на количество проведенных измерений, то есть на 10.

Скетч для вычисления среднего значения датчика HC-SR04

Пояснения к коду:

  1. перед выполнением цикла for, необходимо обнулять переменные sum и total, поэтому мы их задаем в цикле, при этом они становятся равными нулю;
  2. алгоритм программы можно применять на любом датчике.

Ультразвуковой парктроник с дисплеем 1602

Для этого проекта нам потребуется:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • ультразвуковой дальномер HC-SR04;
  • дисплей LCD 1602 I2C;
  • светодиоды и резисторы;
  • RGB светодиоды Ардуино;
  • пьезодинамик;
  • провода папа-мама, папа-папа.

Схема. Ультразвуковой парктроник с дисплеем 1602

Для сборки парктроника с экраном следует подключить к плате ультразвуковой дальномер, пьезодинамик и LCD экран, как на картинке выше. В представленную выше программу остается лишь добавить функцию вывода расстояния на дисплей и условие для срабатывания зуммера. Время между измерениями и расстояние при котором будет включен предупредительный звуковой сигнал можно поменять в скетче.

Скетч. Парктроник на Ардуино с экраном жк

Пояснения к коду:

  1. время задержки между измерениями и расстояние при срабатывании пьезодинамика можно поменять в начале кода, изменив значения del и cm ;
  2. количество измерений можно увеличивать, но это увеличит время выполнения программы, не изменив принципиально качество измерения расстояния.

Ультразвуковой парктроник со светодиодами

Так как устройство не рекомендуется ставить на автомобиль из-за отсутствия влагостойкости у датчиков HC-SR04, то и дисплей не имеет смысла подключать к парктронику на Arduino Uno. Лучше всего использовать световую индикацию. В следующем варианте проекта используются красные, желтые и зеленые светодиоды для индикации расстояния от устройства до автомобиля, заезжающего в гараж.

Скетч. Парктроник на Ардуино со светодиодами

Пояснения к коду:

  1. в начале программы задаются переменные, которые можно поменять, настроив подходящий режим работы автомобильного парктроника на Ардуино;
  2. светодиоды одного цвета можно подключать к одному пину.

Гаражный ультразвуковой парктроник Arduino

В следующей программе реализована функция выключения звуковой сигнализации через 10 секунд (можно изменить в программе), т.е. когда машина уже остановилась. В схеме использованы RGB светодиоды 5 В, чтобы для питания использовать обычную зарядку от телефона. Схема сборки проекта на Ардуино остается прежней, а скачать скетч и файлы с макетом корпуса в Corel Draw для парктроника можно здесь.

Arduino в автомобиле: использование с жк-дисплеем

Ардуино и OLED дисплей в автомобиле

Автор: Proset
Опубликовано 20.02.2017
Создано при помощи КотоРед.

После очередной замены бензонасоса на машине Ипсум SXM10
Решил сделать мониторинг тока бензонасоса. Сделал. Сначала на Ардуино, а потом в виде отдельной платы.

Решил поделиться опытом. Надеюсь будет полезен обладателям таких или похожих а/м.

Первая версия была собрана в виде навесной конструкции с протянутыми и прикрученными проводами. Датчик тока был врезан в цепь питания бензонасоса. Одновременно было решено подключиться к импульсам скорости для отображения скорости в цифровом виде.

Это связано с особенностями расположения руля и приборной панели на этой машине. При движении диапазон скоростей от 50 до 70 км/ч перекрывается рукой и(или) рулевым колесом. При движении в городе это неудобно.

В версии на специально собранной плате на базе АТМЕГА328 было реализовано отображение температуры за бортом и внутри салона(только положительной), а так же реализован небольшой интерфейс в виде 2-х кнопок с подсветкой.

Кроме этого из за постоянного перегорания лампочек в приборке их решено было заменить на RGB светодиодные модули, которые продаются на строительных рынках и стоят 20-30р шт. Было использовано 2 модуля, но можно и больше.

И для отображения всей этой информации было решено использовать OLED дисплей продается на Али стоит в зависимости от курса от 150 до 350р. Как показал опыт эксплуатации это было удачное решение. Но выбирать лучше дисплей с синим свечением он более ярок и заметен чем белый.

Самым удачным является то, что нашлось подходящее место для дисплея внутри приборной панели. Там, где можно не отвлекаясь, наблюдать за значением текущей скорости.

Версия на Ардуино УНО – это самый простой вариант. Для его реализации вам потребуется плата Ардуино(питать ее можно прямо от прикуривателя),

модуль измерения тока(если вам это нужно),

Дисплей с интерфейсом I2C.

Для управления светодиодами необходимо их подключить к выводам Ардуино через ключи для усиления тока. Подойдет любая микросхема типа ULN2003. Я использовал что то другое из хлама с разборки. Микросхему с проводами установил на макетке и соединл проводами с питанием и выводами светодиодов и Ардуино.

Конфигурация описана в скетче Ардуино. Самая большая проблема это аккуратно подсоединить все провода как к Ардуино так и к дисплею и светодиодам. В этом нам поможет Шилд расширения для Ардуино, хотя можно обойтись и без него. Подсоединив все прямо к Ардуино, но без скруток при этом не обойтись. У меня получилось так:

Белая коробочка это макетка с проводами и микросхемой типа ULN2003 для управления светодиодными модулями от 12в

Вот так схематически изображэено подключение модулей. Коммутацию можно делать через модуль расширения, но можно и втыкать прямо в модуль Ардуино. Подключение питания к модулям(VCC-5в GND) не показано так как подразумевается. Делать как вам удобнее. В скетче указано что модуль измерения тока подключен к А6 но в УНО нет такого, поэтому подключен к А0, сам скетч верный.

На приборке дисплей выглядит так:

Программная реализация сделана в IDE Arduino в скетче реализовано измерение тока, скорости, и динамическая подсветка(в зависимости от скорости). После опытной эксплуатации было решено убрать все провода внутрь машины, и соответственно сделать все устройство на отдельной плате. Ввиду использования не очень экономной к памяти среды Ардуино и наличия графического дисплея – за базовый кристалл был принят ATMEGA328. Управление светодиодными модулями было реализовано на микросхеме взятой из какого-то CDROMа. Прочая рассыпуха(в основном разъемы) тоже была выпаяна из хлама. Кроме этого на отдельной плате был сделан Биппер(просто так им проще управлять и у меня их много в других местах) хотя можно было и программно сделать.

Отдельный блок аж из 2-х плат это 2 кнопки с подсветкой, сделаны на триггерах – зато дребезга нет. Выглядит так:

Вид собранной платы с установленным биппером кроссплатой(плата для соединения разъемами внешних устройств с платой управления) и блоком питания DC/DC(готовый с али):

Корпус был сделан из остатков ТВ Тюнера Пионер, подобранного на свалке в гараже. Выглядит так:

Программная часть была доработана, добавлено измерение 2-х температур, переключение режимов отображения с помощью кнопок, улучшена работа счетчика импульсов скорости для более плавного отображения и тп. мелочи. Указанные на схеме разъемы (кроме разъема для программирования кристалла) перенесены на кросс-плату. Транзисторы на кроссплате(на схеме), предназначенные для светодиодов на кнопках – реально не использовались т.е. с/д были напрямую подключены к пинам АТМЕГИ.(через резисторы конечно).

Arduino в автомобиле. Озвучивание панели приборов

Говорящее устройство рассчитано на тех, кто не замечает лампочки на панели приборов, и периодически ловит себя на том, что едет с ручником или дальним светом. Или что стрелка спидометра незаметно уползла сильно вперёд… Ага, для себя делал.

Проверялось на (заточено на) Daewoo Nexia N150, но должно работать на любой машине с электронным спидометром (датчик скорости — 6 импульсов на метр, вроде как стандарт). Фотографии немного мутные (любительские):

1. Говорит голосом (5 уровней громкости) о различных событиях (события описаны далее)

а) мужским
б) женским

Голоса синтезированы на компьютере, записаны в виде набора mp3-файлов на микроСД карту. Это значит, что вы можете их поменять или записать.

2. Настройки выполняются с ПДУ от телевизора (или любого другого с достаточным количеством кнопок, настоятельно рекомендую ПДУ с кнопками 0-9). Настройки запоминаются в момент изменения.

3. В случае отказа/потери ПДУ, извещатель может быть оперативно переключен на режимы «нет звуков» или «нет звуков, кроме ручника». Для этого используется тройное включение габаритов (идея использовать мигание габаритами в качестве управляющего сигнала для настройки спёрта с какого-то устройства регулировки яркости ДХО).

— Ручник (если горит лампочка ручника во время движения)
— Включен дальний свет (мигание дальним игнорируется, предупреждает один раз после включения, далее не напоминает, пока дальний не переключат)
— Включите ходовые огни (если начато движение без включенных габаритов, у меня ДХО и ближний не работают, если не включены габариты).
— Напряжение бортовой сети (точность до десятой доли вольта)
— Превышение порога скорости 40, 50,… 120, 130 км/ч.
— Понижение порога скорости 40, 50,… 120, 130 км/ч.
— Изменение громкости, переключение голоса, отключение/включение каждого из озвучиваемых событий (включение вольтметра вызывает одновременно озвучивание напряжения).

Видео с демонтрацией:

1. К спидометру — сразу три провода: земля, +12 (отсюда берём питание на устройство и данные для вольтметра), сигнал от датчика скорости.

2. К лампочкам — ручника, дальнего света, подсветки приборов (габариты).

Согласование уровней сделано довольно просто — выводы ардуины подтянуты внутренним резистором в «1», а сигналы 12В уровня из приборной панели идут через диоды. Когда с панели идет +12, диод закрыт — на ардуине «лог.1». Когда сигнал с панели идет землёй — диод открыт, внутренний подтягивающий резистор игнорируется, на выводе ардуино «лог.0».

Вольтметр — просто резистивный делитель на аналоговый вход. Отношение примерно 1:13, из того расчета, что при максимальном напряжении бортовой сети 16В (аварийный режим) АЦП достигнет своего предела при опорном сигнале 1,2В.

1. Arduino nano v3

2. Модуль mp3 — DFplayer mini

Данный модуль в интернет-схемах подключается по tx/rx сигналам, я добавил анализ сигнала busy, для поимки момента окончания воспроизведения звука, чтоб новое оповещение не перебивало текущее, а вставало в очередь.

3. Усилитель PAM8403 (необязательный элемент)

Из текста прошивки можно легко увидеть, куда заведены все анализируемые сигналы, куда прописать коды вашего ИК-пульта (взять их можно с помощью демо-скетча IRRecvDump). Также константами явно прописаны моменты срабатывания озвучки скоростей (обратите внимание на то, что скорости озвучиваются несколько раньше, чем будут реально достигнуты — чтоб успеть сбавить, не превысив).

Для отладки, доводки и демонстрации использовалась другая ардуина — arduino uno и модулем LCD-дисплея и кнопками.

Она умеет выдавать сигналы — габариты, дальний свет, ручник, и менять скорость с 0 до 150 примерно. Из недостатков — нет подавления дребезга контактов, но мне не особо мешает этот момент.

Первые шаги использования Ардуино в автомобиле

Совсем недавно недорогие микроконтроллеры, такие как Arduino, открыли новые двери для тех, кто хочет сделать интересные приспособления для своих автомобилей. В этой статье мы рассмотрим популярный проект, связанный с Аrduino в автомобиле, который использует эту популярную открытую аппаратную плату.

Возможность применения Arduino в автомобиле для его улучшения

Самый распространенный проект на Ардуино для автомобиля – установка в машине ЖК-дисплея с особыми функциями и показателями.

Когда Ардуино-дисплей в авто находится в движении, отображаются: процент нагрузки двигателя, напряжение батареи, температура в салоне и температура охлаждающей жидкости двигателя (есть несколько других статистических данных о транспортном средстве, которые могут отображаться, если нужны). Помимо дисплея и микроконтроллера, понадобятся различные датчики для создания этого Аrduino проекта для автомобиля.

Если Аrduino для автомобиля совместим с IDE Teensy 3.6, то читается анимированный растровый образ машины и резервные датчики. Каждый из четырех датчиков на своем месте, так же, как и анимационная картинка автомобиляоторая меняет цвет, исходя из того, насколько близко объект находится к машине (только зеленый означает Какие датчики можно подключить к Ардуино

В конечном итоге, пользователь получит отличное приспособление, контролирующие все возможные параметры автомобиля. Список деталей, которые понадобятся для создания этого ЖК-дисплея Ардуино для автомобиля, приведен ниже:

  1. Адаптер Freematics OBD-II.
  2. Резервные датчики.
  3. 7-дюймовый ЖК-дисплей TFT.
  4. Драйвер для дисплея LCD на базе SPI.
  5. Микропроцессор Teensy 3.6.
  6. Специальный уровень Shifter.
  7. 74HC125 Tri State Buffer IC.
  8. Карта памяти MicroSD Card.
  9. Провод, конденсаторы и резисторы.
  10. Датчик температуры DS18B20.
  11. Разделитель OBD-II.
  12. Микроконтроллер Ардуино.

Подключение, запуск и настройка автоустройств на Ардуино

Для загрузки эскиза проекта Ардуино для авто в виде ЖК-дисплея в Teensy 3.6 вам необходимо установить Teensyduino. Затем вам нужно будет заменить библиотеки Adafruit_RA8875 и Adafruit_GFX в расположении библиотеки Teensy (а не на вашем типичном месте в документах). На Mac операционной системе нужно щелкнуть правой кнопкой мыши по значку приложения Arduino в приложениях, а затем перейти в:

/Содержание/Java/hardware/teensy/avr/libraries

В Windows данная папка находится под основным диском C, в файлах программ x86, Arduino, а затем в папке с аппаратным обеспечением. Как только вы это сделаете, вам нужно будет изменить расположение эскиза в приложении Arduino, отредактировав его в настройках – обычно библиотеки “Тинси” размещаются по следующему адресу:

/Applications/Arduino.app/Contents/Java/hardware/teensy/avr

Из-за проблемы с внутренним температурным датчиком пользователь устанавливает температурный датчик модуля DS18B20.

В zip-файле, который находится по ссылке выше, вы увидите 4 эскиза Аrduino.

  1. Загрузите эскиз display_code, если вы хотите использовать внутренний температурный датчик модуля OB2 I2C OBD-II.
  2. Загрузите эскиз display_code_with_new_temperature_sensor, если вы хотите использовать модуль DS18B20.

Необходимо исправить ошибки, всплывающие при подключении электронного устройства, включая DS18B20, выводя температуру в 185 градусов по Фаренгейту; дисплей не включается вообще в холодную погоду, а пиксели застревают в неправильном цвете, когда дисплей затемнен.

Обратите внимание, что разгон teensy до 240 МГц не позволяет адаптеру I2C OBD-II взаимодействовать с teensy. Наконец, просто нажмите кнопку «Загрузить». В представленном скетче находятся обширные комментарии, которые помогут пользователю адаптироваться при конструировании ЖК-дисплея для авто.

Вскоре после установки дисплея пользователь поймет, что дисплей работает даже тогда, даже когда автомобиль выключен.

Заглянув в разводку OBD-II, электронщик обнаружит, что линия питания 12 В к разъему OBD-II всегда подключается непосредственно к батарее. Чтобы обойти это, необходимо купить разветвитель OBD-II и отрезать провод, идущий на контакт 16 на одном из двух разъемов на сплиттере, а затем подключить этот разрезаемый провод к добавлению проводки.

Затем, используя мультиметр, необходимо заглянуть в коробку предохранителей на стороне водителя и протестировать существующие предохранители, чтобы узнать, какой предохранитель получил питание после того, как ключ был включен в зажигание.

В конце пользователь подключает добавочный провод к предохранителю, который нужен для того, чтобы дисплей теперь включался только тогда, когда автомобиль работает и находится на ходу. Проведите некоторое исследование того, как правильно добавить схему к вашему автомобилю. Многие подобные проекты описаны на нашем сайте с подробными разъяснениями.

Кроме того, пользователь может добавить кнопку “стоп-старт” на Ардуино для своего дисплея с параметрами для автомобиля.

Источники:

http://www.radiokot.ru/circuit/digital/security/55/

http://habr.com/post/401671/

http://arduinoplus.ru/arduino-v-avtomobile/

http://electrik.info/main/praktika/1333-ustroystvo-mikrokontrollerov-avr.html

Ссылка на основную публикацию