Всем привет!В начале прошлой зимы установил себе подогрев сидений от ВАЗ-2110. Штука классная и нужная зимой, но есть у нее один недостаток: через пару минут после включения начинает поджаривать задницу, а если выключить в мороз сиденье остывает моментально и становится тоже не очень комфортно. Решил модернизировать блок управления чтобы эти недостатки устранить.За основу взял восьмибитный микроконтроллер AVR Attiny2313, для которого была написана прошивка и изготовлена плата для установки в штатный десятошный корпус. Регулируется нагрев при помощи ШИМ: ток подается с постоянным напряжением в виде импульсов и чем они шире, а паузы между ними короче - тем сильнее нагревается элемент. Силовая часть каждого канала выполнена на MOSFET-транзисторе, индикация режима работы производится комбинацией двух светодиодов, красного и зеленого. Клеммы разъема для подключения, а также сами кнопки взяты из штатного блока.Блок имеет три режима нагрева: 30%, 60% и 100% от полной мощности. Каждый канал работает независимо друг от друга, последний выбранный режим работы запоминается в энергонезависимой памяти (EEPROM) и при следующем включении выбирается автоматически. При включении нагрева сначала на некоторое время включается режим интенсивного прогрева на полной мощности, после чего автоматически включается последний запомненный режим. Время интенсивного нагрева можно настроить в процессе эксплуатации, для этого при выключенном нагреве зажимается качелька включения водительского сиденья на 2 секунды, после чего блок включает водительский обогрев на полную мощность. Как только начало припекать, выключаем нагрев, блок запоминает время и переходи в штатный режим. В дальнейшем будет включаться именно на это время.Индикация каждого канала сделана двумя светодиодами: 30% - зеленый цвет, 60% - желтый, 100% - красный. Режим интенсивного прогрева индицируется миганием красным цветом, режим настройки времени - миганием зеленым.Хотелось сделать чтобы обновленный блок встал без переделок на имеющуюся проводку, но поскольку место под монтаж в блоке сильно ограниченно, пришлось использовать наиболее простую схему включения силового транзистора, которая подразумевает управление нагрузкой минусом и постоянным присутствием плюса на втором выводе нагрузки, а в штатном было наоборот: один вывод постоянно на массе и коммутируется плюс. Потому неизбежны небольшие переделки проводки.
Принципиальная схема:
В конечном варианте были незначительные отступления от данной схемы на случай возникновения наводок от зажигания, генератора и т.п. (МК очень чувствителен к помехам по питанию), но практика показала, что и без них все отлично работает.
В процессе работы над девайсом наткнулся на такое решение: http://www.drive2.ru/communities/e-stuff/blog/636105
Идея и реализация интересная, за счет того, что отказались от родных кнопок, который отъедают 60% полезной площади платы, в пользу микриков от обычной бытовой аппаратуры, удалось высвободить достаточно места для дополнительной обвязки МК, но пришлось колхозить свои стоечки для качелек из текстолита. Я надеялся, что получится снять родные и поставить на новую плату, но я ошибся, качество их изготовления осталяло желать лучшего и они были плотно завальцованы на плате и мне пришлось таки одну стоечку делать такую же самодельную. Также я сомневался, что микрики дадут достаточное усилие нажатия в такой конструкции, частично мои опасения нашли подтверждения в комментах на драйве. Кроме того, автором устройства был использован более дорогой микроконтроллер, в тоже время мой опыт показал, что более дешевого и компактного вполне достаточно.
На данный момент блок полностью готов, осталось только переделать проводку.
Чего в нем нет:
Возможности определять обрыв или КЗ в нагрузке и сигнализировать об этом. Хотел реализовть, но помешала банальная нехватка места, для измерения тока нужны довольно массивные резисторы, которые просто негде разместить в таком корпусе.
Возможности корректировать алгоритм работы по датчику температуры. Тут рассматривал два варианта: либо автоматически включать после длительной стоянки если температура воздуха ниже некоторого порога, либо установить термопару непосредственно под обивку сидений и поддерживать заданную температуру. Второй вариант посчитал утопичным и слишком перфекционистским, ибо понятия не имею как засунуть в сиденье термомару чтобы она давала объективные показания, когда само сиденье прогревается неравномерно. В тоже время прошивка занимает 98% отведенного для нее места в МК, потому отбросил и первый вариант. Можно было конечно сделать глубокую оптимизацию и/или переписать все на ассемблере, но для меня эта фича не на столько важна чтобы столько возиться.
Себестоимость:
1. Микроконтроллер Attiny2313-SU20 - 140р 1шт.
2. SMD светодиоды для индикации режима 9р 4шт (красные и зеленые по два)
3. Линейный стабилизатор 78L05 для питания МК - 25р 1шт
4. Керамические конденсаторы - 2шт по 5р
5. Резисторы 13шт - бесплатно со старой материнской платы.
6. Силовые MOSFET-транзисторы - 2шт, бесплатно оттуда же.
7. Светодиоды для подсветки кнопок - 2шт со штатной платы, бесплатно.
8. Кнопки 4шт - бесплатно, оттуда же.
9. Расход текстолита и химии для изготовления платы - ~20р
Итого: 231р.
Вот собстенно и все, надеюсь информация была для кого-нибудь полезна.