Site Loader

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

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

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



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

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

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



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


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

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

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


……….По поводу настроек порта – выбираем в выпадающем списке тот порт, на котором у нас определился переходник. Увидеть номер порта можно в диспетчере устройств(подробнее здесь 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

Простой термостат на PIC16F628A и DS18B20

Опубликовано автором Moldik

Термометр позволяет измерять температуру в диапазоне от -55 до +125 градусов, а также осуществлять функции термостата во всем диапазоне температур, с любым гистерезисом. Реализована и функция контроля ошибок датчика. Кроме того, я постарался сделать его максимально универсальным, поэтому здесь размещено две схемы, одна под индикатор с общим анодом (ОА), другая под индикатор с общим катодом (ОК). Также есть возможность применять датчики DS18B20 и DS18S20.

Управление осуществляется 2-мя кнопками. Нажатием кнопки +1 активируется режим настройки температуры ВКЛЮЧЕНИЯ реле. Кратковременно выскакивает надпись On и далее мигают цифры установленной температуры включени. Кнопками +1 и -1 можно изменять это значение от -55 до +125 градусов. После установки температуры нужно подождать несколько секунд, на дисплее кратковременно мигнут три тире (—), новые данные будут записаны в EEPROM и прибор перейдет в основной режим отображения температуры. Аналогично, нажав кнопку -1 на дисплее появится надпись OFF и начнет мигать значение температуры ОТКЛЮЧЕНИЯ реле.

Точно так же после паузы в несколько секунд появятся три тире и произойдет сохранение в EEPROM температуры отключения реле.

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

реклама

Для включения режима настроек типа индикации и типа датчика нужно удерживая кнопку +1 подать питание. Так же этот режим автоматически включается при первом включении устройства, после прошивки микроконтроллера. В этом режиме сначала поочередно на несколько секунд будут отображаться цифры 123 то под общий АНОД, то под общий КАТОД. В момент когда цифры отображаются правильно нужно нажать любую кнопку, режим индикации будет запомнен.

Далее на дислее будет мигать надпись или (-S-) или (-b-). Кнопками можно выбрать тип датчика, 18S20 или 18B20 — -S- и -b- соответственно. А не нажимая кнопки несколько секунд выбранный датчик будет запомнен и все настройки сохранятся в EEPROM. Термостат перейдет в основной режим работы.

В случае получения ошибочных данных с датчика на дисплее появляется надпись (Err) — ошибка. Ошибка появляется только в том случае, если ошибочные данные получены с датчика 3 раза подряд (защита от случайных сбоев). При ошибке функции термостата будут выключены, реле отключено.

Простой универсальный термостат на микроконтроллере PIC16F628A и датчике DS18B20 (вер.2)

реклама

Термометр позволяет измерять температуру в диапазоне от -55 до +125 градусов, а также осуществлять функции термостата во всем диапазоне температур, с любым гистерезисом. Реализована и функция контроля ошибок датчика. Кроме того, я постарался сделать его максимально универсальным, поэтому здесь размещено две схемы, одна под индикатор с общим анодом (ОА), другая под индикатор с общим катодом (ОК). Также есть возможность применять датчики DS18B20 и DS18S20. Схемы остались прежними, изменилась только прошивка.

Управление осуществляется 2-мя кнопками. Нажатием кнопки +1 активируется режим настройки температуры ВКЛЮЧЕНИЯ реле. Кратковременно выскакивает надпись On и далее мигают цифры установленной температуры включени. Кнопками +1 и -1 можно изменять это значение от -55 до +125 градусов. После установки температуры нужно подождать несколько секунд, на дисплее кратковременно мигнут три тире (—), новые данные будут записаны в EEPROM и прибор перейдет в основной режим отображения температуры. Аналогично, нажав кнопку -1 на дисплее появится надпись OFF и начнет мигать значение температуры ОТКЛЮЧЕНИЯ реле. Точно так же после паузы в несколько секунд появятся три тире и произойдет сохранение в EEPROM температуры отключения реле.

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

Для включения режима настроек типа индикации и типа датчика нужно удерживая кнопку +1 подать питание. Так же этот режим автоматически включается при первом включении устройства, после прошивки микроконтроллера. В этом режиме сначала поочередно на несколько секунд будут отображаться цифры 123 то под общий АНОД, то под общий КАТОД. В момент когда цифры отображаются правильно нужно нажать любую кнопку, режим индикации будет запомнен. Далее на дислее будет мигать надпись или (-S-) или (-b-). Кнопками можно выбрать тип датчика, 18S20 или 18B20 — -S- и -b- соответственно. А не нажимая кнопки несколько секунд выбранный датчик будет запомнен и все настройки сохранятся в EEPROM. Термостат перейдет в основной режим работы.

В случае получения ошибочных данных с датчика на дисплее появляется надпись (Err) — ошибка. Ошибка появляется только в том случае, если ошибочные данные получены с датчика 3 раза подряд (защита от случайных сбоев). При ошибке функции термостата будут выключены, реле отключено.

В термостате применен 3-х разрядный светодиодный индикатор с общим анодом (или общим катодом). Индикация температуры осуществляется так: температура ниже -9 градусов, отображается знак минус и 2 цифры. От -9 до +99 добавляется символ градуса в 3-м знакоместе, при плюсовой температуре знак + естественно не отображается. Температура выше 100 градусов также отображается без символа градуса. В качестве датчика температуры использован ходовой, можно сказать классический датчик — DS18B20 или DS18S20 (DS1820). Хоть термостат и может работать на температурах до 125 градусов, длительная эксплуатация его в таких режимах не рекомендуется, датчик долго не проживет. Оптимальная макс.температура 80…90 градусов.

PIC, Микроконтроллеры, Термометр

термометр

USB-термометр

SD CARD
W25Q64 Флэш-рекордер
Фоторамка PIC16F690
Цветная фоторамка OLED
SD FAT16/32 для bmp
PETIT FAT bmp Дисплей
Дверной звонок с SD/EEPROM
Фоторамка Arduino
СЧЕТЧИК ЧАСТОТЫ
Счетчик миллигерц
Счетчик PIC для Android
MAX7219 СВОЙСТВЕННЫЙ СВЕТИ
WIFI Частотный счетчик
Генератор частот
OLED Counter PIC12F629
Счетчик частоты частоты
TFT PIC16F628A
SSD1306 Counter PIC16F628A
SSD1331 CORTERMENTER
88. 8000 800088888888 гг. Счетчик для ПК
Счетчик 1 МГц для ПК
Счетчик со светодиодами
Счетчик с осциллографом
Счетчик с ЖК-дисплеем 16 x 2
Счетчик с ЖК-дисплеем Arduino
Счетчик Android 6 МГц
Счетчик Android NIXIE
Счетчики Bluetooth
Счетчик USB
OBD2
OBD2 Счетчик оборотов двигателя
OBD2 Диагностическое приложение
ОСЦИЛЛОСКОП
Осциллограф Arduino для ПК
Осциллограф Arduino OLED
Осциллограф Android
Осциллограф TFT
Осциллограф USB
THERMOMETER
OLED-термометр PIC12F629
OLED-комнатный термостат
TFT-часы и термометр
Светодиодный термометр
USB-термометр
Последовательный термометр
Последовательный термостат
USB-датчик DS18B20
ТАЙМЕР / ЧАСЫ
Часы реального времени DS3231
Светодиодный таймер TM1637
OLED-термометр с таймером
TFT-термометр с таймером
Светодиодный таймер
ЖК-таймер
Часы-термометр
Говорящие часы PIC16F628A
Говорящие часы Android
WiFi
WiFi, Ethernet
WiFi Термометр
WiFi ESP8266
USB
USB 16×2 LCD
USB TFT дисплей BMP
USB измеритель
USB ввод-вывод
USB ввод-вывод Android
ПОСЛЕДОВАТЕЛЬНЫЙ ПОРТ
Последовательный текст TFT
Последовательные входы и выходы
Последовательный порт LCD
MCP3201 на последовательном порту
Аналоговый сигнал на последовательный
ДРУГОЕ
Датчик HC-SR04
Амперметр OLED
Цифровой ввод/вывод ПК (без кодирования)
Аналоговый ввод ПК (без кодирования)
Аналоговый сигнал на LPT
ЖК-дисплей на LPT
Умягчитель воды
3,7–5 В
Солнечное зарядное устройство
PIC Music
Кодовый замок с ЖК-дисплеем
МАЛЫЕ ПРОЕКТЫ  
ДОМ   Технические советы  

USB-ТЕРМОМЕТР ДЛЯ ПК

USB-термометр с использованием DS18B20 в качестве датчика температуры. Включено Код VS2010 vb, код PIC C и принципиальная схема. PIC отправляет 2 байта температуры, а USB-UART открывает последовательный порт на ПК. Приложение VB позволяет выбрать активный порт.
Программное обеспечение предназначено для PIC16F1827 и PIC16F628A, приложение и схема VB предназначены для обоих PIC.
USB-UART можно купить на eBay: https://www.ebay.co.uk/sch/i.html?_from=R40&_trksid=p3519243.m570.l1311&_nkw=usb+to+uart
Вы можете свободно использовать принципиальную схему и код без ограничения.

 

USB-ТЕРМОМЕТР

USB-термометр с использованием диоды в качестве датчика температуры. Включено Код VS2005 C#, код PIC ASM, код PIC C и принципиальная схема. Микроконтроллер PIC имеет 10-битный аналог. в цифровой преобразователь. Схема питается от USB. Интерфейс к ПК относится к классу HID.
Диод делает линейную температуру датчик, напряжение перехода изменяется примерно на 2,32 мВ/градус. Датчик представляет собой 4 последовательно соединенных диода 1N4148.
КАЛИБРОВКА : Калибровка датчика и другие компоненты в схеме выполняются в приложении для ПК. Когда вы запускаете приложение в первый раз, оно создает файл «cal.dat» в той же папке. Файл имеет фактическую температуру, введенную пользователем. Введите фактическую температуру с другого термометра, который, как вы знаете, показывает правильно, и нажмите «Калибровать».
HID class (человеческий интерфейс устройство) — это класс устройств, таких как мышь и клавиатура, скорость передачи данных ограничена 64 КБ/с.
Код C# изменен Код Microchip из среды USB, Microchip Solutions v2012-04-03 .
Исходный код получен из бесплатного программного обеспечения из следующих источников: http://janaxelson. com/usb.htm, http://openprog.altervista.org/USB_firm_eng.html
Код был написан на MPLAB 8x и скомпилирован с помощью C18 версии 3.30. PIC18F2550 был запрограммирован с помощью Velleman K8076.
Программное обеспечение включает код PIC и код C#. Вы можете свободно использовать принципиальную схему и C# без каких-либо ограничений. ограничения.

 

Описание цепи
См. также Технические советы

.

ПИК18Ф2550
Контакт 3 является аналоговым входом. Диапазон входного напряжения +Vref минус -Вреф.
Контакт 4 — это -Vref, контакт 5 — это + Vref, на 2,5 В.
LM385 2.5 — прецизионный стабилитрон, можно использовать аналог.
Контакт 14 — это внутренний источник питания 3,3 В для трансивера USB.
Контакты 15,16 — это линии передачи данных к разъему USB на ПК.
Контакт 20 — это ПК 5V, питающий PIC. Он ограничен 100 мА ПК. 0,47 мкФ для развязки.
Информация о проводке USB: http://www.interfacebus.com/Design_Connector_USB.html

ДАТЧИК
4 диода 1N4148 последовательно. При пайке корпусов диодов друг к другу получается датчик небольших размеров.

USB-ТЕРМОМЕТР С ДАТЧИКОМ DS18B20

USB-термометр Датчик температуры DS18B20. Включено Программное обеспечение Visual Basic 6, код Visual Studio 2005 C#, код PIC C и принципиальная схема. Интерфейс ПОС к ПК относится к классу HID.
Датчик DS18B20 имеет диапазон от -55 до 125 градусов по Цельсию с точностью 0,5 градуса и разрешением от 9 до 12 бит. Интерфейс к рисунку осуществляется по одной цифровой линии, 1 и 0 определяются длительностью импульса. Код включает в себя команды для чтения температуры и установки разрешения.
HID class (человеческий интерфейс устройство) — это класс устройств, таких как мышь и клавиатура, скорость передачи данных ограничен 64 КБ/с. На ПК уже есть драйвер для HID USB.
Код C# изменен Код Microchip из среды USB, Microchip Solutions v2012-04-03 .
Код VB6 включает руководство по настройке ПК. ПК регистрирует PID (идентификатор продукта) и VID (идентификатор поставщика) USB-устройства, когда он подключен, код VB использует эти идентификаторы для связи с устройство. Для коммерческого VID необходимо купить его у USB-IF, но в вашей лаборатории вы можете использовать любой номер.
Исходный код получен из бесплатного программного обеспечения из следующих источников: http://janaxelson.com/usb.htm, http://openprog.altervista.org/USB_firm_eng.html
. Вы можете свободно использовать принципиальную схему и программное обеспечение VB без каких-либо ограничений. ограничения.

 

Описание цепи
См. также Технические советы

.

ПИК18Ф2550
Контакт 14 — это внутренний источник питания 3,3 В для трансивера USB.
Контакты 15,16 — это линии передачи данных к разъему USB на ПК.
Контакт 20 — это ПК 5V, питающий PIC. Он ограничен 100 мА ПК. 0,47 мкФ для развязки.
Информация о проводке USB: http://www.interfacebus.com/Design_Connector_USB.html

ДАТЧИК DS18B20
Можно использовать любой тип чехла.

Имя:

Комментарии и вопросы

Скопируйте номер с картинки Он не позволяет сетевым роботам добавлять комментарии.


27.03.2016 — 17:06
Имя: мустафа аскари
Комментарий: Отличные проекты!

24. 07.2014 — время: 00:40
Имя: канишка
Комментарий: пра-пра-пра… ты отличный человек. желаю тебе всего наилучшего

21.06.2014 — 17:23
Имя: pic12f675
Комментарий: хорошо. спасибо

17.04.2013 — 07:08
Имя: Ugur
Комментарий: спасибо

28.03.2013 — 23:42
Имя: king
Комментарий: awsem Motty Rocks

31.12.2012 — 17:57
Имя: Mnati
Комментарий: Большое спасибо

31.12.2012 — 17:57
Имя: Mnati
Комментарий: Moty

27.2011 — 13:02
. Комментарий: Привет, Лутц. Да, в файле cal.txt есть сведения о калибровке датчика. Схема также использует источник питания 5 В в качестве опорного напряжения, поэтому для получения одинаковых показаний вам нужны одинаковые 5 В на обоих компьютерах. 1%-ная ошибка в напряжении питания даст около 2%-й ошибки в показаниях температуры. Ради простоты я пожертвовал точностью. Единственный способ преодолеть это — добавить в схему точное опорное напряжение.

26.12.2011 — 21:33
Имя: Лутц
Комментарий: Upss, сначала прочитай потом пиши Я только что видел, что Cal.Data хранится в CAL.TXT. Поэтому я думаю, что передача этих данных будет работать нормально. с уважением Лутц

26.12.2011 — 21:27
Имя: Лутц
Комментарий: Привет, Моти, Я тоже делаю этот термометр, отлично работает !! Мой вопрос касается калибровки. Мне нравится проводить калибровку на работе, если у нас есть климатическая камера. Таким образом, при калибровке смещение будет сохранено где-то на этом рабочем ПК. Возможно ли, чем передать кал. данные на мой домашний ПК ?? Где написана калибровка?? с уважением Лутц
13.04.2010 — время: 01:37
Имя: Спадуччи
Комментарий: Отличная вещь!

PICAXE 18M2 Показания Цифровой термометр DS18B20 1-Wire

Схема моей самодельной тестовой платы без резисторов ввода/вывода.

Здесь мы собираемся подключить цифровой термометр Dallas DS18B20 1-Wire к микроконтроллеру PICAXE. Это очень просто, потому что детали серии M2 имеют прямую однострочную команду для доступа к детали. Он имеет диапазон рабочих температур от -55°С до +125°С.

Здесь меня не интересуют действительно расширенные функции DS18B20, а основная функция, которая будет использоваться в 90% случаев; просто читать температуру. Чтобы использовать действительно расширенные функции, используйте микроконтроллер Arduino.

Команды READTEMP pin, переменная и READTEMP12 pin, словесная переменная объясняются на страницах 184-185 в литературе PICAXE. Здесь меня просто беспокоит READTEMP, потому что использовать READTEMP12 — это беспорядок, и это просто не стоит усилий. Поймите, что микроконтроллер PICAXE имеет встроенную интерпретируемую основу, которая в меньших версиях, которые я использую, имеет ограничения. Это с лихвой компенсируется простотой использования и легкостью в освоении.

Ниже приведен пример отлаженного кода, который должен работать на любой версии для проверки датчика. DS18B20_Pin может быть любым входным контактом. В моем случае я использовал PICAXE-18M2 и преобразовал показания Цельсия в Фаренгейты, которые отображались на терминале.

О команде readtemp:

Эта команда работает только на частоте 4 МГц. М2, Х1 и Х2 части автоматически используют внутренний резонатор 4 МГц для этой команды.

Температура считывается в целых градусах, датчик работает от от -55 до +125 градусов Цельсия. Обратите внимание, что бит 7 равен 0 для положительных значений температуры. и 1 для отрицательных значений (т.е. отрицательные значения будут отображаться как 128 + числовое значение).

Обратите внимание, что команда readtemp не работает со старыми моделями DS1820 или DS18S20. так как они имеют разное внутреннее разрешение. Эта команда не предназначена для используется с датчиками DS18B20 с паразитным питанием, контакт 5V датчика должен всегда быть на связи.

 
символ DS18B20_Pin = C.1
основной:
темп чтения DS18B20_Pin, w1 ; прочитать значение в w1
если w1 > 127, то отрицательно; тест на отрицательный
w1 = w1 * 9/5 + 32; по Фаренгейту
sertxd("+", #w1, "градусы", 13, 10) ; передать значение в срок
перейти на главную
отрицательный: ; этикетка
пусть w1 = w1 - 128 ; настроить отрицательное значение
ш1 = ш1 * 9/ 5 + 32 ; по Фаренгейту
sertxd("-", #w1, "градусы", 13, 10) ; передать на срок
перейти на главную
  

Микроконтроллер Picaxe Проекты!

Серия микроконтроллеров PICAXE считается самым простым и экономичным способом использования процессоров Microchip.

alexxlab

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *