Начну с того, что мой автомобиль был оборудован кондиционером, который просто включался и выключался кнопкой на панели отопителя. Сами понимаете, что нужно постоянно отвлекаться на то, чтобы то включить его, когда становиться жарко, то выключить, когда станет наоборот — холодно.
Отсюда, сам-собой, напросился вывод — кто-то (или вернее — что-то) должен делать это за меня. С микроконтроллерами я уже имел дело, и с цифровым термостатом — тоже. Не хотелось долго возиться — май, а с ним и жаркая погода, уже наступили. Поэтому я запустил в инете поисковик и приступил к осмотру объема и состава предложений по данному вопросу. Далее был выбран наиболее подходящий вариант — на AT90S2313 и 2-х символьном семисегментном светодиодном индикаторе .
Схема взята без переделок, я только изменил питание устройства, для устойчивого питания в автомобиле.
Итак, по схеме — автор применил AT90S2313 (или AtTiny2313), три кнопки управления и цифровой термостат DS1621. Он работает по двухпроводной шине I2C и имеет отдельный вывод, управляющий каким-либо исполнительным устройством. Автор использовал данную схему для управления нагревателем, а мне нужно было наоборот — управлять охладителем. Поэтому переделка управляющей программы была необходимой.
Автор любезно выложил исходник программы у себя на сайте и мне пришлось освоить BASCOM для его разбора (кстати довольно простой в освоении, правда код на выходе получается не очень компактным).
Программа совсем несложная и далее я выкладываю измененный мною код с моими комментариями.
.
Алгоритм тоже простой и суть его в следующем:
1. Начальная инициализация портов и переменных;
2. Загрузка в регистры термостата начальных порогов температуры (заниженные);
3. Перевод DS1621 в режим термостатирования и выдачи температуры;
4. По таймеру: опрос состояния кнопок, запрос и вывод на индикатор текущей температуры.
Моя доработка заключалась в следующем: реализация невозможности включения кондиционера при Т<13гр.С (при этом на индикаторе горит «Lo»), поддержание нижнего, а не верхнего (как у автора) порога температуры, уменьшил диапазон минимальной и максимальной температур (1град. вместо 2-х).
После включения питания индикатор высвечивает на 1 сек. все сегменты индикаторов — для контроля, затем показывает на 1 сек. значение температуры термостата (по умолчанию — 23гр.С) и далее переходит в режим отображения текущей температуры. Для того чтобы включить режим поддержания заданной температуры нужно нажать кнопку «ON/OFF». При этом на индикаторе высветится «On» и на 1 сек. высветится порог заданной температуры, после чего загорится точка правого сегмента, и индикатор будет переведен на отображение температуры в салоне. Если температура в салоне выше заданного значения хотя бы на один градус, то DS1621 переведет управляющий вывод (3) в высокое состояние и через реле включит нагрузку — т.е. кондиционер. Точка при этом начинает мигать с низкой частотой. Как только температура упадет до значения заданного порога, то управляющий вывод будет переведен в низкое состояние, реле разомкнет контакты и кондиционер выключится. Точка будет гореть постоянно, сигнализируя о включенном состоянии термостатирования. Для установления температуры, которую будет держать термостат, служат кнопки «UP» и «DOWN». Ими можно менять значение от 18 до 40. Однократное нажатие любой из этих кнопок служит для просмотра значения запрограммированной температуры, после чего следует возврат в режим отображения температуры, если кнопка больше не нажималась.
Повторное нажатие кнопки «ON/OFF» выключает режим термостатирования и, если кондиционер включен, то реле разомкнет его контакты. При этом на индикаторе кратковременно высветится «Of».
Очень важно правильно расположить сам датчик температуры в салоне. Сначала я расположил его на панели отопителя — там как раз была заглушка, в которую я ставил 2-х символьный индикатор, три кнопки и датчик температуры. Но оказалось, я не учел, что как раз под самой панелью стоит СД-ресивер, который очень хорошо греется и поэтому температура в нише над ним всегда выше салонной и кондей напрасно подолгу гоняет воздух. Пришлось переместить датчик в самый верх торпеды — там тоже стояла заглушка от какой-то кнопки. Я просверлил в ней целую «матрицу» отверстий для свободного доступа воздуха. Место оказалось удачным, т.к. располагающиеся ниже воздуховоды активно перемешивают воздух и обеспечивают его свободный доступ к датчику. Вместо отверстия на панели — откуда я убрал датчик — пришлось вставить еще одну кнопку — на включение всего устройства — т.к. мне не удалось побороть зависание контролера при пуске двигателя. Т.е. я не стал особо заморачиваться, т.к. уже жарко и хочется ездить с нормальным климатом, то я собрал простейшую схему с автоблокировкой реле, которое включало схему с контролером и выключало в момент обесточивания ключом зажигания.
По деталям: почти все брал в Чипе и Дипе.
1. Контролер: AT90S2313 — у меня был, но я его случайно запорол (тщательно мойте плату от глицеринового флюса). Поэтому был куплен AtTiny2313. Шил его через программатор, встроенный в BASCOM. Фьюзы — убрал деление частоты на 8, внутренняя частота — 4М (т.к. у автора таймеры все были на эту частоту настроены), BOD — не помню на сколько установил — 2.7 кажется.
2. DS1621
3. BC547 — 3 шт.
4. Реле TYCO: 5в. -управление, нагрузка — 5А, 250в — очень компактное, для распайки на плату.
5. Автомобильное реле 12в
6. 4 кнопки со светодиодной подсветкой.
Устройство собрано со стабилизатором напряжения и реле на макетной плате примерно 60Х40 мм, «запихнуто» в плоский пластиковый корпус вместе с автореле и платой коммутации (для удобства сборки/разборки). Для подсветки кнопок тоже собран стабилизатор на отдельной плате. Подсветка включается вместе с подсветкой приборов и габаритов.
Во время отладки программы использовался макетный набор из Чипа и Дипа. Очень удобная вещь — я прибалдел как только попробовал на нем собрать. Купил самого большого размера, какой был в магазине. Теперь у меня на нем сразу три схемы собраны. Схема, подобная этой, собирается на нем без пайки за 15-20 минут. Далее — к ней программатор через разъем — изменил код, перепрошил, включил — проверил — не то — по-новой… Чистые руки — можно и саму схему изменять и программу править не боясь испачкать клаву флюсом.
Ну а теперь — слайды!
Панель отопителя с установленным индикатором и управлением.
В работе — машина на солнце.
Под дырочками — платка с датчиком температуры.