На главную           Статьи              Ссылки                Схемы                Форум               Все новости    


 

Компьютер - PIC микроконтроллер





Термометр на DS18B20 и PIC16F628A, 

связанный с компьютером через USB


..........Хорошо известен и широко распространён сегодня датчик температуры DS18B20. Дёшев, легко купить, малогабаритный, надёжный. Может работать в сетях, когда на одном двухпроводном кабеле подключено несколько датчиков. Очень удобен, но требует для работы наличия микроконтроллера. А там где микроконтроллер, там и своя электронная схема и программа. При использовании переходника USB_USART схема выходит достаточно простой и паяется на макетной плате за пару часов. Чем проще схема, тем меньше работы по её изготовлению, а лень как известно двигатель прогресса, поэтому приступим.

..........Вот такая схема термометра на DS18B20, рассчитанного на работу с переходником у меня получилась:

Схема термометра на DS18B20 и PIC16F628A

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

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

..........Основное назначение термометра – показывать температуру. Этим занимается программа в компьютере. О программе немного поподробнее. Основное окно программы – всего лишь индикатор, на который выводятся показания температуры. По умолчанию выводится над трем в правом нижнем углу дисплея. При желании его можно переместить в другое место. Это кому как нравится, мне показался более подходящим правый нижний угол экрана.



..........Когда программа посылает запрос термометру, точка в левом верхнем углу индикатора краснеет. После получения ответа цвет точки становится зелёным. По цвету можно судить, что процесс измерения температуры датчиком прошёл удачно. Так же ведёт себя и светодиод термометра. При начале преобразования светодиод включается, после того как измерение завершено – гаснет.



..........Для того, чтобы добраться до остальных функций программы предусмотрено всплывающее меню, которое открывается при клике правой кнопкой мыши по индикатору температуры. В меню всего два пункта. Пункт «выход», при выборе которого программа закрывается и пункт «настройки», который нам собственно и нужен.



..........Кликаем по пункту «настройки», после чего получаем доступ к остальным функциям программы.



Настройки порта

..........По поводу настроек порта – выбираем в выпадающем списке тот порт, на котором у нас определился переходник. Увидеть номер порта можно в диспетчере устройств(подробнее здесь perehodnik.html ). Если переходник подключен и порт успешно открылся, то рядом с выпадающим списком увидим синюю надпись «порт открыт», если же что-то не так, то справа от выпадающего списка красная надпись «ошибка порта». Программа примерно раз в секунду проверяет подключен ли к нашему порту термометр, посылая проверочные запросы. Если термометр не обнаружен, то под выпадающим списком видим красную надпись «нет подключения». В случае, если термометр подключен, выводится зелёное подтверждение «устройство подключено». Если надпись «устройство подключено» появилась, то можете себя поздравить, Вы всё сделали правильно. Программа в микроконтроллере успешно запустилась и корректно отвечает на запросы компьютера.

Страница помощи

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

Автозагрузка

..........Если Вы решили использовать термометр для постоянного измерения, то выставив галочку в этом пункте, создадите ярлык программы термометра в папке «автозагрузки» Windows. Программа при этом будет автоматически стартовать при каждом старте системы. Убрать ярлык из автозагрузки можно сняв галочку. При автозапуске программы появляется возможность наблюдать на экране показания температуры когда пожелаешь, не беспокоясь о том, чтобы специально запускать программу термометра.

Запрос температуры

..........По умолчанию выставлен интервал запроса температуры один раз в три секунды. Можно изменить интервал в пределах 1…20 секунд или вовсе отключить запрос температуры. Есть непроверенная информация, что при слишком частых замерах, датчик DS18B20 немного завышает показания температуры, нагреваясь от той мощности, которую сам потребляет при измерении. Пока датчик ничего не измеряет, потребляемая им мощность близка к нулю и соответственно самонагрев тоже нулевой. Возможно со временем появятся на этот счёт проверенные сведения и можно будет точно знать оптимальный интервал запроса температуры.

ID  DS18B20

..........Нажав на эту кнопку можно определить 8 байтов, которые записаны изготовителем в EEPPROM датчика. Эти 8 байтов(выводятся в HEX виде) являются уникальным номером. Номер у каждого датчика свой – они никогда не повторяются. По номеру датчика программа, считывающая показания может определить какой датчик опрашивается, при наличии в сети нескольких одновременно подключенных DS1820. Но это тема для отдельного разговора. Данная кнопка может быть полезна тем, кто работает с датчиками DS18B20, объединёнными в сети 1 WARE.



..........Здесь левый байт – контрольная сумма, правый байт – номер серии 1 WARE устройств 0x28 для всех DS18B20 одинаков. Между ними сам уникальный код датчика. Эти данные, если они вам нужны можно скопировать, выделив их в строке и нажав CTRL+C. Затем можно вставить значение уникального номера в вашу программу, нажав CTRL+V.

..........Остальные настройки в отдельных комментариях особо не нуждаются и относятся к деталям отображения индикатора температуры на экране. Здесь все с успехом разберутся самостоятельно.

Прошивка для микроконтроллера      ds_04_hex.rar     

Программа для компьютера:       DS18B20_usart.rar



















Rambler's Top100