четверг, 21 января 2010 г.

Самодельный модуль стеклоподъемников

Попытаюсь, наконец, сделать первый содержательный пост.
Итак, имеем авто ВАЗ-2112, в комплектации без каких-либо устройств отбора мощности. В наличии стеклоподъемники передних дверей, приводимые в движение кнопками. Управление напрямую, т.е. нажал - едет, пока нажато.
Идея стара как мир - сделать доводчик стекол. Конечно, его можно просто купить, в продаже имеется масса китайских изделий, в составе сигналок (предполагаю), наверное, есть и отечественные, должны быть, хочется верить, анализом "рынка" я не занимался. Вообщем, покупной вариант никак не устраивал, т.к. он покупной и, кроме того, хотелось некоторых изменений и дополнений.
Устройство должно уметь:
  1. Управлять стеклоподъемниками напрямую, т.е. нажал и держишь - едет.
  2. Доводить стекло до конечного положения (вверх или вниз) по двойному нажатию соответствующей кнопки.
  3. Если стекло уже в пути, то короткое нажатие в любую сторону прерывает процесс.
  4. Подключение к штатной проводке авто, без всяких разрезов, скруток и т.д.
  5. Принимать сигнал извне, например от сигнализации, или от бортового компа, и при превышении определенной скорости авто закрывать(прикрывать) окна, чтобы не нарушалась аэродинамика :)
Собственно, главное отличие только в двойном нажатии, длинное нажатие меня всегда смущало, например, надо сдвинуть на чуть-чуть, но это дольше, чем короткое нажатие... и лови его потом по пути. Да и без двойного нажатия вся затея теряла изюминку.
Наверное, надо еще отметить, что на иномарках и современных отечественных машинах, кнопки стеклоподъемников, уже не совсем кнопки, а ближе к рычажкам. Насколько удобно "двойное качание" мне судить трудно.
Что касается подобных затей, то, например, здесь описан вариант такого доводчика, но несколько на другом принципе.

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

Железо
Если микроэлектронная часть в деталях неинтересна, там ниже будет схема.

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

Для измерения тока можно использовать как специализированные микросхемы, так схемы на базе операционных/инструментальных усилителей, ну и из более мелких частей тоже можно)
Был выбран первый и самый простой путь - спец. микросхема MAX4080, так как про ОУ я тогда ничего не знал, и вообще в микроэлектронике был новым человеком. Главный ее минус - это цена, и, возможно, доступность. Ток привода для заводского тросового механизма в "упертом" положении составляет 7-10А, при этом надо учитывать, что на заглушенной машине напряжение бортсети ~12В, а для заведенной ~14В (для экземпляров с исправным регулятором напряжения), соответственно токи так же будут отличаться.

Схема измерительной части целиком взята из даташита на MAX4080, как есть, без изменений, да и назвать ее схемой можно с натяжкой.
Там же в даташите, есть таблица с посчитанными номиналами резисторов. Меня устраивал диапазон токов до 25А, что по таблице указывало на резистор в 0.01 Ом. Удивительно, но и такой нашелся, зовется "LTO30 0.01 Ом" в корпусе TO-220, гуглится на "LTO030FR0100FTE3", ну это так, вдруг желание повторить еще не отбито.
На выходе MAX4080 диапазон напряжений 0-5В, что и было нужно. Еще обращаю внимание, что эта микросхема бывает в трех версиях с разными коэффициентами усиления (GAIN), что отражено в маркировке. Для выбранной конфигурации это MAX4080TASA и MAX4080TAUA, отличия в корпусе.
Cердцем прибора был выбран микропроцессор ATMega8535, уже не помню почему, вроде ножек надо было много. Питание на LM2574, по схеме из даташита один в один. Почему, не на 7805 или КРЕН - потому что греются не пропорционально приносимой пользе. Хотя, если у кого в машине холодно - рекомендую. (существуют слаботочные версии, например 78L05 с током 100 мА, эти не такие горячие и для питания МК их хватит, вот здесь есть схема по питанию) Управление приводами на релюшках, релюшки на ULN2003... слово "мосфет" я узнал значительно позже). Ну и восемь кнопок для управления всем хозяйством, с расчетом на будущее и дооборудование стеклоподъемниками задних дверей.
Ну и собственно схема

Схема подключения одного реле

