10.04.2013
Развитие проекта.
Покатался я с ДХО в таком виде. Всё устраивает, но есть куда улучшать. Улучшения начались с
модернизации реле ПТФ для плавного влючения. Далее решил сделать, чтобы ДХО работали без включения габаритов, т.е. алгоритм работы будет следующий:
- Двигатель не заведён - ДХО не включаются.
- Ручник поднят - ДХО выключены. Ручник опущен - ДХО включаются через 2 секунды. Если опять поднять ручник, то ДХО выключатся через 2 минуты.
- Включен свет (ближний или дальний) при заведённом моторе, ДХО гаснут через 5 секунд. При выключении света ДХО загораются через 2 секунды.
- Включение/выключение функции ДХО осуществляется 5-ти кратным вкл/выкл ПТФ. (Включение функции подтверждается 5-ти кратным морганием ПТФ, выключение - 3-х кратным)
- При включенной функции ДХО ручное включение ПТФ выключает фары, а при выключенной функции - включает фары.
В виде блок-схемы это выглядит немного ужасающе...
Страшно? Да я сам в шоке. Ладно, покажу только ту часть, в которой принимается решение что делать с выходом.
Схема осталась почти неизменной, плата соответственно тоже.
Вот общая схема.

- sch_general.gif (17.02 КБ) Просмотров: 11647
Как видно, отличие от предыдущего варианта, только раздельное управление и обратная связь ПТФ. Единственное "Но". Теперь схема будет ставится в разрыв провода управления реле ПТФ. Обычно реле управляется землёй, но возможны частности, например я встраивал эту платку в блок предохранителей и там стоит транзистор для управления реле, который управляется единицей (+5В) прямо от контроллера блока предохранителей. Поэтому схему малость модернизировал под себя (в прошивке надо будет поменять всего один символ, но об этом позже.
Моя схема.

- sch_my.gif (16.49 КБ) Просмотров: 11647
Буду описывать общую схему. Все входы имеют активный уровень "0", т.е. Включен свет, на входе должен быть "0", затянут ручник - "0", Включены ПТФ - "0".
В прошивке есть следующие строки:
- Код: Выделить всё
//Входы. Если активный уровень (включено) "1", то инверсии не надо, например (#define FogIn PINB.3). Если активный "0", то надо инвертировать, например (#define FogIn !PINB.3)
#define LightIn !PINB.4 //Вход управления реле ближним светом ("0" - Свет включен).
#define FogIn !PINB.3 //Вход управления ПТФ ("0" - ПТФ включены принудительно)
#define ParkIn !PINB.1 //Вход ручника ("0" - ручник поднят)
Для моей схемы (управление ПТФ единицей) второй дэфайн выглядит так, т.е. без инвесии:
- Код: Выделить всё
#define FogIn PINB.3 //Вход управления ПТФ ("1" - ПТФ включены принудительно)
Это думаю понятно.
Теперь выход. Если надо управлять единицей, т.е. "1" - включены ДХО, то следующую строку оставляем в покое:
- Код: Выделить всё
#define OutActive1 //Активный уровень (ДХО включены) на выходе "1". Для активного "0" закоментировать эту строчку.
Если надо управлять нулём, то коментируем строку полностью:
- Код: Выделить всё
//#define OutActive1 //Активный уровень (ДХО включены) на выходе "1". Для активного "0" закоментировать эту строчку.
Собственно в этом проекте больше коментов, чем кода, поэтому кому надо - разбирайтесь
Исходник написан в CodeVisionAVR v2.05.3 и прилеплен во вложениях. В проекте установлены фьюзы (4.8MHz, Start-up Time - 14CK + 64 ms Slowly rising power), для тех, кто шьёт не из кодевижена:

- fuses.png (2.07 КБ) Просмотров: 11647
Подключение. Если предполагается использовать отдельные модули ДХО, тонеобходимо поставить реле, которое будет подавать на них питание. Реле будет управляться минусом. Если в качестве ДХО будут использоваться передние ПТФ (как у меня), то подключение можно изобразить вот так:
Т.е. контроллер ставится в разрез провода управления реле передних ПТФ. Остальное думаю понятно.
Ну и
установка в Авео!