Удлинитель сигналов поворота AKA лентяйка

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

Фичер очень удобный и по умному называется удлинителем сигнала поворотов (по англ. comfort turn signal или one-touch turn signal), а в народе зовется лентяйкой.

Пример работы:

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

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

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

comfort_1

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

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

comfort_2

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

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

Вот на этом сайте я почерпнул основную идею устройства, схемы и программное обеспечение – http://nsskn.narod.ru/longturn/index.html. Моя версия отличается более продвинутой системой питания микроконтроллера и слегка модифицированной программой.

В оригинальной версии лентяйки используется простой линейный стабилизатор напряжения 7805. В свое время я столкнулся с серией глюков в работе микроконтроллера запитанного от бортовой сети авто через 7805, и с тех пор уделяю этой проблеме повышенное внимание. Свои мысли на этот счет я уже описывал вот в этой статье. В данном случае я пошел еще дальше, и поставил специальный стабилизатор напряжения, спроектированный для работы в автомобиле – TLE4275. У этого стабилизатора есть две дополнительные ножки, одна из которых подключается к ноге RESET микроконтроллера, и включает его только когда напряжение на выходе стабилизатора находится в пределах нормы, а с помощью второй ноги и простой RC цепочки можно задать временную задержу для сигнала первой ноги (см. даташит).

Теперь по поводу софта – в оригинальной версии лентяйки автор реализовал функцию автоматического включения аварийной сигнализации поворотниками при движении задним ходом. Поскольку ног у микропроцессора, предлагаемого к использованию немного, сигнал движения задним ходом предполагалось подать на ногу RESET, перепрограммированную под обычный порт GPIO (это предусмотрено конструкцией микропроцессора и делается с помощью фьюзов во время прошивки, см. даташит на ATtiny13).

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

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

Здесь можно скачать мою, адаптированную версию.

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

При прошивке микропроцессора необходимо выставить следующие фьюзы:

fuse

Схему устройства, по большому счету, я не менял. Изменение коснулось лишь стабилизатора питания.

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

Вот моя слегка модифицированная версия схемы (кликабельно):

comfort_turn_RELAY

Схему и плату можно скачать здесь.

Для схемы подойдут любые реле, коммутируемые 12тью вольтами, и рассчитанными на ток порядка 4 ампер и выше (2 лампочки поворотников по 20 ватт – менее 4 ампер тока). В схеме используется интегральный массив транзисторов Дарлингтона ULN2804 для коммутации реле и сигнальных линий.

lentyajka_1lentyajka_2lentyajka_3

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

lentyajka_4

Коробочка для платы была сконструирована в SolidWorks’е и распечатана на трехмерном принтере. Разумеется, это необязательно, и плату можно разместить в любом подходящем корпусе. Но если кому надо – вот модель коробочки.

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

  1. Земля
  2. +12 вольт при включенном зажигании – с этого провода будет браться питание системы, соответственно, она должна работать только при включенном зажигании, а не постоянно (это важно, поскольку в жгуте также есть провод, на котором +12 вольт имеется вне зависимости от зажигания)
  3. Сигнальный провод левого поворота – на нем появляется прерывистое напряжение при мигании левого поворота
  4. Сигнальный провод правого поворота – на нем появляется прерывистое напряжение при мигании правого поворота
  5. Общий сигнальный провод – на нем появляется прерывистое напряжение при мигании и левого и правого поворотников

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

lentyajka_5

Лентяйка стоит у меня уже более трех месяцев и работает безупречно. Мне часто приходится ездить по работе на других авто, в которых нет лентяйки (например, годовалый Ford Focus – не понимаю, как в современной машине нет подобного функционала), и я скучаю по ней в таких поездках.

Напоследок, хочу сказать, что при работе лентяйки слышно легкое пощелкивание реле. Это не мешает совсем, но вот на этом форуме была предложена идея использовать полевые транзисторы, вместо реле. Холодным осенним вечером девайс был собран:

lentyajka_8

lentyajka_7

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

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

Тем не менее, вот схема и плата под версию с транзисторами – авось кому поможет.

Буду рад ответить на вопросы в комментариях.