4 реле на включение/выключение и, главное, реле определяющее полярность включения движка привода. Реле TRE2 - фактически 2 реле в одном, хотя можно использовать 2 обычных 5-контактных. Итого 5(6) реле вместо 8 на 4 двери.
Обращаю внимание, что по схеме подключения одновременно может работать только один стеклоподъемник. В программе МК введено ограничение, не позволяющее одновременно включить несколько стеклоподъемников, кроме того если какой-то из механизмов находится "в пути", нажатие любой кнопки останавливает процесс.

Плата для устройства была изготовлена методом ЛУТ (лазерный утюг, максимум подробностей тут), причем плата была двухслойная :) Это была первая моя плата напечатанная и вытравленная, была куплена двухслойная заготовка, и ничего не оставалось, гулять так гулять. Но делать для данного устройства многослойную плату не очень оправдано, мягко говоря, на втором слое у меня было почти пусто) Вообще, т.к. плата была первая, с разбегу не мог не наступить на несколько граблей в изготовлении. Рисунок платы пока не выкладываю, потому что к употреблению он не пригоден.

Ну и собственно фото того, что получилось








Радиатор стоит как раз на резисторе LTO, позже выяснилось, что он не нужен. На фото видно, что на плате есть что-то лишнее, чего нет на схеме, раскрою секрет.. это драйвер интерфейса RS-485, "задел" на светлое будущее, до сих пор в работе не участвует.
Фото релейной части не сохранились, там просто 4 реле и одно двойное, ничего хитрого. Схема питания на LM2574 была выполнена на отдельной платке, технологии не применялись, все на проводах.

Небольшое обновление от 01.09.2011, фото конструкции в сборе, под основной платой - релейная часть:





Программная часть
Алгоритм работы следующий: после прошивки устройство включается в режим обучения, о чем будет сигнализировать редко мигающий светодиод. В этом режиме необходимо вручную полностью открыть/закрыть каждое стекло. Когда стекло дойдет до конца, нельзя сразу отпускать кнопку, надо чуть подождать, чтобы ток достиг максимальных значений (1-2 сек вполне хватит). Программа в МК запоминает максимальные значения тока в обучающем режиме. После того как все стекла будут "обучены", если не нажимать некоторое время кнопки управления, устройство перейдет в рабочий режим (часто мигающий светодиод). Теперь при двойном нажатии, стекло должно дойти до упора, после чего реле отключится. Без перепрошивки вернуть устройство в обучающий режим нельзя. Как показала практика, устройство корректно отрабатывает как на заведенной машине, так и на заглушенной. Среда разработки CVAVR.
Прошивка только под два стекла и 4 кнопки, настройки портов ниже:
Кнопка №1 / вверх - PORTD.3
Кнопка №1 / вниз - PORTD.4
Кнопка №2 / вверх - PORTD.5
Кнопка №2 / вниз - PORTD.6
Реле №1 - PORTC.6
Реле №2 - PORTC.5
Реле TRE2 - PORTC.7 и PORTC.4
Это для использования как есть.
Еще в прошивку я собирался, но так и не добавил общее выключение "по таймауту", например секунд 30, если стекло в пути более 30 секунд - это значит что-то пошло не так. В текущей версии прервать процесс, в случае чего, можно только вручную, т.е. нажать на любую кнопку. Ну и диагностики нет никакой)

Внедрение в автомобиль

Для того чтобы не варварствовать над проводкой авто, было куплено 4 разъема стеклоподъемника 2109 (в десятке они такие), а так же набор клемм под обжим (на фото).
Позже оказалось, что несложно из кучки клемм сделать полноценный штекер, при содействии акрилового герметика.
Сразу скажу, что проводов было много, если кто решится повторить, то рекомендую сделать все на каких-нибудь разъемах, ну и все провода обязательно надо маркировать.
Само устройство поселилось в тоннеле пола, в задней его части, рядом с пепельницей.

