Контроллер ходовых огней на ATmega как в премиум авто

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



| номер контакта | обозначение | описание |
|---|---|---|
| 1,3 | LED+ | силовой выход на огни |
| 2,4 | VCC | Силовое питание платы |
| 6 | Lled | Левый свет |
| 8 | Rled | Правый свет |
| 5 | lbm | Ближний свет |
| 7 | fog | Противотуманки |
| 9 | Rin | Правый поворотник |
| 11 | Run | Сигал с генератора |
| 13 | Lin | Левый поворотник |
| 15 | Ign | Зажигание |
| 12,14,16 | GND | Общий провод |
Для подключения использован шестнадцати контактный двухрядный разъем CN1 с шагом выводов 5.08, но можно припаивать провода прямо на плату. Дежурное питание поступает на плату через диод D5 на линейный стабилизатор U2 (U3), который питает микроконтроллер. Входные цепи, которые определяют работу контроллера, организованы резистивными делителями напряжения и керамическими конденсаторами для подавления помех. Силовое питание подается в схему через реле после получения сигнала запуска двигателя через делитель R11-R4, и удерживается все необходимое время даже после отключения зажигания. Реле управляется микроконтроллером через транзистор Q6, а диод D3(D4) служат для защиты схемы от индуктивных выбросов катушки реле. Силовое питание подается на аноды светодиодных ходовых огней через контакты 2 и 4 разъёма CN1, а независимое управление яркостью свечения огней осуществляется мосфетами Q2 и Q3 (Q4 и Q5) методом широтно-импульсной модуляции. Важным моментом является частота импульсов. Она должна быть минимум 8 килогерц или больше. Низкая частота, как в функциях ардуино, работает не так плавно как должно быть. Тактирование микроконтроллера может осуществляться как от внутреннего RC генератора, так и от внешнего кварцевого резонатора, что определяется коррекцией прошивки микроконтроллера. FUSE биты контроллера остаются по умолчанию для использования встроенного генератора.
Контроллер, к слову, можно использовать практически любой, подходящий по посадочному месту из линейки ATMega. В данный момент имеется реализация под Mega88 и Mega328, как самые популярные и доступные решения в Arduino. Некоторые элементы в схеме продублированы и имеют разные посадочные места, что позволяет собирать устройство по принципу «из того что есть».
При разводке печатной платы, в угоду ее компактности и универсальности, пришлось использовать двухсторонний дизайн и располагать элементы и дорожки с двух сторон. Не обошлось при этом и без переходных отверстий, которые адаптированы для ручного изготовления при помощи пайки на плату пустых штырьков. Контроллер желательно прошить заранее до пайки, но можно подпаять провода к дополнительным пятачкам на плате и прошить его на месте. Для прошивки естественно нужно пользоваться программатором, что конечно, не так удобно как в ардуино. Вся схема собрана и упакована в корпус из ABS пластика, напечатанный на 3D принтере. Модель корпуса для печати прилагается. Плату готового устройства желательно покрыть лаком для защиты элементов от внешних вредных воздействий, так как работать ей придется в подкапотном пространстве автомобиля, где условия очень неблагоприятные для такой электроники.
Контроллер светодиодных ДХО
Сегодня во многих странах по правилам дорожного движения водители транспортных средств при движении в светлое время суток обязаны включать ближний свет фар, либо дневные ходовые огни (ДХО или DRL — Day Running Light). Современные автомобили либо оборудованы штатными (в основном светодиодными) ДХО и автоматикой включения, либо в них предусмотрена функция автоматического включения ближнего света фар после старта двигателя. Для автомобилей, не оборудованных подобными функциями, в продаже можно найти как светодиодные ДХО с блоком управления, так и отдельные контроллеры, которые подключаются к лампам фар ближнего света. Существует также множество схемных решений для самостоятельной сборки, от простых, реализующих включение ближнего света или светодиодных ДХО после включения зажигания, до более сложных с применением микроконтроллеров, имеющих дополнительные функции управления. С одним из таких вариантов контроллера ДХО, который подключается к лампам дальнего или ближнего света и хорошо зарекомендовал себя в работе, можно ознакомиться в моем дневнике на портале Радиолоцман. Замечу, что все подобные дополнительные устройства не являются штатными в бортовой сети автомобиля, поэтому необходимо предусмотреть дополнительные цепи защиты от перегрузки и КЗ, все они обладают своими достоинствами и недостатками и определенной схемой подключения к узлам автомобиля, что обязательно нужно учитывать в каждом конкретном случае.

