Термометр для измерения высоких температур на микроконтроллере. Электронный термометр с беспроводным датчиком
Доброго времени суток уважаемые читатели. Как видно из названия статьи, речь в ней пойдет о термометре собранном на PIC. Итак. Почему и как всё начиналось?!
Понадобилась мне схема простейшего термометра для подвала гаража. Начал искать подходящую схему в Интернете. Важным критерием было применение минимального количества элементов в схеме. Сразу скажу, что таких схем термометров в сети навалом. Но! Чаще всего они выполнены на AVR с которыми я к глубокому своему сожалению не дружу. Поэтому стал искать схему на PIC. Но и тут меня ожидало разочарование. Схемы термометров на PIC есть. Но там применяют, то транзисторы для индикаторов, то внешний кварц, либо еще что то, что усложняло схему и было неприемлемо в моем случае. Наконец, после долгих поисков, подходящая мне схема была найдена тут:
http://www.labkit.ru/html/show_meter?id=38
И была успешно повторена неоднократно. Всё прекрасно работает. (на сайте автора этой схемы есть и прошивка и печатная плата для повторения данного термометра). Время шло. И в одно прекрасное время во первых выяснились недочеты данной схемы и еще мне понадобилось применить индикатор с Общим Катодом (на сайте автора прошивка была только под Общий Анод). Теперь о недочете схемы в первоисточнике. Изначально в схеме автора нет резистора подтяжки у датчика температуры. Тоесть резистор на 4,7К в схеме отсутствует. Да действительно при таком исполнении схемы термометр может работать, но только при условии, если датчик температуры впаян сразу в плату, либо длина провода на котором находится датчик не должен превышать длины провода метр, полтора метра. Не более. В противном случае индикатор начинает показывать какую- то ерунду, а не температуру.
Эта проблема решилась очень просто и быстро, именно установкой подтягивающего резистора 4,7К на датчике. После чего датчик стал работать стабильно при любой длине провода. Но как быть, если у меня есть индикаторы только с общим катодом! А прошивка сделана под анод… Вот тут мне и помог Станислав Дмитриев. За что ему огромнейшее спасибо. Он не только написал прошивку под общий анод. Но так же и под общий катод и под разные типы датчиков температуры (DS18S20 или DS18B20). Что позволило еще более унифицировать данную схему. И рекомендовать её к повторению. Также можно применить в схеме как четырех разрядные семисегментники так и трех разрядные семисегментники. Что является не большим, но все, же плюсом.
Как вы видите, схема не отличается от той, что представлена, была на сайте http://www.labkit.ru
Так и было задумано изначально. Единственное изменение в схеме это установка дополнительного резистора. Схему я не стал перерисовывать с нуля. Просто добавил недостающий элемент схемы. По сути если Вы хотите еще более упростить схему и у вас есть стабильный источник питания 5В, то Вы можете исключить из схемы и линейный стабилизатор.
Теперь поговорим немного о том, как самому настроить прошивку под нужный вам индикатор или датчик. Тут всё просто.
Загрузив файл прошивки в программатор, Вы сами: исходя из того, что вам нужно и смотря на данный скриншот, прописываете нужные вам параметры в файл прошивки в разделе EPROM. После чего можете прошивать контролер.
В моём варианте печатной платы в плате предусмотрено место не только для линейного стабилизатора, но и для диодного моста (что позволит запитывать схему напряжением от 7,5В до 12В. А так же на плате предусмотрено место для установки клемника, который позволяет не впаивать датчик температуры в плату, а зажать его зажимами. Это удобно при смене датчика, либо при установке датчика на длинный провод. Позволяет быстро сменить провод.
Рисунок платы
Как Вы можете видеть термометр собран на двух платах. На одной устанавливается семисегментный индикатор (трех или четырех разрядный). На второй плате устанавливаются все остальные элементы схемы. Платы между собой соединяются, по средствам гребенки, либо как в моем случае проводами..
В конце фото моего готового термометра.
Как то попался мне на глаза телефон Nokia 3310 — внук бегал с ним игрался, естественно давно не рабочий. И тут вспомнил, что где-то видел схемы на дисплей от него. Погуглил, выдало несколько ссылочек, на устройства, мне понравился градусник, порывшись в коробочках нашел нашел термодатчик DS18B20, ну и решил собрать по этой схеме, тем более деталей в ней минимум. ЖК дисплей поддерживает два варианта работы: нормальный (на светлом фоне) и противоположный (на темном фоне). Менять режимы можно перемычкой JP1. Ниже смотрим саму схему термометра на микроконтроллере PIC12F629:
Технические параметры устройства:
* Voltage ………………….. 3 — 3.3 В
* Мин. шаг темп…………. 0,1 » C
* Погрешность………………. +/- 0,5 » C Темп.
* Amperage …… ……….. 0,2 mA — 0,8 mA
* Диапазон измеряемых температур … от -55 до 125°C
Приступаем к сборке, сначала аккуратно извлек дисплей, стекло не стал выкидывать, решил его тоже приспособить.
Протравил плату, в архиве есть рисунок для технологии ЛУТ. Прошил и просто спаял. можно скачать тут. Сначала датчик подключил через разъем, но он иногда отключался, поэтому его просто припаял.
Самое трудное было припаять проводки к дисплею, на это ушло часа 2 сначала использовал компьютерный шлейф 40 пиновый — очень тяжело и не удобно, так что отказался от него и взял 80 пиновый шлейф, распустил, и все удачно получилось за 5 минут. Подал питание и… термометр заработал.
После небольших манипуляций с дрелью и напильником получилось такое окошко.
Осталось закрепить там родное стекло, даже не стекло, а пластик, но со свойством увеличения. Далее силиконовым пистолетом делаем точечную сварку — тут главное не перегреть дисплей. Так как аккумулятора на 3.6 вольта не было, поставил пока три слабенькие батарейки, они тоже дают 3.3 вольта. Со временем поставлю аккумулятор.
А вот весь термометр на микроконтроллере в сборе:
Работает без глюков и меряет температуру с точностью, не хуже чем у промышленных аналогов. Поэтому данную схему можно смело рекомендовать для повторения. Автор статьи: Ear.
Это обычный цифровой термометр, на просторах интернета подобных девайсов очень много. Основа микроконтроллер PIC16F628A и цифровой датчик температуры DS18S20 (DS18B20). В качестве индикаторов применены светодиодные 3-х разрядные индикаторы зеленого цвета. Индикация динамическая. Термометр работает во всем диапазоне температур датчика DS18S20, т.е. от -55 до +125 градусов.
Собран термометр на печатной плате, вместе с индикатором. Датчик и питание подключаются отдельно. Если датчик не подключен, на индикаторе высвечивается буква Е (Error). Никаких особенностей данный прибор не имеет.
Прибор может работать как с датчиком DS18B20, так и с датчиком DS1820(DS18S20). Под каждый датчик используется своя прошивка микроконтроллера. Ниже приведен вариант этого термометра с уже установленным на печатную плату диодным мостом и стабилизатором 7805, т.е. для питания этого устройства достаточно подключить вторичную обмотку трансформатора к разъему питания. Кроме того, на этой плате установлен светодиод, который кратковременно вспыхивает во время опроса микроконтроллером датчика температуры. Светодиод подключен между ножкой RB3 (вывод 9) и «массой», естественно с резистором. Отсутствие светодиода на плате никак на работу термометра не повлияет.
Прибор удобно разместить в любой пластиковой коробке подходящих размеров. Я разместил его в корпусе сетевого блока питания (Адаптора) вместе с трансформатором. Т.е. из коробки выходит только разъем на датчик DS18B20, а сам корпус вставляется в сеть 220В.
|
На рисунке показана схема термометра выполненного на основе микроконтроллера PIC16F628A, в качестве датчика используется цифровой датчик температуры DS18B20. Индикатор термометра состоит из 4-х разрадного семисегментного индикатора. Диапазон измеряемой температуры от -55 до + 125 градусов Цельсия. Температура считывается каждые 15 секунд, время считывания можно изменить в коде.
Напряжение питания термометра 5В, ток потребления 90 мА. В схеме используются транзисторы BC337 или аналогичные. Ток потребления каждого сегмента индикатора 15 мА (динамическая индикация), который ограничен резисторами 220 Ом (индикатор с общим катодом).
Файл прошивки —
DS18B20 цифровой термометр с программируемым разрешением, от 9 до 12–bit, которое может сохраняться в EEPROM памяти прибора. DS18B20 обменивается данными по 1-Wire шине и при этом может быть как единственным устройством на линии так и работать в группе. Все процессы на шине управляются центральным микропроцессором.
Диапазон измерений от –55°C до +125°C и точностью 0.5°C в диапазоне от –10°C до +85°C. В дополнение, DS18B20 может питаться напряжением линии данных (“parasite power”), при отсутствии внешнего источника напряжения.
Каждый DS18B20 имеет уникальный 64-битный последовательный код, который позволяет, общаться с множеством датчиков DS18B20 установленных на одной шине. Такой принцип позволяет использовать один микропроцессор, чтобы контролировать множество датчиков DS18B20, распределенных по большому участку. Приложения, которые могут извлечь выгоду из этой особенности, включают системы контроля температуры в зданиях, и оборудовании или машинах, а так же контроль и управление температурными процессами.
- Похожие статьи
Войти с помощью:
Случайные статьи
- 10.10.2014
На рисунке показана схема предварительного усилителя с тембро-блоком, тембро-блок включен в цепь обратной связи предварительного усилителя. Напряжение питания уст-ва может варьироваться от 12 до 24В, потребляемый ток не более 10 мА. Входной сигнал поступает через разделительный конденсатор С1, резисторы R1 и R2 определяют напряжение смещения транзистора VT1, после предварительного усиления …
Схема термометра на ATmega8 и DS18B20
Цифровой термометр DS18B20
Семисегментный светодиодный индикатор
Алгоритм программы термометра
Программа цифрового термометра на DS18B20
Схема и программа очень простого цифрового термометра с использованием микроконтроллера ATmega8 и датчика температуры DS18B20 . Термометр позволяет измерять температуру от 0 до 99 градусов с точностью до 0,5 градусов с разрешением 0,1 градуса
Термометр по своим характеристикам очень прост, и его можно использовать только как термометр для измерения «комнатной» температуры. Использовать в этой конструкции микроконтроллер с памятью 8 килобайт конечно расточительно, можно применить микроконтроллер и попроще. Но дело в том, что эта конструкция — основа для дальнейшего развития проекта с использованием цифрового датчика температуры DS18B20. В следующей статье будет опубликована конструкция другого термометра — на двух датчиках DS18B20, что позволит измерять температуру не только в комнате, но и «за бортом». Естественно, будет добавлена возможность измерять и отрицательные температуру. В дальнейшем в конструкцию будет добавлена функция термостата, часы, возможность работы с различными нагрузками, что позволит уже собрать несложную конструкцию — основу «умного дома». Ну а сегодня первая статья из этой серии.
Схема термометра на ATmega8 и датчике температуры DS18B20Давайте посмотрим на схему термометра:
Как видите, схема очень проста, используется только необходимый минимум деталей.
В схеме, для индикации показаний, применен семисегментный трехразрядный светодиодный индикатор .
Напряжение питания конструкции — 5 вольт. Если вы примените микроконтроллер с низковольтным питанием , то можно и понизить питающее напряжение конструкции, но в этом случае, возможно придется уменьшить номинал гасящих сопротивлений в сегментах индикатора. Приблизительно номиналы сопротивлений можно брать:
— при питании 5 вольт — 200-300 Ом
— при питании 2,7 — 3 вольта — 100-150 Ом
Транзисторы — любые, маломощные, структуры NPN.
Датчик температуры — DS18B20
Семисегментный индикатор — любой трехразрядный с общим катодом. Если вы захотите применить другие, с общим анодом, тогда придется заменить транзисторы на PNP и внести изменения в программу (заменить массив двоичных кодов для вывода цифр на индикатор). Я применил индикатор красного цвета свечения, и заодно, для следующей схемы, приготовил такой-же, но голубого цвета свечения.
Распиновка микроконтроллера ATmega8:
Трехразрядный семисегментный индикатор FYT-5631AUR-21:
Датчик температуры DS18B20:
Транзисторы BC547C:
Все установки микроконтроллера заводские, FUSE-биты трогать не надо.
Для работы программы задействовано два таймера/счетчика микроконтроллера:
— восьмиразрядный Т0
— шестнадцатиразрядный Т1
С помощью восьмиразрядного таймера
Т0 настроенного на вызов прерывания по переполнению, с внутренней частотой СК/8 (период 2 миллисекунды) организован:
— расчет текущей температуры
— динамический вывод результатов измерения температуры датчиком DS18B20
С помощью шестнадцатиразрядного таймера
Т1 настроенного на вызов прерывания по переполнению, с внутренней частотой СК/64 (период 4 секунды) организованно:
— подача команды датчику DS18B20 на измерение температуры
— считывание измеренной температуры с датчика
В принципе, можно задействовать и один восьмиразрядный таймер/счетчик, также настроенный на вызов прерывания по переполнению, с внутренней частотой СК/8, и всю работу схемы организовать в процессе обработки прерывания. Но дело в том, что смысла в этом нет — датчику DS18B20 необходимо чуть меньше 1 секунды (при 12-ти битном разрешении) для конвертирования (определения) температуры, т. е., чаще чем 1 раз в секунду мы не сможем обновлять данные температуры. Кроме того, столь частое обновление температуры приведет к нагреву датчика и, соответственно, к искажению реальных данных. Использование второго счетчика позволяет отдельно задавать промежутки времени измерения температуры.
Вот так выглядит основная часть программы в Algorithm Builder:
Где:
— SP — настройка начального адреса стека
— Timer 0 — настройка таймера T0:
— Timer 1 — настройка таймера Т1:
— TIMSK — настройка прерываний от таймеров:
— Init_Display — подпрограмма настройки разрядов портов, участвующих в динамической индикации вывода данных на трехразрядный семисегментный индикатор
— 1 —> I — глобальное разрешение прерываний
Если возникнут вопросы, если что-то изложено не понятно или есть вопросы по программе, пишите — отвечу.
(2,4 KiB, 7 004 hits)
Термометр на микроконтроллере avr
Привет всем читателям и почитателям сайта Радиосхемы! Немного предыстории: вечером очень плохо видно показания уличного термометра, чтобы разглядеть положение стрелки, необходимо довольно долго вглядываться и иной раз пользоваться фонариком. Спустя определённое время мне это надоело и решил заменить прибор на электронный, который бы отображал информацию на светодиодных семи сегментных индикаторах. После чего бы не пришлось даже подходить к окну, чтоб узнать уличную температуру.
Поиск данных по Вашему запросу:
Схемы, справочники, даташиты:
Прайс-листы, цены:
Обсуждения, статьи, мануалы:
Дождитесь окончания поиска во всех базах.
По завершению появится ссылка для доступа к найденным материалам.
Содержание:
- Термометр дом-улица на микроконтроллере AVR
- Изучаем DS1820/DS18B20. Делаем простой термометр
- ЧАСЫ-ТЕРМОМЕТР НА МИКРОКОНТРОЛЛЕРЕ ATMEGA8
- Термометр. AVR+DS18B20.
- Термометр на датчике SE97B и AVR-микроконтроллере
- Универсальный двухканальный термометр на AVR
ПОСМОТРИТЕ ВИДЕО ПО ТЕМЕ: Простой термометр на микроконтроллере
Термометр дом-улица на микроконтроллере AVR
Re: пассики для проигрывателей винила Re: Динамическая индикация на LCD дисплее Re: Пассик на пленочный магнитофон Re: Продам набор SMD конденсаторов в корпусе Re: ШИМ-регулятор на Attiny13 В этой статье займемся изучением практического применения цифровых датчиков температуры DS18B Сделаем простой термометр на семисегментных индикаторах, который будет показывать положительную и отрицательную температуру с разрешением 0,1 градус Цельсия.
Для этой цели используем микроконтроллер Atmega8 , который работает от внутреннего генератора частотой 8 МГц, семисегментный индикатор с общим анодом четырехразрядный и датчик температуры DS18B Схема устройства показана на рисунке 1.
Шину данных датчика подключаем к порту PC0, а также подключаем к плюсу питания через резистор R1 номиналом 4,7 кОм, поскольку выходной транзистор датчика имеет открытый сток.
При питании датчика от шины данных паразитное питание вывод 3 датчика остается свободным. Как уже известно последовательность действий при работе с одним датчиком будет такая: 1 послать сигнал обнуления линии Реализация динамической индикации описана на одном из прошлых занятий, подпрограмма была немного упрощена но сути не изменила.
Также используется прерывание по переполнению таймера 2. Энциклопедия радиолюбителя Онлайн калькуляторы. Простейшая программа Подключение семисегментных индикаторов к AVR. Для универсальности можно Вывод Е — сигнал синхроимпульса, он по сути должен переключаться Задержки примерные, согласно описанию Доброго времени суток. Не совсем понял функции записи команд и данных, точнее их логику.
Зачем сначала Обновить список комментариев. Добавить комментарий. Наша группа ВКонтакте. Простейшая программа. Запомнить меня. Размер файла:
Изучаем DS1820/DS18B20. Делаем простой термометр
Здравствуйте уважаемые друзья и гости сайта! Представляю на ваш суд вторую конкурсную работу. Автор конструкции — Григорьев Илья Сергеевич. Всем добрый день! Захотелось мне собрать термометр для того, чтобы знать температуру или дома или за окном. Сторона у меня солнечная и обычный термометр очень врет, нагреваясь. Стал рыть интернет.
Термометр построен на популярном и очень широко распространенном датчике DS18B20 и микроконтроллере ATtiny, что.
ЧАСЫ-ТЕРМОМЕТР НА МИКРОКОНТРОЛЛЕРЕ ATMEGA8
Привет всем читателям и почитателям сайта Радиосхемы! Немного предыстории: вечером очень плохо видно показания уличного термометра, чтобы разглядеть положение стрелки, необходимо довольно долго вглядываться и иной раз пользоваться фонариком. Спустя определённое время мне это надоело и решил заменить прибор на электронный, который бы отображал информацию на светодиодных семи сегментных индикаторах. После чего бы не пришлось даже подходить к окну, чтоб узнать уличную температуру. Так как индикацию хорошо видно более чем с трёх метров. Схем данного устройства в сети полно , но я, как человек относящийся к семейству Радиолюбителей, решил собрать свою. Так как с недавних пор пытаюсь осваивать микроконтроллеры, то выбор пал на широко распространённый и дешёвый МК Atmega8. Далее была изготовлена плата по технологии ЛУТ, после чего уже приступил к программной части. В одном устройстве объединено две функции: собственно измерение температуры и времени часы. Индикация производится попеременно, сменяясь через десять секунд.
Термометр.AVR+DS18B20.
Шина 1-Wire была запатентована компанией Dallas Semiconductor, и была призвана наладить полудуплексную связь всего по одному сигнальному проводу. Также возможны варианты использования паразитного питания по линии данных потому что во все микросхемы 1-Wire встроен конденсатор номиналом пФ. Компания Dallas и позже купившая ее Maxim выпускают много всякий устройств с шиной 1-Wire. Это всякие термометры, календари, датчики, память, отдельно хочу отметить электронные таблетки iButton успешно используемые в устройствах идентификации.
Re: пассики для проигрывателей винила
Термометр на датчике SE97B и AVR-микроконтроллере
Обновлено Всем привет. В этой записи мы с Вами начнем монтаж основных элементов на плату которую спроектировали в прошлой статье. Своего рода, сегодня, у нас получится простой термометр. Попробуем запустить и убрать все недоработки. Алгоритм будет состоять из ранее написанных программ, как сборка конструктора.
Универсальный двухканальный термометр на AVR
Рубрика: Информатика и программирование. Скачать файл: referat. Краткое описание работы: Общие сведения о микроконтроллерах AVR, их основные параметры. Функции термометра, реализованного на микроконтроллере AVR. Порядок программирования микроконтроллера с использованием программы на языке С.
Схема и программа очень простого цифрового термометра с использованием микроконтроллера ATmega8 и датчика температуры.
Продолжаем осваивать периферию, на очереди измерение температуры. Рассмотрим вариант измерения, при помощи датчика температуры DS18b Для обмена информацией с AVR микроконтроллером используется 1-Wire протокол.
Раздавали они и красиво оформленные наборы I2C микросхем для различных классов приложений. Так вот, если есть такая микросхема, то почему бы не попробовать ее использовать где-либо в своих разработках? Мельчайший корпус датчика HWSON8 позволит без труда встроить термометр в любое устройство, ну или почти в любое. Рассмотрим эту микросхему и ее характеристики.
Проект Eldigi. В связи с этим на сайте могут быть ошибки.
Описываемое устройство может найти широкое применение среди радиолюбителей. Программа для микроконтроллера написана на ассемблере в среде AVR Studio. Монтаж выполнен на макетной плате, кварцевый резонатор на 4МГц, микроконтроллер ATtiny можно заменить на AT90S, предварительно перекомпилировав исходный код программы. Погрешность датчика DS около 0,5 С. В архиве также находится прошивка для случая если используется датчик DS18B Опрос датчика производится каждую секунду.
Логин или эл. Войти или Зарегистрироваться. Авторизация Логин или эл.
Взаимодействие датчика температуры DS18B20 с микроконтроллером AVR ATmega8 | Примеры интерфейса микроконтроллера
В этой статье я расскажу, как можно считывать температуру с датчика DS18B20. Затем эти данные о температуре можно использовать по своему усмотрению или по мере необходимости в вашем проекте. Например, вы можете просто отобразить это на семисегментном дисплее или ЖК-дисплее или даже записать его в файл на SD-карте! В этом примере я буду отображать его на 2-разрядном семисегментном дисплее.
DS18B20 — отличный датчик температуры. Он поставляется в красивой водонепроницаемой упаковке, похожей на зонд. Этот пакет позволяет очень легко измерять температуру различных тел. Вы также можете окунуть его в жидкость. Наиболее важной особенностью является цифровой выход. Это означает, что вам не нужно калибровать его. Выходные данные представляют собой прямые данные в стандартных единицах измерения температуры, то есть в градусах Цельсия.
DS18B20 имеет программируемый выход от 9 до 12 бит. Когда вам нужен быстрый отклик, вы должны пожертвовать точностью и использовать 9-битный режим. Но когда вам не нужен такой быстрый отклик, вы можете использовать полную точность 12 бит. Здесь я буду использовать только 12-битный режим.
Датчик может измерять температуру от -55 до +85 градусов по Цельсию, что достаточно для большинства применений.
На изображении выше вы можете видеть, что он имеет металлический зонд, который закрывает сенсорный чип и обеспечивает путь проводимости от среды, температура которой измеряется. От него выходит 3 провода. Длина этого провода составляет около 1 метра, что обеспечивает простой способ подключения к плате микроконтроллера. В этом примере мы подключим провод данных (белый или желтый) к PC3 микроконтроллера ATmega8. Два других провода, КРАСНЫЙ и ЧЕРНЫЙ, являются линиями питания. КРАСНЫЙ должен быть подключен к + 5 В от макетной платы, а ЧЕРНЫЙ — к земле.
В этом примере мы будем использовать двухразрядный семисегментный дисплей для отображения температуры. Деталь дисплея должна быть выполнена так, как показано на схеме.
Схема очень проста, построена на двух транзисторах BC548. Эта схема может быть подключена к любой простой макетной плате AVR ATmega8, которая обеспечивает доступ ко всем контактам порта и дополнительному контакту источника питания. ATmega8 должен тактироваться от кварцевого генератора с частотой 16 МГц.
Шестнадцатеричный файл для этого проекта приведен в конце этой статьи. Вы можете загрузить его и прошить на ATmega8 с помощью USB-программатора AVR.
После записи программы необходимо также выполнить настройку ATmega8. Этот шаг часто игнорируется многими пользователями, что приводит к провалу проекта. Это множество настроек MCU, которые необходимо настроить для конкретных проектов. Например, в этом проекте нам нужно использовать внешний кварцевый осциллятор. В то время как ATmega8 также поддерживает следующий генератор
- Внутренний RC (Внешние компоненты не требуются, самое дешевое решение, но нет точного времени)
- Внешний RC (внешний резистор и конденсатор, используемые в качестве генератора)
- Внешний тактовый генератор (если у вас есть другой MCU в том же проекте, выходной сигнал этого MCU используется в качестве источника тактового сигнала, поэтому один кристалл может запускать несколько MCU)
Эту конфигурацию можно выполнить, запрограммировав соответствующие значения в байтах предохранителей. Младший байт предохранителя должен быть установлен на FF 9.0014 и выше до C9 это можно сделать, перейдя на вкладку Fuse Bits/Setting в eXtreme Burner AVR, введя значения и нажав кнопку Write.
Теперь микросхема ATmega8 полностью готова к установке в схему.
Когда все сделано, как описано выше, вы готовы включить систему. Если у вас отличная техническая рука (что является наградой за тяжелую работу, практику и страсть), то система должна без проблем включиться и отобразить текущую комнатную температуру на дисплее.
Этот проект можно легко смоделировать, поскольку модель DS18B20 доступна в Proteus. Для удобства пользователей я приложил полный файл моделирования. Вы можете скачать его и попробовать этот проект в кратчайшие сроки!
Мы сердечно благодарим следующих людей, которые поделились этой страницей в различных социальных сетях и вдохновили нас на разработку более качественного контента!
Виктор, Ахмед Ра, Мерт, Садех, Арди Инженер, Омар Пинедо, Махеш, , Авинаш Гупта,
Термометр для измерения высоких температур на микроконтроллере.
Электронный термометр с беспроводным датчиком Добрый день, уважаемые читатели. Как видно из названия статьи, речь пойдет о термометре, собранном на ПОС. Так. Почему и как все началось?
Нужна была схема простейшего термометра для подвала гаража. Начал искать подходящую схему в интернете. Важным критерием было использование минимального количества элементов в схеме. Сразу скажу, что таких схем термометров в сети очень много. Но! Чаще всего они сделаны на AVR, с которым, к моему глубокому сожалению, я не дружу. Поэтому стал искать схему на ПОС. Но и здесь я был разочарован. На ПОС есть схемы термометров. Но используют либо транзисторы для индикаторов, либо внешний кварц, либо еще что-то, что усложняло схему и было неприемлемо в моем случае. Наконец после долгих поисков подходящая схема была найдена здесь:
http://www.labkit.ru/html/show_meter?id=38
И это неоднократно успешно повторялось. Все отлично работает. (на сайте автора этой схемы есть и прошивка и печатная плата для повторения этого термометра). Время шло. И в одно прекрасное время впервые выявились недостатки этой схемы, а еще мне понадобилось применить индикатор с Общим катодом (на сайте автора прошивка была только для Общего анода). Теперь о недостатке схемы в первоисточнике. Изначально в авторской схеме нет подтягивающего резистора датчика температуры. То есть резистора 4,7К в схеме нет. Да, действительно, при таком исполнении схемы термометр может работать, но только в том случае, если датчик температуры припаян сразу к плате, либо длина провода, на котором находится датчик, не должна превышать длину провода в метр , полтора метра. Больше не надо. В противном случае индикатор начинает показывать какую-то ерунду, а не температуру.
Такой поворот событий меня совсем не порадовал. Потому длина провода с датчиком меня расточила не менее 10 метров.
Эта проблема решилась очень просто и быстро, а именно установкой на датчик подтягивающего резистора 4.7К. После этого датчик стал стабильно работать при любой длине провода. А что если у меня индикаторы только с общим катодом! И прошивка делалась для анода… Тут мне Станислав Дмитриев помог. За что ему большое спасибо. Он не только написал прошивку для общего анода. Но и для общего катода и для разных типов датчиков температуры (ДС18С20 или ДС18Б20). Это позволило еще больше унифицировать данную схему. И рекомендовать для повторения. Также можно использовать в схеме как четырехразрядный семисегментный, так и трехразрядный семисегментный. Что не здорово, но все же тот же плюс.
Теперь схема
Как видите, схема не отличается от представленной на сайте http://www.labkit.ru
Именно так и было задумано изначально. Единственное изменение в схеме — установка дополнительного резистора. Я не перерисовывал схему с нуля. Просто добавил недостающий элемент схемы. На самом деле, если вы хотите еще больше упростить схему и у вас есть стабильное питание 5В, то линейный стабилизатор можно исключить из схемы. И питать МК сразу от 5В.
Теперь немного поговорим о том, как самому настроить прошивку под нужный вам индикатор или датчик. Здесь все просто.
Загрузив файл прошивки в программатор, вы сами: исходя из того, что вам нужно и глядя на этот скриншот, записываете нужные вам параметры в файл прошивки в разделе EPROM. Затем можно прошить контроллер.
В моем варианте печатной платы на плате предусмотрено место не только для линейного стабилизатора, но и для диодного моста (что позволит питать схему напряжением от 7,5В до 12В. А еще есть место на плате для установки клеммной колодки, что позволяет не впаивать датчик температуры в плату, а зажимать его зажимами. Это удобно при смене датчика, либо при установке датчика на длинном проводе. для быстрой смены провода
Чертеж платы
Как видите термометр собран на двух платах. Один оснащен семисегментным индикатором (трех или четырехразрядным). Все остальные элементы схемы установлены на второй плате. Платы соединены друг с другом, с помощью гребенки, или как в моем случае проводами..
В конце фото моего готового термометра.
Как-то попался мне на глаза телефон Nokia 3310 — внук бегал с ним игрался, естественно долго не работал. И тут я вспомнил, что где-то видел схемы на дисплее от него. Погуглил, выдал несколько ссылок на приборы, термометр понравился, порывшись в коробках нашел датчик температуры DS18B20, ну и решил собрать его по этой схеме, тем более что деталей в нем минимум несколько. ЖК-дисплей поддерживает два режима работы: обычный (на светлом фоне) и противоположный (на темном фоне). Вы можете изменить режимы перемычкой JP1. Ниже мы рассмотрим саму схему термометра на PIC12F629.микроконтроллер:
Технические параметры устройства:
* Напряжение ……………………………….. 3 — 3,3 В
* Мин. шаг темп………….0,1″C
* Точность ……………… +/- 0,5″C Темп.
* Обновляется каждые…. 1,2 сек.
* Сила тока ………….. 0,2 мА — 0,8 мА
* Диапазон измерения температуры… от -55 до 125°С
Приступаем к сборке, сначала аккуратно снял дисплей, сделал стекло не выкидывать, решил приспособить и его.
Вытравил плату, в архиве есть чертеж для ЛУТ технологии. Я прошивал и просто паял. можно скачать здесь. Сначала подключил датчик через разъём, но он иногда отключался, поэтому просто припаял.
Самое сложное было припаять провода к дисплею, это заняло 2 часа, сначала использовал 40-контактный компьютерный кабель — очень сложно и не удобно, поэтому отказался от него и взял 80 -штыревой кабель, растворил его, и все заработало за 5 минут. Подал питание и… термометр заработал.
После некоторых манипуляций с дрелью и напильником получилось вот такое окно.
Осталось закрепить туда родное стекло, даже не стекло, а пластик, но со свойством увеличения. Далее делаем точечную сварку силиконовым пистолетом — тут главное не перегреть дисплей. Так как не было аккумулятора на 3,6 вольта, поставил пока три слабеньких аккумулятора, они тоже дают 3,3 вольта. Скоро добавлю аккумулятор.
А вот и весь термометр на микроконтроллерной сборке:
Работает без глюков и измеряет температуру с точностью не хуже, чем у промышленных аналогов. Поэтому данную схему можно смело рекомендовать для повторения. Автор статьи: Ухо.
Это обычный цифровой термометр, в интернете много подобных приборов. В основе микроконтроллер PIC16F628A и цифровой датчик температуры DS18S20 (DS18B20). В качестве индикаторов используются светодиодные 3-разрядные индикаторы зеленого цвета. Индикация динамическая. Термометр работает во всем диапазоне температур датчика ДС18С20, т.е. от -55 до +125 градусов.
Термометр собран на печатной плате вместе с индикатором. Датчик и питание подключаются отдельно. Если датчик не подключен, на индикаторе отображается буква Е (Ошибка). У этого устройства нет функций. Диод VD1 служит для защиты от переполюсовки источника питания.
Прибор может работать как с датчиком DS18B20, так и с датчиком DS1820(DS18S20). Каждый датчик использует собственную прошивку микроконтроллера. Ниже представлен вариант этого термометра с уже установленным на печатной плате диодным мостом и стабилизатором 7805, т.е. для питания этого прибора достаточно подключить вторичную обмотку трансформатора к разъему питания. Кроме того, на этой плате есть светодиод, который кратковременно мигает, когда микроконтроллер опрашивает датчик температуры. Светодиод подключается между выводом RB3 (вывод 9) и заземление, естественно с резистором. Отсутствие светодиода на плате никак не повлияет на работу термометра.
Устройство удобно помещается в любую пластиковую коробку подходящего размера. Я поместил его в корпус блока питания (адаптера) вместе с трансформатором. Те. из коробки выходит только разъем для датчика DS18B20, а сам корпус вставляется в сеть 220В.
|
На рисунке представлена схема термометра на базе микроконтроллера PIC16F628A; в качестве датчика используется цифровой датчик температуры DS18B20. Индикатор термометра состоит из 4-разрядного семисегментного индикатора. Диапазон измеряемых температур от -55 до +125 градусов Цельсия. Температура считывается каждые 15 секунд, время считывания можно изменить в коде.
Напряжение питания термометра 5В, ток потребления 90 мА. В схеме используются транзисторы BC337 или аналогичные. Ток потребления каждого сегмента индикатора составляет 15 мА (динамическая индикация), который ограничивается резисторами 220 Ом (индикатор с общим катодом).
файл прошивки —
Цифровой термометр DS18B20 с программируемым разрешением, от 9 до 12 бит, который может храниться в памяти EEPROM прибора. DS18B20 взаимодействует по шине 1-Wire и может быть как единственным устройством на линии, так и работать в группе. Все процессы на шине управляются центральным микропроцессором.
Диапазон измерения от -55°С до +125°С и точность 0,5°С в диапазоне от -10°С до +85°С. Кроме того, DS18B20 может питаться от линии передачи данных («паразитное питание») при отсутствии внешнего источника питания.
Каждый DS18B20 имеет уникальный 64-битный серийный код, который позволяет ему взаимодействовать с несколькими датчиками DS18B20 на одной шине. Этот принцип позволяет использовать один микропроцессор для управления несколькими датчиками DS18B20, распределенными по большой площади. Приложения, которые могут извлечь выгоду из этой функции, включают системы контроля температуры в зданиях и оборудовании или машинах, а также мониторинг и контроль температуры.
- Аналогичные статьи
Вход через:
Случайные статьи
- 10.10.2014
На рисунке представлена схема предусилителя с темброблоком, темброблок включен в цепь обратной связи предусилителя. Напряжение питания устройства может варьироваться от 12 до 24В, ток потребления не более 10 мА. Входной сигнал подается через развязывающий конденсатор С1, резисторы R1 и R2 определяют напряжение смещения транзистора VT1, после предварительного усиления…
Цепь термометра на ATmega8 и DS18B20
Цифровой термометр DS18B20
Семисегментный светодиодный индикатор
Алгоритм программы термометра
Программа цифрового термометра на DS18B20
Схема и программа очень простые цифровой термометр с использованием микроконтроллера ATmega8 и датчика температуры DS18B20 . Термометр позволяет измерять температуру от 0 до 99 градусов с точностью 0,5 градуса с разрешением 0,1 градуса
Термометр очень прост по своим характеристикам, и его можно использовать только как термометр для измерения «комнатной» температуры. Использовать микроконтроллер с 8 килобайтами памяти в этой конструкции конечно расточительно, можно использовать микроконтроллер попроще. Но дело в том, что эта конструкция является основой для дальнейшего развития проекта с использованием цифрового датчика температуры DS18B20. В следующей статье будет опубликована конструкция еще одного термометра — на двух датчиках DS18B20, что позволит измерять температуру не только в помещении, но и «за бортом». Естественно, добавится и возможность измерения отрицательных температур. В дальнейшем в конструкцию добавится функция термостата, часы, возможность работы с различными нагрузками, что позволит собрать простую конструкцию – основу «умного дома». Что ж, сегодня первая статья из этой серии.
Цепь термометра на ATmega8 и датчик температуры DS18B20Посмотрим на схему термометра:
Как видите, схема очень простая, используется только необходимый минимум деталей.
В схеме для индикации показаний используется семисегментный трехразрядный светодиодный индикатор.
Расчетное напряжение питания — 5 вольт. Если вы используете микроконтроллер с низким напряжением питания, то вы также можете понизить напряжение питания структуры, но в этом случае, возможно, придется уменьшить значение гасящих сопротивлений в сегментах индикатора. Можно взять примерные значения сопротивления:
— при питании 5 вольт — 200-300 Ом
— при питании 2,7 — 3 вольта — 100-150 Ом
транзисторы — любые, маломощные, NPN структуры.
датчик температуры — DS18B20
Семисегментный индикатор — любая трехзначная с общим катодом. Если вы хотите использовать другие с общим анодом, то придется заменить транзисторы на PNP и внести изменения в программу (заменить массив двоичных кодов для отображения цифр на индикаторе). Я применил красный индикатор свечения, а заодно для следующей схемы приготовил такой же, но с синим цветом свечения.
Распиновка микроконтроллера ATmega8:
Трехразрядный семисегментный индикатор FYT-5631AUR-21:
Датчик температуры DS18B20:
Транзисторы BC547C:
Все настройки микроконтроллера заводские, FUSE-биты трогать не нужно.
Программа использует два таймера/счетчика микроконтроллера:
— восьмибитный T0
— шестнадцатибитный T1
Через восьмиразрядный таймер Т0, настроенный на срабатывание прерывания по переполнению, с внутренней частотой CK/8 (период 2 миллисекунды) организовано:
— расчет текущей температуры
— динамический вывод результатов измерения температуры датчиком DS18B20
С помощью шестнадцатибитного таймера T1, сконфигурированного для срабатывания прерывания по переполнению, с внутренней частотой CK/64 (период 4 секунды) организовано:
— подача команды датчику DS18B20 на измерение температуры
— чтение измеренной температуры с датчика
В принципе можно использовать и один восьмибитный таймер/счетчик, тоже настроенный на вызов прерывания по переполнению, с внутренней частотой СК/8, и организовать всю работу схемы в процессе обработки прерывания. Но дело в том, что смысла в этом нет — датчику DS18B20 требуется чуть меньше 1 секунды (при 12-битном разрешении) для преобразования (определения) температуры, т.