……….Хорошо известен и широко распространён сегодня
датчик температуры DS18B20. Дёшев, легко купить, малогабаритный,
надёжный. Может работать в сетях, когда на одном двухпроводном кабеле
подключено несколько датчиков. Очень удобен, но требует для работы
наличия микроконтроллера. А там где микроконтроллер, там и своя
электронная схема и программа. При использовании переходника USB_USART
схема выходит достаточно простой и паяется на макетной плате за пару
часов. Чем проще схема, тем меньше работы по её изготовлению, а лень
как известно двигатель прогресса, поэтому приступим. ……….Вот такая схема термометра на DS18B20, рассчитанного на работу с переходником у меня получилась: ……….Как видите действительно просто. Нет цепей питания, можно убрать разъём для программирования контроллера, да и светодиод скорее для любителей наглядности, чем необходимость. Светодиод в термометре включается на время замера температуры датчиком. ……….По схеме особо и говорить нечего. Паяем, заливаем прошивку (внизу страницы) в микроконтроллер и дело сделано. Чем проще схема, тем надёжнее и устойчивее в работе, поэтому можно рассчитывать на стопроцентную безотказность термометра. ……….Основное назначение термометра – показывать температуру. Этим занимается программа в компьютере. О программе немного поподробнее. Основное окно программы – всего лишь индикатор, на который выводятся показания температуры. По умолчанию выводится над трем в правом нижнем углу дисплея. При желании его можно переместить в другое место. Это кому как нравится, мне показался более подходящим правый нижний угол экрана. ……….Когда программа посылает запрос термометру, точка в левом верхнем углу индикатора краснеет. После получения ответа цвет точки становится зелёным. По цвету можно судить, что процесс измерения температуры датчиком прошёл удачно. Так же ведёт себя и светодиод термометра. При начале преобразования светодиод включается, после того как измерение завершено – гаснет. ……….Для того, чтобы добраться до остальных функций программы предусмотрено всплывающее меню, которое открывается при клике правой кнопкой мыши по индикатору температуры. В меню всего два пункта. Пункт «выход», при выборе которого программа закрывается и пункт «настройки», который нам собственно и нужен. ……….Кликаем по пункту «настройки», после чего получаем доступ к остальным функциям программы. Настройки порта ……….По поводу настроек порта – выбираем в выпадающем списке тот порт, на котором у нас определился переходник. Увидеть номер порта можно в диспетчере устройств(подробнее здесь perehodnik.html ). Если переходник подключен и порт успешно открылся, то рядом с выпадающим списком увидим синюю надпись «порт открыт», если же что-то не так, то справа от выпадающего списка красная надпись «ошибка порта». Программа примерно раз в секунду проверяет подключен ли к нашему порту термометр, посылая проверочные запросы. Страница помощи ……….Правее настроек порта находится ссылка на эту страницу, это на случай, если кто то что то подзабудет, в любой момент можно заглянуть и вспомнить что к чему. ……….Если Вы решили использовать термометр для постоянного измерения, то выставив галочку в этом пункте, создадите ярлык программы термометра в папке «автозагрузки» Windows. Программа при этом будет автоматически стартовать при каждом старте системы. Убрать ярлык из автозагрузки можно сняв галочку. При автозапуске программы появляется возможность наблюдать на экране показания температуры когда пожелаешь, не беспокоясь о том, чтобы специально запускать программу термометра. Запрос температуры ……….По умолчанию выставлен интервал запроса температуры один раз в три секунды. Можно изменить интервал в пределах 1…20 секунд или вовсе отключить запрос температуры. Есть непроверенная информация, что при слишком частых замерах, датчик DS18B20 немного завышает показания температуры, нагреваясь от той мощности, которую сам потребляет при измерении. Пока датчик ничего не измеряет, потребляемая им мощность близка к нулю и соответственно самонагрев тоже нулевой. Возможно со временем появятся на этот счёт проверенные сведения и можно будет точно знать оптимальный интервал запроса температуры. ……….Нажав на эту кнопку можно определить 8 байтов, которые записаны изготовителем в EEPPROM датчика. Эти 8 байтов(выводятся в HEX виде) являются уникальным номером. Номер у каждого датчика свой – они никогда не повторяются. По номеру датчика программа, считывающая показания может определить какой датчик опрашивается, при наличии в сети нескольких одновременно подключенных DS1820. ……….Здесь левый байт – контрольная сумма, правый байт – номер серии 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 происходит именно в момент, когда появляются три тире. По этому до записи данных не отключайте питание.
реклама
Для включения режима настроек типа индикации и типа датчика нужно удерживая кнопку +1 подать питание. Так же этот режим автоматически включается при первом включении устройства, после прошивки микроконтроллера. В этом режиме сначала поочередно на несколько секунд будут отображаться цифры 123 то под общий АНОД, то под общий КАТОД. В момент когда цифры отображаются правильно нужно нажать любую кнопку, режим индикации будет запомнен.
В случае получения ошибочных данных с датчика на дисплее появляется надпись (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, Микроконтроллеры, Термометр
термометр
|
|
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.