Итоги
Скоро будет год, как устройство установлено в авто. Никаких серьезных сбоев за это время не было. Однако, в морозную погоду, когда стекло прихватывает намертво, устройство доводчиком работать не сможет, потому как ток сразу же будет достигать максимальных значений. То же самое может произойти в случае серьезного сопротивления движению стекла, например, грязь, перекос стекла, неисправность самого механизма. В качестве усовершенствования, можно сделать "раскачку стекла", вверх/вниз несколько циклов, если стекло примерзло, это поможет его высвободить.
Если бы сейчас я "переиздавал" устройство, то обязательно бы оснастил его звуковым сигналом для сигнализации завершения цикла полного закрытия/открытия (или добавил бы общее выключение по таймауту, см. описание прошивки).
Помимо основной функции доводчика, подразумевалась и еще одна - запоминание положения стекол по выключению зажигания (по времени перемещения), автоматическое закрытие всех стекол и восстановление предыдущего положения стекол при последующем включении зажигания (причем для восстановления положения должно было пройти времени не больше, чем, например 3 часа). Но пока эта затея поставлена на паузу.
Самое главное, что польза от устройства ощущается постоянно, кроме зимы, конечно, а удовольствие от того, что оно приносит пользу не передать... ))

По доводчику у меня все. На оригинальность не претендую, идея не нова, разве что двойного клика нигде не видел. Так же не претендую на 100%-ную грамотность схемотехники, но ведь работает )
В работе находятся несколько новых и не очень идей, будут новые посты.

P.S. от 29 апреля 2010
  Весеннее обострение не могло не обойти мой автомобиль стороной, и среди прочего, перестал  работать стеклоподъемник водительской двери... Я уже предвкушал "объем работ" по замене электромотора с последующей перенастройкой доводчика на новый привод, т.е. снять крышку тоннеля пола, извлечь устройство, принести к компу, сбросить обучение в прошивке, перепрошить и собрать все обратно)) ну и обучить новому электромотору. Это в худшем случае, если вдруг старые настройки будут негодны. И это все, не считая "удовольствия" от извлечения механизма стеклоподъемника из двери. К счастью, обошлось только знаком внимания: механизм был извлечен, все что можно было разобрать - разобрано и смазано. После сборки и установки на место, все работало, как часы! Самое ценное, что перенастраивать доводчик не пришлось, хотя само стекло теперь поднимается в два раза быстрее. Победа.

Исходник под CVAVR+прошивка source_hex.zip

10 комментариев:

  1. В не лучше было бы реализовать временное управление - типа "один клик" - автодотяжка, нажали и держим - "едет пока держим" ?
    Я себе думаю сделать именно так, искал схему определения перегрузки движка - вышел на этот сайт.. идея с махом интересная, обдумаю...

    ОтветитьУдалить
  2. Можно и так, только, если надо остановить уже едущее стекло, один раз нажать будет мало - придется держать, пока не пройдет время одного клика. Надо пробовать насколько будет удобно.
    К замеру тока, рекомендую ловить шум привода, как в статье http://radiokot.ru/circuit/digital/automat/04/
    и таймаут на выключение.
    Особенно, если в авто стеклоподъемники переделаны на работу при выключенном зажигании.

    ОтветитьУдалить
  3. Есть вопросы по Вашему доводчику стекол.
    Если не сложно свяжитесь со мною.
    wv7@mail.ru
    icq 178097718
    Алексей

    ОтветитьУдалить
  4. Алексей
    Ссылка на исходники не работакт если можно скиньте пожалуйста в посту
    yuri622302@mail.ru

    ОтветитьУдалить
  5. Очень интересно. Спасибо за вариант сокращения количества реле.
    Только как я понял, это не классический доводчик [b]всех стекол[/b] при постановке на охрану.
    В "Схема подключения одного реле" есть ошибка. Проводник GND не доведён до контактов NC.

    ОтветитьУдалить
    Ответы
    1. Спасибо за замечание, поправил.
      Ну, до классического доводчика ему еще нужен выход на сигналку и логика закрытия всего по очереди, а одновременно закрывать, да, он никогда не сможет.

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

    ОтветитьУдалить
  7. солидарен с автором последнего комментария! трансформатор выполняет роль датчика вращения якоря эл-двигателя. Определение конечной точки останова двигателя по току очень часто даёт ошибки.Это происходит в тех случаях когда механизм подъёмников подклинивает. и как следствие авто остаётся с полуоткрытым стеклом...(лёгкой добычей)

    ОтветитьУдалить
    Ответы
    1. Коллеги, я же и не утверждаю обратное) о чем писал во втором комментарии к посту

      Удалить