В этой статье я хочу поделиться своим вариантом контроллера для управления светодиодными ДХО (Рисунок 1). Сразу следует отметить, что они также не относятся к штатному бортовому электрооборудованию, и их установка может быть запрещена.
![]() |
|
| Рисунок 1. | Вариант установки светодиодных ДХО на автомобиле. |
Логика работы и принципиальная схема
Ранее на страницах портала Радиолоцман была опубликована моя статья "Вежливое" освещение салона для автомобиля VW Sharan, где я представил простую схему управления освещением салона на микроконтроллере (МК) Atmel ATtiny13. Как видно на схеме, у МК остаются незадействованными несколько портов вода/вывода, а также доступен еще один канал встроенного ШИМ. Поэтому в моеме случае при разработке контроллера ДХО оптимальным вариантом было добавить в существующую схему контроллера освещения узел контроля включения зажигания и ближнего свта фар (или габаритных огей) и еще один силовой ключ для управления светодиодными ДХО.
Результирующая принципиальная схема (вежливое освещение + контроллер ДХО) изображена на Рисунке 2. Если в функции управления освещением салона нет нужды, то можно не подключать соответствующие элементы (Q1, R2, R3, D1), при этом немного изменится логика работы контроллера ДХО. Схема без функционала управления освещением салона изображена на Рисунке 3.
| Рисунок 2. | Принципиальная схема контроллера светодиодных ДХО ( с поддержкой функции "вежливого" освещения салона). |
| Рисунок 3. | Принципиальная схема контроллера светодиодных ДХО (без функции "вежливго" освещения салона). |
Пояснение к схеме: Light Control — сигал управления освещением салона (штатная функция блока "Комфорт", активный низкий уровень), Ignition — сигнал включения зажигания (активный низкий уровень), DRL_Control — сигнал включения ближнего света фар (активный низкий уровень), DRL — выход для подключения светодиодных ДХО, Light — выход на лампы (светодиоды) освещения салона.
Для питания МК используется регулятор напряжения серии 78L05, на выходе которого установлена фильтрующая емкость 33 мкФ 16 В.
Для управления светодиодными ДХО в свою схему я добавил:
- силовой ключ на N-канальном MOSFET NIKKO P3055LD, на затвор которого подается ШИМ сигнал с выхода МК OC0B (PB1);
- схему контроля сигнала «Зажигание включено» (Ignition) на транзисторе Q3;
- схему контроля включения ближнего света фар или габаритов (DRL_Control) на транзисторе Q4.
В общем случае (без связки с освещением салона) контроллер обеспечивает:
- плавное включение ДХО при включении зажигания с небольшой задержкой;
- плавное выключение ДХО после выключения зажигания;
- плавное выключение ДХО при включении ближнего света фар (или габаритных огней).
В моем случае, когда в связке используются функция вежливой подсветки салона и контроллер ДХО, обеспечивается более гибкое (и как оказалось, более практичное в темное время суток) управелние ДХО:
- плавное включение ДХО при снятии автомобиля с охраны, при открывании дверей;
- плавное выключение ДХО и освещения салона с задержкой около 15 секунд после закрытия всех дверей;
- плавное выключение ДХО при постановке на охрану, при закрытии всех дверей;
- плавное включение ДХО и одновременное выключение освещения салона (если все двери закрыты) при включении зажигания с небольшой задержкой;
- плавное выключение ДХО после выключения зажигания;
- плавное выключение ДХО при включении ближнего света фар (или габаритных огней).
Схемы узлов контроля сигналов управления ДХО на транзисторах Q3 и Q4 (CMPT2222A) идентичны. Например, при включении зажигания положительный потенциал (+12 В) подается на базу транзистора Q3, который открывается и подает лог. 0 на порт МК PB2. Отмечу, что можно упростить схему, применив вместо транзистора делитель на резисторах (Рисунок 4), но в этом случае, например, при включении зажигания на порт PB2 будет подаваться высокий логический уровень, что потребует некоторых изменений в программе МК.
| Рисунок 4. | Упрощенная схема узлов контроля сигналов включения зажигания и ближнего света фар на резистивном делите (потребует корректировки прошивки). |
Плавное включение/выключение ДХО реализуется с помощью ШИМ (режим fast PWM таймера/счетчика 0 микроконтроллера), канал OC0B (порт PB2, вывод 6). Отслеживание сигналов управления осуществляется с помощью прерывания по изменению логического уровня на выводах портов PB2 и PB3.
Программа микроконтроллера
Исходный код программы МК написан на Си в интегрированной среде разработки AVR Studio 4.16 и снабжен подробными комментариями, однако следует отметить несколько моментов. Изначально настраиваем порты ввода/вывода, разрешаем использование режимов пониженного энергопотребления, настраиваем регистр прерываний по изменению логического уровня на выводах порта PB4-PB2, отключаем аналоговый компаратор и АЦП. Затем инициализируем таймер/счетчик 0 в режим быстрого ШИМ с 2 выходными каналами (OC0A, OC0B) и устанавливаем флаг глобального прерывания в регистре SREG. В основном цикле программы лишь одна команда – перевод микроконтроллера в спящий режим.
В обработчике прерывания по изменению логического уровня на выводе МК определяется состояние сигналов управления, выставляются соотвествующие флаги режимов работы. Управление ШИМ выходами, инкремен/декремент значения ШИМ выполняется с помощью конструкции switch-case в обработчике прерывания по переполнению таймера 0 (Timer0).
Микроконтроллер работает от внутреннего осциллятора 9.6 МГц. При программировании МК необходимо установить следующую конфигурацию Fuse-битов: младший байт 7A, старший байт FF. На Рисунке 5 изображена конфигурация МК при использовании калькулятора Fuse-битов. Другими словами, установка Fuse-битов сводится к отключению внутреннего делителя тактовой частоты на 8 (Fuse-бит CKDIV8=1, не запрограммирован).
| Рисунок 5. | Конфигурация Fuse-битов микроконтроллера. |
Печатную плату для схемы не проектировал, для монтажа использовал кусочек фольгированного стеклотекстолита, на котором вручную нарезал дорожки. Элементы применил в корпусе для поверхностного монтажа (за исключением диода D1, регулятора напряжения U2 и конденсаторов С1 и С2).
При установке светодиодных ДХО и контроллера следует предусмотреть схемы защиты или установку отдельного предохранителя.Подключение контроллера к бортовой сети не вызовет осложнений. Сигнал Ignition (включение зажигания) можно отыскать с пмощью простого вольтметра, например в блоке предохранителей автомобиля, а сигнал DRL_Control — можно взять непосредствнно с ламп ближнего света или габаритных огней. Данный вариант контроллера ДХО эксплуатируется на моем автомобиле уже в течение года. Каких-либо отклонений в работе схемы не замечено.
Загрузки
Принципиальная схема в формате PDF — скачать
Исходный код программы микроконтроллера и прошивка (AVR Studio 4.16)- скачать
Как сделать контроллер дхо своими руками
Нововведения в правила дорожного движения обязывают нас включать фары днем вне зависимости от местоположения (трасса/город). Ездить с противотуманными фарами, а тем более и с ближним светом — это не вариант. Во первых, можно просто забыть включить свет. Во вторых, частое включение/выключение ближнего света фар приводит к быстрому выходу из строя ламп, а как известно, хорошие лампочки стоят недёшево. Ближний свет, как и противотуманки включаются совместно с габаритными огнями и потребляет всё это дело немало. Всё это вытекает в повышенный расход топлива. Светодиодные ходовые огни я даже не рассматриваю, хорошие стоят дорого, а дешёвые — имеют низкую яркость.
Единственно правильным решением — это включить дальний свет фар на треть мощности. В отличии от ближнего света фар и противотуманных фонарей, они светят во все стороны и обозначат автомобиль на значительно большем расстоянии. Со стороны дальний свет фар на 35% мощности выглядит так же, как и ближний свет фар включенных на 100% мощности. Ещё одно преимущесво — это выключенные габаритные огни, а это около 40Вт. Не освещается приборная панель и не уменьшается яркость встроенных часов, термометров.
![]()
Схемная реализация довольно проста. Сердцем устройства служит микроконтроллер PIC16F628 и силовые ключи, усиливающие по мощности выходы микроконтроллера. Они выполнены на мощных p-канальных полевых транзисторах типа IRF4905. Выход микроконтроллера слабоват для надёжного открывания трёх силовых транзистора, а так же для полного открытия полевых транзисторов необходимо не ниже 10В, а с микроконтроллера выходят импульсы с амплитудой около 5В. Для согласования по напряжению и мощности в схему добавлен эмиттерный повторитель на биполярных транзисторах. Здесь могут быть применены практически любые транзисторы соответствующей структуры, напрмер S9014/S9015, BC547/BC557, BC337/BC327 и им подобные.
Данная схема разрабатывалась под автомобили фирмы Volkswagen. Немцы в этих машинах не установили промежуточные реле на фары, и до ламп доходит напряжение ниже на 1,5÷2В, чем выходит с генератора. Естественно, лампы светят не в полный накал. Простыми словами, свет у Volkswagen отвратительный. Блок заменит собой промежуточные реле, и реализует режим ходовых огней. Разумеется, данный блок можно установить в любую машину.
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Алгоритм блока такой: Режим дневных ходовых огней включится если не включены габариты, ближний или дальний свет, а так же двигатель заведён. При включении габаритов либо ближнего/дальнего света, ходовые огни выключаются автоматически. Если двигатель заглушить, свет автоматически выключиться.
В силовых ключах установлено три мощных полевых транзистора, это позволило отказаться от радиатора. При работе полевые транзисторы практически не нагреваются, температура корпуса нахоиться в районе 40ºС.
В схеме предусмотрено подключение двух перемычек S1 и S2. Ими можно выставить желаемую мощность в режиме дневных ходовых огней:
- Перемычки не установлены — 35%;
- Установлена S2 — 40%;
- Установлена S1 — 45%;
- Установлены S1 и S2 — 50%.
Небольшой видеообзор работы схемы:
![]()
Вторая схема может быть установлена на любой автомобиль и на любой свет фар (ближний или дальний). Блок собран на 8 ногом микроконтроллере PIC12F675. Выход блока подключается параллельно контактам реле, включающий эти лампы. Либо, плюсовой провод подключается к аккумулятору, а выходной, непосредственно на провод ближнего или дальнего света, подходящего к фаре.
Дополнив вторую схему переменный резистор R10, как на схеме ниже, и прошив микроконтроллер прошивкой DRL_pic12f675_ADJ.HEX, появиться возможность регулировать яркость ламп в режиме дневных ходовых огней в пределах от 0% и до ~70%.
![]()
Добавление нескольких деталей к последней схеме, позволит полностью отключать устройство от бортовой сети. После того, как машина завелась, реле включается с задержкой в 5 секунд, ещё через 5 секунд начинается плавный розжиг ламп до ранее установленного уровня. Это позволяет облегчить режим запуска двигателя в холодное время года, исключив дополнительную нагрузку на аккумулятор и генератор.
![]()
При прошивке микроконтроллера PIC12F675 не забывайте сохранить константу, находящуюся в последней ячейке памяти, так как восстановить её невозможно!
Вход «Масло» можно подключить не к датчику масла, а на лампу «Drive» в приборной панели (в машинах с автоматической коробкой передач), тогда режим дневных ходовых огней будет включаться после установки рычага АКП в режим «D». Так же, с приборной панели можно взять сигнал «Габариты» (подцепить к лампам подсветки приборной панели).
Применение микроконтроллера против схем на таймере 555, либо других ШИМ контроллеров, позволило реализовать плавный разогрев нитей накала ламп ближнего и дальнего света, что делает лампы фар практически вечными. Плавный разогрев нитей накала реализован в обоих схемах.
