09.06.2012

Двухточечный термометр на DS18B20

    И так, с чего-же начались мои попытки программирования, познания микроконтроллеров и создание новых устройств?
    Всё просто - берём какой-нибудь проект с открытым кодом (желательно простой и кривой, такой как например термометр, так как его можно всегда усовершенствовать), выбираем и собираем программатор, находим литературу по используемому в выбранной конструкции контроллеру, находим перечень и описание инструкций, компилятор, и понеслось...
    Собираем кривой JDM программатор, пытаемся влить прошивку в контроллер, прошивка не проходит проверку, пытаемся разобраться с программатором, палим контроллер...

    Собираем другой программатор - на этот раз "IC-prog", мучаемся с дополнительным питанием, добиваемся нормальной работы, делаем платы переходники для AVR-ов, радуемся жизни.

    Покупаем книжку "Измерение, управление и регулирование с помощью PIC микроконтроллеров (автор - Дитер Кохц)", и начинаем разбираться как устроен микроконтроллер, как он работает, что есть "внутри", что он может, и как этой всей начинкой управлять. Книжка достаточно грамотно написана, и для полного понимания работы программ изучаем систему команд и разбираем один из приведённых в книге исходников. Во время моего изучения микроконтроллеров у меня по мере понимания работы данного типа микросхем было желание написать более подробный самоучитель с примерами наиболее необходимых подпрограмм написанных на Ассемблере, но данное желание по мере изучения постепенно угасло, да и я уже забыл PIC-и как страшный сон.

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

    Полностью объяснять как оно устроено, давать полную схему переделанного девайса я не буду, внизу статьи находится ссылка на архив с платой и прошивкой находятся внизу статьи.
Из необходимой информации скажу несколько слов о датчиках и корпусе в который это всё достаточно удобно поместилось.
    Корпус был куплен на местном радио рынке и называется KM-26N (я так понял это корпуса фирмы "МастерКит").
    Датчики термометра оказались достаточно точными и удобными в использовании, эти датчики я применяю теперь во всех своих конструкциях. При использовании длинного провода мне пришлось понизить сопротивление резистора подтяжки DQ на Vcc (у меня нормально начал работать при сопротивлении 5,1k).

    После первого включения замечаем что перед буквой "U" (улица) постоянно светится пробел зарезервированный под минус, нет гашения незначащих нулей и когда начинаем разбирать исходник - в начале программы есть кусок кода который вообще не работает и автор судя по всему не использовал выключатель питания а вырубал свой девайс по таймеру и запускал по кнопке. Выключатель питания в данной конструкции я оставил, добавил подсветку дисплея и переделал вывод информации на дисплей (это было самым первым что я сделал).

    В архиве есть печатная плата но она не рассчитана на подключение подсветки. Для подсветки дисплея я взял белый "безлинзовый" светодиод и сточил его до нужной толщины, подключил к PA2 (выв. 1) контроллера через резистор на общий, кнопка подсветки была подключена к PA3 (выв. 2), и вторым выводом на плюс питания.
    Питание устройства (чуть не забыл) - 3 батарейки AAA установленные в отсек приклеенный на заднюю крышку корпуса, изначально я даже использовал подсевшие батарейки и при ежедневном использовании и включении с подсветкой батарейки менял один раз за 5 лет.

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

Комментариев нет:

Отправить комментарий