У этой записи 33 комментариев

  1. Serg.73

    Добрый день.Повторил поворотники,но время получилось 10 секунд.Как можно уменьшить до 5 секунд?Перепрошивал много раз проверял Fuse(SinaProg,AVRDUDEPROG)?Может у меня гдето ошибка?Пожалуйста помогите.TLE4275 заменил на L78LR05b ноги 2-4 менял местами.

  2. -=MindHunteR=-

    @ Serg.73:
    Привет. О каком времени идет речь?

  3. Serg.73

    Время срабатывания реле.Реле включенное 10 секунд.

  4. -=MindHunteR=-

    @ Serg.73:
    Какое именно реле? Отсчетом времени занимается родное реле поворотников, установленное в машине производителем.

  5. Serg.73

    Я в машину еще не подключал.Проверяю еще на столе,но я думал что каждое из этих 2х реле на плате включается на 3-4 секунды дублируя контакты ручки поворотника?

  6. -=MindHunteR=-

    @ Serg.73:
    =) вы неправильно думали. Реле на плате включается, и остается включенным считая мигания блока поворотников в машине. А если миганий не происходит (а это именно то, что случилось у вас на столе), то через несколько секунд, оно отключается, почуяв неполадку.

  7. Serg.73

    Большое спасибо!Буду проверять уже в машине.Извините за беспокойство.Хотел заменить два реле на сдвоенное NV231-2c но большой экономии места нет.Да и плату переделывать не охота.

  8. Serg.73

    Проверил по другому способу!Так и есть 3 импульса и выключается!А можно попросить увеличить до 5 импульсов(если не затруднит)?

  9. -=MindHunteR=-

    Serg.73 написал:

    Большое спасибо!Буду проверять уже в машине.Извините за беспокойство.Хотел заменить два реле на сдвоенное NV231-2c но большой экономии места нет.Да и плату переделывать не охота.

    Да нет проблем. Рад помочь.

    Serg.73 написал:

    Проверил по другому способу!Так и есть 3 импульса и выключается!А можно попросить увеличить до 5 импульсов(если не затруднит)?

    Я могу это сделать, да, но не сегодня – только через пару дней.
    Вы можете и сами – всего лишь нужно поменять 1 цифру в программе, исходники которой у вас уже скачаны, и скомпилировать ее заново.
    Комментарии в программе представлены.

  10. Serg.73

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

  11. -=MindHunteR=-

    @ Serg.73:
    Я постараюсь не забыть.

  12. Serg.73

    @ -=MindHunteR=-:
    Буду очень признателен!Уже и корпус готов,осталось цапоном вскрыть и можно ставить в машину.

  13. -=MindHunteR=-

    Версия с 5 миганиями – тут – я не проверял, работает ли.

  14. Serg.73

    @ -=MindHunteR=-:
    ОГРОМНОЕ СПАСИБО!!!Только пришел с работы,перепрошил на 5 миганий.На столе проверил все работает!Выходные постараюсь поставить в машину.Еще раз ОГРОМНОЕ СПАСИБО!!! 😀

  15. -=MindHunteR=-

    Незачто.
    Установишь – можно будет запостить тут фото и т.п.

  16. Serg.73

    -=MindHunteR=- написал:

    Незачто.

    Установишь — можно будет запостить тут фото и т.п.

    Постараюсь,все таки я сделал второй вариант с сдвоенным реле.Как я намучился,в пртеусе не нашел под него корпус.Пришлось подгонять методом подгонки контактов реле под площадки.Но вроде получилось и работает тише.

  17. -=MindHunteR=-

    В протеусе очень легко рисовать принтауты под новые элементы. =) Надо токо знать как )))
    Я уже наверно года два все собираюсь сделать видео-гайд по этому делу….

  18. Serg.73

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

  19. -=MindHunteR=-

    @ Serg.73:
    Замечательно! *DRINK*
    Спасибо за положительный отзыв! *OK*

  20. Serg.73

    @ -=MindHunteR=-:
    Добрый вечер!Подскажите как можно разместить фото изделий?

  21. -=MindHunteR=-

    Есть три варианта:
    1) залить на любой хостинг картинок и выложить тут линки
    2) уменьшить картинки до ширины 628 пикседей, залить на любой хостинг картинок, и выложить тут картинки, пользуясь кнопкой Картинка.
    3) если картинки хорошие, качественные, в фокусе – можно прислать их мне, с пояснениями и схемами, или вообще в виде статьи, и я опубликую их. Либо вдобавок к этой статье, либо как отдельную. Зависит от вас.
    O=)

  22. Serg.73

    @ -=MindHunteR=-:
    Отправил по почте.

  23. Serg.73

    Добрый вечер.Я отправил схему по сдвоенному реле.Подскажите пожалуйста я прошиваю SinaProg и у меня получается High Fuse E9 Low Fuse 6A это правильно?Какую частоту выставлять надо?
    Должно получиться H 4A L F9 ?
    Я неправильно прошил но самое смешное что все работало high f F9 low f 4A так правильно?

  24. -=MindHunteR=-

    @ Serg.73:
    По поводу схемы – на днях опубликую. Много работы – все никак не доберусь до этого дела.

    По поводу SinaProg – я никогда им не пользовался и не имею понятия, че там с фьюзами. Надо рыть мануалы и даташиты. И частоту чего вы имеете ввиду?

  25. Serg.73

    Спасибо за помощь!Мне надо было на AVR калькуляторе выставить фузы а потом записать в память и только затем прошивать программу.Но мы с начало делаем а затем читаем инструкции 😀 .Я в плате дорожки сделал чуть чуть по шире и под смд перемычки,диоды площадки переделал.А на стабилизаторе ноги 2 и 4 местами поменял(разница в цене больше 11 раз!по функции они похожи)

  26. Serg.73

    Добрый день.У меня вопрос по версии на полевиках там стоят R4/R5 по 30 кило ом может их надо уменьшить до 1 кило ома, и на затвор поставить 50-100 ом сопротивления? 8)

  27. -=MindHunteR=-

    Serg.73 написал:

    Добрый день.У меня вопрос по версии на полевиках там стоят R4/R5 по 30 кило ом может их надо уменьшить до 1 кило ома, и на затвор поставить 50-100 ом сопротивления?

    Может быть, может быть… Надо экспериментировать… На столе работало как есть. В машине нет.

  28. StasMsk

    Serg.73 а можно заказать и купить у вас готовый блок? живу в Москве,у меня тоже ниссан

  29. Serg.73

    @ StasMsk:
    Я просто повторил проект MindHantera с некоторыми изменениями для себя и у меня опель омега.Вежливые поворотники работают отлично еще раз большое спасибо автору!Я бы рад помочь но живу в Харькове =-O .

  30. as112

    День добрый. По исходникам, что вы выложили, при компиляции не работает “спасибо”. Думаю из-за того, что некоторые строки взяты в комментарий:
    switch (dt & 0x03) // Проверка на включение
    {
    case 0x00:
    OutLeft = 0x00;
    OutRight = 0x00;
    flag = 0x04;
    break; // Аварийка как будто уже отработали переходим на ожидание выключения
    /*
    OutLeft = 0x01;
    OutRight = 0x01;
    flag = 0x03;
    break; // Аварийка “спасибо”

    */
    case 0x01:
    cnt = 0x00;
    flag = 0x02;
    OutRight = 0x01;
    break; // Вправо включаем правое реле и считаем моргания
    case 0x02:
    cnt = 0x00;
    flag = 0x01;
    OutLeft = 0x01;
    break; // Влево включаем левое реле и считаем моргания
    }
    Подскажите, как исправить, у меня не получается, или пришлите на мыло рабочий исходник dmitry.moushynski@gmail.com Спасибо

  31. -=MindHunteR=-

    Привет.

    switch (dt & 0x03) // Проверка на включение
    {
    case 0x00:
    // OutLeft = 0x00;
    // OutRight = 0x00;
    // flag = 0x04;
    // break; // Аварийка как будто уже отработали переходим на ожидание выключения
    cnt = 0x00;
    OutLeft = 0x01;
    OutRight = 0x01;
    flag = 0x03;
    break; // Аварийка “спасибо”

    case 0x01:
    cnt = 0x00;
    flag = 0x02;
    OutRight = 0x01;
    break; // Вправо включаем правое реле и считаем моргания
    case 0x02:
    cnt = 0x00;
    flag = 0x01;
    OutLeft = 0x01;
    break; // Влево включаем левое реле и считаем моргания
    } // switch

    Удачи.

  32. as112

    Все гуд, спасибо!! *THUMBS UP*

Добавить комментарий