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

Начну из далека. Все собрал, прошил, запустил, начал тестировать и понял, что это фигня. После примерно месяца работы, часы сбивались.

Собрал еще одни на PIC16FA с резервным питанием вроде, но они тоже через несколько месяцев работы сбивались. Понял я, что делать часы только на микроконтроллере не очень хорошая идея.


Поиск данных по Вашему запросу:

Схемы, справочники, даташиты:

Прайс-листы, цены:

Обсуждения, статьи, мануалы:

Дождитесь окончания поиска во всех базах.

По завершению появится ссылка для доступа к найденным материалам.

Содержание:

  • Please turn JavaScript on and reload the page.
  • Два термометра на PIC16F628A и DS18B20
  • Схема «Термометр»
  • Схема термометра на микроконтроллере
  • Термометр с двумя датчиками на DS18B20 и микроконтроллере
  • PicHobby. lg.ua

ПОСМОТРИТЕ ВИДЕО ПО ТЕМЕ: Испытания термометра на DS18B20

Please turn JavaScript on and reload the page.


Дата публикации: 09 сентября Основой устройства является микроконтроллер фирмы Microchip PIC16FA , осуществляющий получение информации от датчиков температуры, обработку полученных данных и вывод их на индикатор. Данное устройство позволяет измерять температуру по двум каналам. В качестве индикатора используется дисплей от самого популярного в свое время мобильного телефона Nokia Номинальное напряжение питания 2-х канального термометра Максимальное напряжение питания не должно превышать К термометру одновременно должны подключаться только датчики одного типа.

Тип датчиков с которыми будет работать термометр определяется программным обеспечением. Вывод полученной от датчиков D2, D3 и обработанной микроконтроллером D1 информации на индикатор E1 осуществляется по последовательному интерфейсному каналу типа SPI.

Разъем Х1 служит для осуществления внутрисхемного программирования. Тип разъема и его цоколевка контактов обеспечивают подключения устройства к программатору типа PICKit2. Если под микроконтроллер устанавливается панелька типа TRS18, то разъем Х1 можно не устанавливать, а программирование микроконтроллера осуществлять с помощью любого другого программатора отдельно от устройства.

При включении питания и после инициализации микроконтроллера происходит тест наличия и исправности цифровых датчиков температуры. Если какой нибудь датчик не подключен или его неисправность характеризуется наличием на линии DQ постоянного высокого уровня, при обращении к нему микроконтроллера, то на индикаторе будет выводится значение «Обрыв» на месте отображения показаний от этого датчика. А вот если линия DQ какого либо датчика имеет замыкание на 0В, либо эту линию сам датчик, при наличии неисправности его внутренней схемы, подтягивает к 0В, то на индикаторе будет выводится значение «К.

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

На другой конец кабеля установлен наколан разъем типа IDC На плате 2 собрана основная часть схемы 2-х канального термометра. Причем разъем, предназначенный для подключения к плате дисплея типа IDC10 и разъемы для подключения датчиков температуры на принципиальной схеме не отображены. Обе платы соединены вместе с помощью шестигранных металлических стоек. Плата 1 выполнена из нефольгированного стеклотекстолита и служит основанием для дисплея. Плата 2 выполнена из одностороннего фольгированного стеклотекстолита с вытравленными на нем печатными проводниками рисунок 2.

Рисунок 3. Размещение элементов со стороны установки выводных элементов. Рисунок 4. Размещение элементов со стороны проводников печатной платы. На стороне установки выводных компонентов до монтажа элементов необходимо установить три перемычки на рисунке 3 показаны красным цветом.

Все SMD резисторы и конденсаторы применены в корпусе типоразмера Конденсаторы С3 и С4- электролитический. Все резисторы и SMD конденсаторы устанавливаются на печатную плату со стороны печатных проводников см. При переработке печатной платы можно использовать микроконтроллер и в других корпусах. Разъем для внутрисхемного программирования Х1 — это 5 контактов от линейки контактов PLC Можно не устанавливать при установке микроконтроллера в панельку или, если в плату впаивается уже запрограммированный микроконтроллер.

Энциклопедия радиолюбителя Онлайн калькуляторы. Есть какие-то особенности в программировани и или что-то еще? Должна быть 4МГц. Хочу себе собрать несколько с разными объектами измерений. Стыдно просить все возможные варианты прошивок, а я в прогммировании не соображаю да и поздно уже учиться , но может путём несложных изменений этих двух слов в НЕХ коде в проге PonyProg перед прошивкой это возможно будет сделать неопытному ника кому программисту.

Был бы очень благодарен если б Вы розжевали мне это. Обновить список комментариев. Добавить комментарий. Запомнить меня. Описание: Файлы прошивок микроконтроллера различных версий, исходный код программы, макет печатной платы Autocad. Размер файла:


Два термометра на PIC16F628A и DS18B20

Технический портал радиолюбителей России. Фотогалерея Обзоры Правила Расширенный поиск. RU Конструкции на микроконтроллерах для радиолюбителей Термометр с двумя датчиками. Уважаемые посетители! RU существует исключительно за счет показа рекламы.

Простой цифровой термометр на PIC16FA и датчике DS18B Это обычный цифровой термометр, на просторах интернета подобных девайсов .

Схема «Термометр»

Датчики температуры DS18B20 в данной схеме могут работать как по трёх проводной схеме так и по двухпроводной режим паразитного питания. Для схемы с общим анодом достаточно элемента 2И. Выбор отображения информации выполняется однократным нажатием клавиши. Вход в настройки и переход между настройками выполняется при длительном удержании клавиши. Редактирование настроек — однократное нажатие. Автовыход через 63 сек. Настройка датчиков температуры выполняется с каждым по отдельности. Входим в настройки первого датчика, подключаем его ногу управления к схеме и жмём кратковременно клавишу, должны появиться его показания. Переходим в настройки второго длительно удержав клавишу , подключаем его ногу управления к схеме и жмём кратковременно клавишу, должны появиться его показания. Выходим из настроек и оба датчика подключаем к схеме.

Схема термометра на микроконтроллере

Заказали мне часы для Рено еще ранней весной. С просьбой вместить их в родной корпус чтобы не пилить ничего и не колхозить. И термометр к ним добавить, вернее 2 салонной температуры и наружной. Схему я нашел почти сразу но вот со временем как то не получалось. То корпус донора дома забуду и плату развести не могу, то на роботе завал и некогда.

Интернет пестрит всевозможными предложениями различных цифровых термометров на микроконтроллере , попадаются и запоминающие, но меня поймет каждый радиолюбитель всегда хочется чего-нибудь своего!!! Так и в моем случае появилась острая необходимость сделать цифровой термометр на микроконтроллере PIC16FA , а нужен он мне был для измерения рабочей температуры мощных симисторов в процессе отладки терморегуляторов, позднее было принято решение использовать цифровой термометр и для измерения температуры в комнате и на улице.

Термометр с двумя датчиками на DS18B20 и микроконтроллере

Норма отгрузки Условия работы. Вопросы и ответы. Отправить запрос. Норма отгрузки. Условия работы.

PicHobby.lg.ua

Форум Новые сообщения. Что нового Новые сообщения Недавняя активность. Вход Регистрация. Что нового. Новые сообщения.

Термометр на PIC16FA + DS18B20(DS18S20) + LED + коррекция — статья в которой подробно опишу несложный термометр с.

Switch to English регистрация. Телефон или email. Чужой компьютер.

Настройки порта. Страница помощи. Запрос температуры. Компьютер — PIC микроконтроллер.

Здравствуйте уважаемые посетители.

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

Термометр на микроконтроллере PIC16FA и DS18B20 DS18S20 — статья с подробным описанием схемы запоминающего термометра и, вдобавок, — логическое продолжение ранее опубликованной мною статьи на яндекс сайте pichobbi. Этот термометр довольно неплохо себя зарекомендовал, и было принято решение немного его модернизировать. В этой статье расскажу, какие изменения внесены в схему и рабочую программу, опишу новые функции. Статья будет полезна новичкам.


Термометр на PIC16F628A | Полезный изобретения на микроконтроллерах

В данной статье будет описан цифровой термометр на микроконтроллере PIC16F628A с функцией памяти максимальной и минимальной измеренных температур.

Интернет пестрит всевозможными предложениями различных цифровых термометров на микроконтроллере, попадаются и запоминающие, но (меня поймет каждый радиолюбитель) всегда хочется чего-нибудь своего!!! Так и в моем случае появилась острая необходимость сделать цифровой термометр на микроконтроллере PIC16F628A, а нужен он мне был для измерения рабочей температуры мощных симисторов в процессе отладки терморегуляторов, позднее было принято решение использовать цифровой термометр и для измерения температуры в комнате и на улице.

Особенности принципиальной схемы цифрового термометра на микроконтроллере:

  • Проста в повторении;
  • Малое количество деталей;
  • Надежность при длительном использовании и при воздействии возможных помех.

Принципиальная схема термометра показана на рисунке 1

Рисунок 1 — Схема принципиальная

Важная деталь — принципиальная схема запоминающего термометра на микроконтроллере разрабатывалась параллельно с печатной платой, так как микроконтроллер вещь универсальная (каждый пин любого из портов можно настроить как на вход, так и на выход). Отсюда – разводим сначала печатную плату, так как нам удобно, а после рисуем принципиальную схему. Это очень удобная методика! Признаюсь не моя, подглядел на каком-то из форумов! Автору респект!!!

Теперь немного подробнее рассмотрим особенности отдельных узлов принципиальной схемы запоминающего термометра на микроконтроллере PIC16F628A.

Сердцем термометра является микроконтроллер PIC16F628A фирмы Microchip. Это довольно распространенный и не дорогой микроконтроллер. Немало важным достоинством, которого является наличие энергонезависимой памяти и внутренней RC цепочки, которую можно использовать в качестве тактового генератора с фиксированной частотой 4МГц. Такое решение позволяет исключить из схемы обычный кварцевый резонатор и два конденсатора. Вдобавок освобождаются еще и два пина микроконтроллера. Сброс осуществляется при подаче питания, внешняя цепочка сброса исключена, тем самым уменьшилось общее количество деталей, и освободился еще один пин мк.

В качестве датчика температуры был выбран широко распространенный цифровой датчик DS18B20 фирмы Maxim, он не дорогой и передает информацию о измеренной температуре в цифровом виде, что позволяет не заботится о длине проводов, их сечении и прочее. Датчик DS18B20 способен измерять температуру от -55… +125 °С.

Информация выводится на 3-х разрядный семисегментный индикатор с общим катодом (ОК). Резисторы R5-R12 – токоограничивающие, катоды индикатора включены через транзисторы, это сделано для того чтобы не нагружать отдельные пины микроконтроллера. Кнопка SB1 нужна для отображения максимальной и минимальной измеренной температуры, а также для сброса этих величин. Кнопка SA1 переключает датчики(дом, улица).

В процессе разработки цифрового термометра на микроконтроллере была создана его упрощенная виртуальная модель в программе протеус см. рисунок 2

Печатная плата цифрового термометра, показанная на рисунке 3-4, была разработана в программе Sprint-Layout 5. Если программы нет, тогда можно воспользоваться PDF файлами печатной платы термометра, которые подготовлены в масштабе 1:1. Сам ими пользуюсь. В архиве также есть платы в зеркале. Текстолит выбран двухсторонний.

Рисунок 3 — Плата печатная вид снизу

Рисунок 4 — Плата печатная вид сверху

Плату разрабатывал, учитывая воздействие возможных помех. Для этого в схему были добавлены барьерные резисторы R1, R3, R14-R15. А также два конденсатора С1-С2. Термометр на микроконтроллере PIC16F628A, собранный из заведомо рабочих деталей, не требует наладки и начинает работать сразу после включения.

Рабочая программа для микроконтроллера была написана на языке ассемблер и отлажена в MPLab v 8.8. В результате получился вот какой термометр рисунки 5-7.

Рисунок 5 — Внешний вид термометра

Рисунок 6 — Внешний вид термометра(плюсовая температура)

Рисунок 7 — Внешний вид термометра(минусовая температура)

Рассмотрим что умеет делать термометр.При первом подключении цифрового термометра к источнику питания напряжением +5В. Однако в битах конфигурации микроконтроллера отключен детектор снижения напряжения, так что можно падавать и меньшее напряжение. На индикаторе на некоторое время высветятся три прочерка, это стартовая заставка, далее будет отображаться текущая температура датчика. Температура выводится на индикатор в диапазоне от -9,9 до 99°С с точностью до 0,1°С, в диапазоне от -55 до -10 и от 100 до 125 °С с точностью до 1°С. Незначащий первый разряд по необходимости гаситься. При первом запуске пороговые температуры обязательно перезапишутся во временной памяти, а после 5 минут и в энергонезависимой, при последующих запусках перезапись происходит только если выполняется условие превышения пороговых температур(максимальной или минимальной). Почему энергонезависимая память перезапишется не сразу, а через 5 минут??? Это специальный прием, который задает щадящий режим работы энергонезависимой памяти. За первые пять минут температура может измениться несколько раз, а запишется все равно самая максимальная/минимальная.О том, что происходит запись в энергонезависимую память, свидетельствуют три нижних квадрата, которые высвечиваются на некоторое время. Замечу, что в диапазоне температур, когда точность отображения 0,1°С сравнение порогов происходит с учетом десятых, в другом диапазоне десятые не учитываются. Температура измеряется где-то раз в 780 мс.

Если кратковременно нажать на кнопку SB1, то на индикатор будут поочередно выведены максимальная и минимальная измеренные температуры(и две заставки одна для максимальной -П- и одна для минимальной -U-), если кнопку нажать и удерживать до появлений трех прочерков, то произойдет сброс пороговых температур.

Термометр на PIC16F628A автоматически определяет наличие и исправность датчика DS18B20, исправность линии связи датчика DS18B20 с термометром. При отсутствии и обрыве датчика DS18B20, коротком замыкании плюсового провода с проводом информации, при переполюсовке плюсового и минусового проводов линии связи датчика DS18B20 с термометром на индикаторе появится сообщение Er1. Каждую секунду происходит повторная проверка датчика DS18B20 и линии связи. Если причина аварии будет устранена, термометр вернется к основному циклу. При коротком замыкании минусового провода линии связи с информационным проводом на индикаторе появиться сообщение Er2.

Готовую плату термометра разместил в китайском будильнике, предварительно выкинув от туда все не нужное. Вот что из этого получилось(рисунки 8, 9).

Рисунок 8 — Плата термометра в китайском будильнике

Рисунок 9 — Плата термометра в китайском будильнике

Технические характеристики:


  • Диапазон измеряемых температур———————————————от -55 до +125 С
  • Разрешающая способность измерения и отображения
  • от-50 до -10 и от +100 до +120 С————————————————————1 С
  • от-9,9 до+99,9—————————————————————————0,1 С
  • Точность измерения температуры DS18B20 прибор высокой точности имеющий заводскую калибровку.
  • Напряжение питания———————————————————————-5 Вольт

И так подведем итоги…. У нас получился термометр на микроконтроллере PIC16F628A с энергонезависимой памятью, которую, по желанию, можно сбросить. Выбран щадящий режим записи в энергонезависимую память. Есть возможность просмотреть самую минимальную и самую максимальную измеренную температуру одним нажатием на кнопку. Принципиальная схема термометра проста и не содержит дефицитных деталей. В схеме применяются микроконтроллер PIC16F628A и датчик температуры DS18B20. Печатная плата проработана с учетом воздействия возможных помех, размеры платы 70х42. Термометр способен работать от трех батареек типоразмера АА. Средний ток потребления 25мА. Исходный файл прошивки микроконтроллера может пригодится новичкам в программировании.

Посмотрите также:

Термометр на микроконтроллере PIC16F628A и DS18B20(DS18S20)

Файлы к статье:

Архив с платами в формате PDF
Архив с проектом

Внимание! Архив с проектом был перезалит. Устранена одна ошибка неверной записи в энергонезависимую память. Все проверено в железе. Отдельное спасибо Михаилу Маруфенко за выявление ошибки!!!

Удачи всем! И пусть детали будут только исправные!

Термометр 2-х канальный на PIC16F628 + LCD Nokia3310

Часы на ATtiny85 и светодиодной матрице с драйвером HT16K33

Источник питания на ATmega8

Просмотров: 36479

DS18B20 Термометр NOKIA 3310 LCD PIC16F628 Многоканальный

Основой устройства является микроконтроллер фирмы Microchip PIC16F628A, осуществляющий получение информации от датчиков температуры, обработку полученных данных и вывод их на индикатор. Данное устройство позволяет измерять температуру по двум каналам.

В качестве датчиков температуры можно использовать цифровые датчики DS18B20 или DS18S20. Данные цифровые датчики позволяют измерять температуры от -55 до +125°С, причем в интервале -10…+85°С производитель гарантирует абсолютную погрешность измерения не хуже ±0,5°С. На границах диапазона измеряемых температур точность ухудшается до ±2°С.Индикация показаний термометра во всем диапазоне измеряемых температур выполняется с точностью ±0.1°C, при использовании DS18B20, и с точностью ±0.5°C, при использовании DS18S20.

В качестве индикатора используется дисплей от самого популярного в свое время мобильного телефона Nokia3310.

Номинальное напряжение питания 2-х канального термометра …………… +3,3В.
Максимальное напряжение питания не должно превышать …………………… +3,6В.

Микроконтроллер D1 PIC16F628A осуществляет обмен информацией с датчиками D2, D3 типа DS18B20 или DS18S20 по однопроводному цифровому интерфейсу 1-wire. К термометру одновременно должны подключаться только датчики одного типа. Тип датчиков с которыми будет работать термометр определяется программным обеспечением.

Вывод полученной от датчиков D2, D3 и обработанной микроконтроллером D1 информации на индикатор E1 осуществляется по последовательному интерфейсному каналу типа SPI.

Разъем Х1 служит для осуществления внутрисхемного программирования. Тип разъема и его цоколевка контактов обеспечивают подключения устройства к программатору типа PICKit2. Если под микроконтроллер устанавливается панелька типа TRS18, то разъем Х1 можно не устанавливать, а программирование микроконтроллера осуществлять с помощью любого другого программатора отдельно от устройства.

Описание работы

При включении питания и после инициализации микроконтроллера происходит тест наличия и исправности цифровых датчиков температуры. Если какой нибудь датчик не подключен или его неисправность характеризуется наличием на линии DQ постоянного высокого уровня, при обращении к нему микроконтроллера, то на индикаторе будет выводится значение «Обрыв» на месте отображения показаний от этого датчика . А вот если линия DQ какого либо датчика имеет замыкание на 0В, либо эту линию сам датчик, при наличии неисправности его внутренней схемы, подтягивает к 0В, то на индикаторе будет выводится значение «К.З.».

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

Конструкция

Данное устройства собрано на двух платах.

На плату 1 с помощью двухстороннего скотча приклеен дисплей от мобильного телефон вместе с рамкой. Непосредственно к контактам дисплея от Nokia 3310 припаян шлейфовый плоский кабель. На другой конец кабеля установлен (наколан) разъем типа IDC10.

На плате 2 собрана основная часть схемы 2-х канального термометра. Причем разъем, предназначенный для подключения к плате дисплея (типа IDC10) и разъемы для подключения датчиков температуры на принципиальной схеме не отображены.

Обе платы соединены вместе с помощью шестигранных металлических стоек.

Плата 1 выполнена из нефольгированного стеклотекстолита и служит основанием для дисплея.

Плата 2 выполнена из одностороннего фольгированного стеклотекстолита с вытравленными на нем печатными проводниками (рисунок 2).

Рисунок 2

На рисунках 3 и 4 показано размещение элементов на обоих сторонах печатной платы

Рисунок 3. Размещение элементов со стороны установки выводных элементов

Рисунок 4. Размещение элементов со стороны проводников печатной платы.

На стороне установки выводных компонентов до монтажа элементов необходимо установить три перемычки (на рисунке 3 показаны красным цветом). Все SMD резисторы и конденсаторы применены в корпусе типоразмера 1206. Конденсаторы С3 и С4- электролитический. Все резисторы и SMD конденсаторы устанавливаются на печатную плату со стороны печатных проводников (см. рисунок 4). Микроконтроллер может устанавливаться, как непосредственно на плату, так и в 18-ногую панельку типа DIP18 (TRS18).

Датчики D1 и D2 подключаются к разъемам согласно цоколевке, указанной на рисунке 3.

Микроконтроллер PIC16F628А можно заменить на PIC16F628-04 в DIP корпусе. При переработке печатной платы можно использовать микроконтроллер и в других корпусах.

Разъем для внутрисхемного программирования Х1 — это 5 контактов от линейки контактов PLC20. Можно не устанавливать при установке микроконтроллера в панельку или, если в плату впаивается уже запрограммированный микроконтроллер.

Автор: VNNIK71


Архив для статьи «Термометр 2-х канальный на PIC16F628 + LCD Nokia3310»
Описание: Файлы прошивок микроконтроллера различных версий, исходный код программы, макет печатной платы Autocad
Размер файла: 529. 42 KB Количество загрузок: 2 866 Скачать

Понравилась статья? Поделиться с друзьями:

  • Назад
  • Вперед
  • Датчик Холла
  • АЦП
  • Секундомер
  • Тахометр
  • ATXMega128A3
  • RS485
  • MAX7219
  • INA219
  • UPDI
  • LiPo
  • PIC12F617
  • PIC16F876
  • AT90USB162
  • Laser
  • WS2812
  • Многоканальный
  • Сопротивление
  • MC34063
  • ULN2003
  • Charlieplexing

Автомобильный 2-х канальный термометр на PIC16F628A

Конструкция 2-х канального термометра на PIC16F628A и DS18B20, предназначенного для домашнего применения, заинтересовала, как простых радиолюбителей, так и тех у кого есть автомобиль.

Для применения в автомобиле конструкция термометра претерпела ряд изменений, как схемотехнических, так и программных. Надпись «Дом» была заменена на «Салон», а в нижней строке дисплея теперь выводится напряжение бортовой сети автомобиля. При реализации функции измерения напряжения бортовой сети возникли трудности, связанные с отсутствием у примененного микроконтроллера цифро-аналогового преобразователя (АЦП). Зато в микроконтроллере имеется модуль компараторов, который и был использован для измерения бортового напряжения. С помощью модуля компараторов оказалось возможным измерять напряжение в диапазоне входных напряжений от 5,6В до 16В с дискретностью измерения 0,7В. Это самый оптимальный вариант для решения поставленной задачи без замены микроконтроллера. Зная напряжения бортовой сети можно оценить состояние аккумуляторной батареи. Сразу при включении устройства (с помощью замка зажигания или другим способом) выполняется измерение бортового напряжения. Если величина бортового напряжение оказалась меньше чем 10,5В автомобильный термометр-вольтметр оповестит звуковым сигналом (в течении 1,5с. ) и одновременно выведет в нижней строке дисплея сообщение «Аккум — разряжен» примерно на 3…4с. Далее в нижней строке будет отображаться текущее значение бортового напряжения. Если величина напряжения будет меньше 5,6В на индикаторе будет отображаться сообщение  «Напряжение <6B», а если больше 16В — «Напряжение >16B».

Описание схемы:

В качестве управляющего контроллера D1 используется микроконтроллер фирмы Microchip PIC16F628A, работающий в данном устройстве от внутреннего тактового генератора (4МГц).

Вывод информации о величине измеренных температур и напряжении бортовой сети автомобиля микроконтроллер осуществляет на LCD индикатор E1 от мобильного телефона Nokia3310. Передача данной информации осуществляется по последовательному интерфейсному каналу типа SPI. Обмен информации между микроконтроллером и дисплеем одностороний, данные передаются только от микроконтроллера к индикатору.

Резисторы R11…R15, совмесно с входными встроенными защитными цепями индикатора, обеспечивают согласование уровней сигналов управления, поступающих на индикатор.

Питание индикатора осуществляется от параметрического стабилизатора напряжения, обеспечивающего значение напряжения питания индикатора около +3,3В. Стабилизатор напряжения выполнен на стабилитроне V5, резисторе R10 и конденсаторе фильтра С8. Питание на стабилизатор поступает от источника стабилизированного напряжения +5В. Измерение температур осуществляется цифровыми датчиками температуры U1 и U2 фирмы Maxim DS18B20. Эти датчики имеют заводскую калибровку и позволяют измерять температуру окружающей среды от -55 до +125°С, причем в интервале -10…+85°С производитель гарантирует абсолютную погрешность измерения не хуже ±0,5°С. На границах диапазона измеряемых температур точность ухудшается до ±2°С.Индикация показаний термометра во всем диапазоне измеряемых температур выполняется с дискретностью ±0.1°C.

Обмен данными и командами между микроконтроллером D1 и датчиками температуры U1 и U2 осуществляется с помощью последовательного интерфейсного канала 1-Wire. Для упрощения программного обеспечения датчики подключены на отдельные входы микроконтроллера. Протокол обмена при этом по шине 1-Wire упрощается : не требуется адресация датчиков и их предварительная инициализация.

Резисторы R4, R6 являются нагрузочными резистороми для линий интерфейса 1-Wire. Резисторы R5, R7 выполняют функцию защиты внутреннего источника питания термометра при коротком замыкании цепей питаний датчиков.

Разъем Х3 используется для внутрисхемного программирования микроконтроллера D1. Его необходимо устанавливать в случае использования микроконтроллера в SMD исполнении или когда микроконтроллер в DIP корпусе непосредственно впаивается в плату, а не устанавливается в панельку. Разъем Х3 обеспечивает непосредственное подключение программатора PICKIT2 к термометру.

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

Внутренняя схема питания автомобильного термометра реализована следующим образом:- с разъема Х4 бортовое напряжение поступает через диод V1 и резистор R3 на микросхему интегрального стабилизатора напряжения U3 типа 7805.

Данная микросхема из напряжения бортовой сети формирует стабилизированное напряжение +5В для питания микроконтроллера, параметрического стабилизатора индикатора и цифровых датчиков температуры;

— Диод V1 препятствует прохождению импульсных помех отрицательного напряжения в цепи питания термометра, защищает устройство при неправильной подачи питания на устройство (переполюсовка питания), а также совместно с конденсатором С1 препятствует перезапуску микроконтроллера устройства при провалах напряжения бортовой сети при включении стартера автомобиля или других энергоемких потребителей электроэнергии автомобиля; — Резистор R3 совместно с ограничительным диодом (супрессором) V2 защищает внутренние цепи термометра от перенапряжений, возникающих от влияния импульсных помех.

Узел формирования аналогового сигнала, необходимого для измерения напряжения бортовой сети, собран на резистивном делителе напряжения R1,R2, конденсаторе C2 помехоподовляющего фильтра (R1, C2), и диодах V3, V4, защищающих совместно с резистором R1 аналоговый вход микроконтроллера от перенапряжений.

Желательно для повышения точности измерения напряжения резисторы R1 и R2 использовать с 1% точностью, но так, как дискретность измерения очень большая (0,7В) — это условие не обязательно.

Мощность резистора R3 должна быть не менее 0,5Вт, а мощность стальных резисторов может быть 0,125Вт для выводных и 0,1Вт для SMD резисторов

Опытный образец автомобильного термометра был собран на односторонней печатной плате:

Внимание печатная плата и монтаж опытного образца выполнены по схеме — Shema_avto_termo_3310_pic16f628.spl, файл которой представлен ниже. Отличие от представленной выше схемы только в оформлении и в позиционных обозначениях элементов. 

Скачать архив всего проэкта: 93.78 KB

Схема электронного термометра

Поделиться ссылкой:

 

png»>   

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

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

Разработанная схема электронного термометра показана на рисунке ниже.

С1, C2 – 0,1 МкФ, C3 – 220МкФ, DD1 — PIC16F628A, DD2,DD3 — DS18B20, GB1 – 3 по 1,5В, HG1 – KEM-5631-ASR с ОК, R1,3,14,15 – 5,1Ом, R2,16 – 5,1К, R4,13 – 4,7К, R5…12 – 330Ом, R17…19 – 4,3К, VT1. .3 – BC556B.

Как мы уже говорили, основой термометра будет являться широко распространенный и недорогой микроконтроллер PIC16F628A. Данная микросхема имеет энергонезависимую память и встроенный генератор 4 мегагерца. Кроме того во время подачи питания осуществляется сброс микроконтроллера и внешняя схема для этого не нужна. За счет этого размер схемы будет уменьшен.

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

Данные отображаются на трехразрядном семисегментном индикаторе с ОК (общим катодом). Для ограничения тока на сегментах установлены резисторы R5…R12, а катоды индикатора управляются транзисторами VT1 – VT3 для того чтобы снизить нагрузку на выхода контроллера.

Для просмотра минимальных и максимальных значений температуры и их сброса используется кнопка SB1. Переключателем SA1 выбирается датчик дом или улица.

Описание работы электронного термометра.

После подача питания на схему, на индикаторе кратковременно отобразятся прочерки, и далее покажется температура выбранного датчика. Точность показаний в интервале измеряемых температур от — 9,9 до 99 градусов будет составлять 0,1 градуса. А в интервалах от -55 до -10 и +100…+125 будет 1 градус.

Во время первого запуска произойдет перезапись минимальной и максимальной температуры в ОЗУ, а через пять минут и в энергонезависимой памяти. При следующих запусках это будет происходить только в случае изменений записанных данных. Факт записи данных в энергонезависимую память индицируется загоранием всех точек. Период измерения составляет примерно 780 миллисекунд.

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

Кроме того схема в автоматическом режиме проверяет подключение и работоспособность датчиков, исправность линии. В случае обрыва, не подключении датчика, кз плюса датчика с информационным проводом и переполюсовке проводов датчика на индикаторе отобразится Er1. При КЗ минуса датчика с информационным появится Er2.

Характеристики электронного термометра:

— интервал температур – от -55 до +125 градусов;
— шаг показаний:
— при t -50…-10 и +100…+120 градусов – 1 градус
— при t -9,9…+99,9 – 0,1 градуса;
— напряжение питания – 5 вольт.
— погрешность датчика температуры DS18B20 — 0.5 градуса

Архив с платой и прошивкой можно скачать здесь. (Нажмите правой кнопкой мышки и далее «Сохранить как»).

Анекдот:

Приходит муж с работы и прямо с порога:
— Так, жена, быстро раздевайся и в кровать!
Жена дар речи потеряла, 25 лет вместе прожили — такого не было, чтобы с порога и сразу в постель. Быстренько разделась и в кровать. Муж прыгает к ней, накрывается с головой одеялом и:
— Смотри, жена, часы купил, светятся!

     
   
   

Биполярные транзисторы

Полевые транзисторы

Содержимое 2

Транзисторы GBT

Содержимое 3

Цифровые микросхемы

Аналоговые микросхемы

Содержимое 5

Конденсаторы

Содержимое 7

Устроства для начинающих

Электроника для авто

Устройства для дома

Источники питания

Устройства на микроконтроллерах

Ремонт бытовой аппаратуры

Содержимое 6

Разное

Содержимое 7

 

Здесь может быть Ваша реклама

СЕКЦИЯ ДЛЯ ЭКСПЕРИМЕНТОВ ЦИФРОВОЙ ТЕРМОМЕТР by PIC 16F628A

После экспериментов с PIC16F84 переходим к микроконтроллеру 16F628A, его старшему брату. На этой странице 4-значный термометр выполнен с ПОС, соединенным с датчиком температуры. Датчик от производителя Dallas Semiconductor, это DS1820.

Как всегда, показана распиновка компонентов, где вы можете увидеть расположение контактов с относительным функциональным кодом. облегчить реализацию.
Технический паспорт в формате PDF с техническими характеристиками ПОС можно скачать, нажав на иконку ниже. Технический паспорт в формате PDF с техническими характеристиками датчика температуры можно скачать, нажав на иконку ниже.

Эксперимент/проект выполняется на экспериментальной базе, где размещены необходимые компоненты. Используя датчик DS1820, можно контролировать температуру от -55 до +125 градусов, для чего нужны 4 7-сегментных дисплея, в нашем случае с обычными катод (отрицательный общий). Микроконтроллер общается с датчиком и получает температуру, которая должна быть показаны на дисплеях. PIC16F628A, в отличие от 16F84A, имеет собственную схему генератора (с возможностью выбора двух скоростей), поэтому он не требует кварц и конденсаторы или внешняя RC-цепочка для его работы. Для системного мультиплексора требуется 4 транзистора в качестве ключа и резисторы относительного смещения. Отдельные сегменты дисплеев подключаются к портам ПОС через ток. ограничительные резисторы. В связи с этим полезно уточнить, что значения вышеупомянутых сопротивлений определяются согласно к имеющимся дисплеям рекомендуется использовать дисплеи с высокой яркостью для получения удовлетворительного результата (лучше, чем тот, который виден на фильм внизу страницы). Для датчика температуры необходим подтягивающий резистор, обозначенный аббревиатурой R 9.в проводке диаграмма. Конденсаторы C 1 и C 2 предназначены для устранения любых помех, присутствующих в источнике питания.

  • ИС 1 = ПОС 16F628A
  • IC 2 = DS1820
  • R 1-7 = 100 Ом
  • R 8 = 150 Ом
  • R 9 = 4,700 Ом
  • R 10-13 = 10 кОм
  • С 1 = 0,1 мкФ
  • С 2 = 0,1 мкФ
  • Ds 1-4 = Дисплей 7 сегментов CC
  • Q 1-4 = BC238

На изображении выше показана схема подключения 7-сегментного цифрового термометра с 4 дисплеями. Дисплеи с общим катодом, с высоким рекомендуется яркость, 7 сегментов соединены параллельно и соединены с помощью сопротивления, чтобы ограничить их поглощение на 7 портах RBx PIC, как указано на схеме подключения. Как вы можете видеть, обратившись к техническому описанию PIC, разрешен максимальный ток 25 мА для каждого отдельного контакта портов ввода-вывода и общий ток не более 200 мА. Десятичная точка (от второй дисплей), опять же с помощью токоограничивающего резистора, подключается к порту RB0 — контакт 6. Дисплеи включаются по одному время с системой мультиплексора с помощью 4 транзисторов, действующих как переключатели. 4 транзистора управляются 4 из 8 портов RA. PIC с помощью резистора, подключенного к его базе. Завершите схему: C 1 и C 2 ), чтобы ограничить помехи в электросети.
Полная реализация на базе миллефиори доступна в разделе проектов этой версии. Чтобы получить прямой доступ к веб-странице, нажмите здесь.

Для использования дисплеев с общим анодом необходимо лишь сделать небольшую модификацию, заключающуюся в соединении коллекторов 4-х транзисторов, которые выбирают по очереди 4 дисплея, к положительной линии питания вместо отрицательной и, очевидно, для программирования PIC с относительной программой. Для удобства ниже приведена полная схема с изменениями и рядом ссылка с файлом HEX использовать. Внизу страницы вы можете посмотреть видео с этой конфигурацией. Помните, что необходимо регулировать сопротивления через который подается питание на сегменты дисплеев (в данном втором случае от 330 Ом) для предотвращения их подгорания!

Чтобы загрузить файл в формате HEX
для дисплеев с общим анодом , нажмите здесь .
В роликах ниже можно увидеть фильмы цифрового термометра в работе, в двух конфигурациях: слева с общим катодом; справа тот, что с общим анодом. Видно соединения, блок питания с индикацией поглощение и изменение температуры при прикосновении к датчику пальцами. Перейдите по ссылке, где можно скачать программу в zip формат конфигурации общего катода. Чтобы скачать файл в формате HEX нажмите кнопку

Простой цифровой термометр 7Segmentic на STM8 и DS18B20 — Share Project

С конца 1800-х до конца 1900-х годов пишущая машинка была одним из лучших инструментов для написания документов. К сожалению, они в значительной степени устарели с появлением домашних компьютеров. Я не вырос с пишущей машинкой, но пару месяцев назад купил электронную пишущую машинку Brother AX-25. Он использует маргаритку (вращающееся колесо с отлитыми в нем буквами) и моторизованный молоток для ввода текста, а не штрихи (или бойки), как в традиционной пишущей машинке. Звук, который он издает, не имеет себе равных даже на самой щелкающей клавиатуре. Каждое нажатие клавиши приводит к короткому гудению, когда мотор выбирает символ, после чего следует удовлетворительный щелчок. AX-25 имеет 16-символьный ЖК-дисплей, 128 КБ ПЗУ для прошивки пишущей машинки, 128 КБ памяти и 16 КБ ОЗУ. Эти характеристики довольно ужасны по сегодняшним меркам. К счастью, старые технологии легко перепрофилировать с помощью оборудования с открытым исходным кодом! Вот почему я использовал Arduino и Raspberry Pi, чтобы превратить свою пишущую машинку в терминал Linux. Вдохновение Еще в старшей школе один из моих друзей работал над созданием компьютера с использованием Z80 для школьного проекта. Он настроил его на нескольких макетных платах в портфеле, и после того, как мы немного поговорили об этом, мы решили, что попробуем поместить его в старую пишущую машинку. Мы хотели сделать свой собственный Commodore 64. Мы распотрошили старую электронную пишущую машинку, но так и не удосужились поставить в нее компьютер. В течение последних 6 лет у меня в комнате лежала оболочка этой пишущей машинки. Какое-то время я хотел превратить пишущую машинку в кибердеку. Я планировал поставить в него экран и Raspberry Pi с здоровенной батареей. У меня крутилась эта идея в голове, пока пару лет назад я не увидел видео CuriousMarc о том, как его телетайп превратился в терминал Linux. Я хотел сделать то же самое с пишущей машинкой, но у меня никогда не было на это времени, и я не мог найти пишущую машинку ни в одном комиссионном магазине. После окончания колледжа у меня, наконец, появилось достаточно свободного времени и знаний, чтобы превратить пишущую машинку в компьютер. Что она может делать? Я могу использовать все виды команд Linux, большинство программ CLI будут работать, но все с текстовым интерфейсом ( как Vim или Emacs) не будет работать. Обрабатывая escape-последовательности, которые выводит Raspberry Pi, я могу автоматически переключать функции форматирования пишущей машинки. Он также может печатать ASCII-арт! Вот видео о том, как он печатает некоторые изображения, которые я нашел в Интернете, и некоторые, которые я сделал с помощью генератора изображений ASCII: Обратное проектирование. Клавиатура пишущей машинки подключена к матрице 8×11 и подключается к пишущей машинке с помощью двух разъемов, один для строк. , и один для столбцов. К ним подключены разъемы клавиатуры с перемычками для моей схемы. Когда вы нажимаете одну из клавиш, она соединяет один из выводов строки с выводом столбца, который затем обнаруживает пишущая машинка. Чтобы выяснить, какой паре контактов соответствует каждая клавиша, я соединил каждую пару вручную по одной и записал, какая клавиша была напечатана. Я делал это до тех пор, пока не нанес на карту всю матрицу. Макет матрицы пишущей машинки. В пишущей машинке используется линейный регулятор 7805 для питания ее 5-вольтовых компонентов, и я смог найти неиспользуемую 5-вольтовую площадку и заземляющую площадку, к которой я могу подключиться для питания. моя схема. Мне пришлось добавить радиатор к регулятору, чтобы приспособиться к повышенному энергопотреблению моей схемы. Управление пишущей машинкой Код Arduino доступен в моем репозитории GitHub, если вы хотите взглянуть на него подробнее! Моя Arduino управляет пишущей машинкой с помощью двух мультиплексоров, подключенных к каждому из разъемов клавиатуры. Сигнальные контакты мультиплексора подключены, поэтому их можно использовать для соединения пар контактов на разъемах клавиатуры вместе. Чтобы отправить ключ, Arduino выбирает контакт на каждом мультиплексоре, чтобы соединить их, что заставляет пишущую машинку думать, что клавиша была нажата. Мой прототип схемы управления пишущей машинкой. Arduino подключен через последовательный порт к Pi, который имеет последовательная консоль включена на своих контактах UART. Я решил использовать Arduino в дополнение к Raspberry Pi, потому что я лучше знаком с ними, и это значительно упрощает взаимодействие с консолью UART Raspberry Pi. Arduino и Raspberry Pi обмениваются данными со скоростью 120 символов в секунду, но пишущая машинка может печатать только 12 символов в секунду. Чтобы предотвратить обрезание длинных сообщений, я добавил в свой код управление последовательным потоком. Это позволяет Arduino сообщать Pi, когда начинать и прекращать отправку текста. Raspberry Pi работает под управлением Raspberry Pi OS Lite, так как мне нужен только доступ к терминалу. Клавиатура Для сканирования клавиатуры я использовал практически ту же схему; два мультиплексора, один для строк, один для столбцов. Arduino сканирует клавиатуру по одной клавише за раз, выбирая канал на каждом мультиплексоре. Когда он обнаруживает, что клавиша была нажата, он отправляет этот символ на Raspberry Pi, чтобы он мог его обработать. Мой прототип схемы сканирования клавиатуры. Я мог бы использовать оригинальную клавиатуру пишущей машинки для этого проекта, но я решил заменить ее. со специальной механической клавиатурой с переключателями Matias Alps, которые очень щелкают и на них приятно печатать! Индивидуальная раскладка клавиатуры, которую я разработал для своей пишущей машинки. ЗаключениеПревратив свою пишущую машинку в компьютер, я смог воссоздать опыт использования телетайп. Теперь я знаю, каково было использовать Unix в 19-м веке.60-х, когда он изначально разрабатывался! На специальной механической клавиатуре приятно печатать, и она представляет собой огромное обновление по сравнению с мягкой мембранной клавиатурой, которая была у нее изначально. Благодаря этим обновлениям моя пишущая машинка стала намного мощнее!

Самодельный термометр на мк пик. Термометр на ATmega8 и датчик температуры DS18B20. Двухканальный термометр на микроконтроллере ATmega8 и датчиках DS18B20

На рисунке представлена ​​схема термометра на базе микроконтроллера 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, после предварительного усиления…

Это обычный цифровой термометр, подобных приборов в интернете много. Основой является микроконтроллер PIC16F628A и цифровой датчик температуры DS18S20 (DS18B20). В качестве индикаторов используются светодиодные 3-разрядные зеленые индикаторы. Индикация динамическая. Термометр работает во всем диапазоне температур датчика ДС18С20, т. е. от -55 до +125 градусов.

Термометр в сборе на печатной плате вместе с индикатором. Датчик и питание подключаются отдельно. Если датчик не подключен, отображается буква E (Ошибка). У этого устройства нет никаких функций. Диод VD1 служит для защиты от переполюсовки источника питания.

Прибор может работать как с датчиком DS18B20, так и с датчиком DS1820 (DS18S20). Каждый датчик использует собственную прошивку микроконтроллера. Ниже представлен вариант этого термометра с уже установленным на печатной плате диодным мостом и стабилизатором 7805, т.е. для питания этого прибора достаточно подключить вторичную обмотку трансформатора к разъему питания. Кроме того, на этой плате установлен светодиод, который кратковременно мигает во время опроса датчика температуры микроконтроллером. Светодиод подключается между ножкой RB3 (пин 9) и заземление, естественно с резистором. Отсутствие светодиода на плате не повлияет на работу термометра.

Устройство удобно разместить в любой пластиковой коробке подходящих размеров. Я разместил его в корпусе сетевого блока питания (адаптер) вместе с трансформатором. Те. из коробки выходит только разъем на датчике DS18B20, а сам корпус вставляется в сеть 220В.

Файл:
Размер:
Содержание:

sm_termo.rar
38,3 КБ
Чертежи плат (LAY) и прошивки микроконтроллера.

Схема термометра на 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 и внести изменения в программу (заменить массив двоичных кодов для отображения цифр на индикаторе). Я применил красный индикатор свечения, а заодно для следующей диаграммы подготовил такое же, но синее свечение.

Детали термометра на микроконтроллере ATmega и DS18B20



Распиновка микроконтроллера ATmega8:

Трехразрядный семисегментный индикатор FYT-5631AUR-21:

Датчик температуры DS18B20:

BC547C Транзисторы:

Алгоритм программы термометра на ATmega и DS18B20

Все настройки микроконтроллера заводские, FUSE-биты трогать не нужно.

Для работы программы задействовано два таймера/счетчика микроконтроллера:
восьмибитный T0
шестнадцатибитный T1
  Через восьмиразрядный таймер Т0, настроенный на вызов прерывания по переполнению, с внутренней частотой SC/8 (период 2 миллисекунды) организовано:
— расчет текущей температуры
— динамический вывод результатов измерения температуры датчиком DS18B20
  Через шестнадцатиразрядный таймер T1, настроенный на вызов прерывания при переполнении, с внутренней частотой SC/64 (период 4 секунды) организовано:
— подача команды датчику DS18B20 на измерение температуры
— чтение измеренной температуры с датчика
В принципе можно использовать один восьмибитный таймер/счетчик, так же настроенный на вызов прерывания по переполнению, с внутренней частотой SK /8, и организовать всю работу схемы в процессе обработки прерывания. Но дело в том, что в этом нет смысла — датчику DS18B20 требуется чуть меньше 1 секунды (при 12-битном разрешении) для преобразования (определения) температуры, т.е. чаще 1 раза в секунду мы обновить не сможем данные о температуре. Кроме того, такое частое обновление температуры приведет к нагреву датчика и, как следствие, к искажению реальных данных. Использование второго счетчика позволяет отдельно установить временные интервалы измерения температуры.

Вот так выглядит основная часть программы в Algorithm Builder:

Где:

SP — установка начального адреса стека

Таймер 0 0: — установка таймера

Таймер 1 — Установка таймера T1:

TIMSK — Установка прерываний из таймеров:

init_display — Руковод вывода данных на трехразрядный семисегментный индикатор

1 -> I  — глобальное разрешение прерывания

Если есть вопросы, если что-то изложено не понятно или есть вопросы по программе, пишите — отвечу.

  (2,4 КиБ, 7004 просмотров)

По просьбам тех, кто собирал предыдущую конструкцию барометра на ПОС 16Ф684 и датчике давления БМП180, публикуем статью (продолжение). Это устройство позволяет отображать как температуру, так и давление. Для этого используется индикатор на базе MAX7219.в конструкции использована микросхема, позволяющая работать с матрицей 8Х7, использование данного индикатора позволило уменьшить количество задействованных портов микропроцессора.

Используется самый распространенный датчик температуры — 18б20, имеющий трехвыводную конструкцию. DS18B20 (цифровой термометр 1-Wire® с программируемым разрешением). Диапазон измерения температуры от -55 до +125 °С. Для диапазона от -10 до +85 °С погрешность не превышает 0,5 °С.

Схема устройства представлена ​​на рис. 1.

Индикатор MAX7219 куплен на Алиэкспресс. Но этот индикатор продается в готовом виде и вам нужно всего 5 проводов для его подключения к программируемой плате.

Принципиальная схема индикатора представлена ​​на рисунке 2, фото такого индикатора представлено ниже.

Внешний вид собранного устройства представлен на фото ниже.

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

Скачать чертеж печатной платы, схему и прошивку.

Описание термометра

Цель этого термометра — просто показать температуру. Небольшие отличия от других подобных схем только в формате вывода температуры на светодиодный индикатор, представляющий собой 4-разрядный сверхъяркий CA04-41SRWA. В качестве датчика температуры DS18B20 используется в обычном режиме с отдельным кабелем питания.

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


Затем на индикатор выводятся сами показания температуры.


Тип считывания следующий:


Отличие в форме выхода только для низких положительных температур. При отображении этой температуры к символу «градус» добавляется символ «C». То есть градусов Цельсия. Символ «градус» присутствует на индикаторе при любой измеряемой температуре.

Датчик температуры DS18B20 измеряет температуру с разрешением 0,0625 градуса Цельсия. Термометр считывает показания с датчика и округляет их до десятых долей градуса. Десятые доли градуса отображаются во всех режимах отображения, кроме температур менее -10 градусов по Цельсию. Это сделано для того, чтобы на показаниях отрицательных температур всегда присутствовал знак минус.

Индикация присутствует на индикаторе в течение 30 секунд. Затем устройство снова переходит в спящий режим и индикатор гаснет.

Моделирование термометра в протеусе

Модель в протеусе позволила отработать программную часть термометра без сборки самого прибора в железе. Все режимы проверены. Сбоев при моделировании в программе нет.


Саму модель можно скачать по ссылке:termo_i_v2.DSN

Принципиальная схема термометра

Схема нарисована на основе печатной платы. Сначала проводники платы были разведены таким образом, чтобы длина проводников и расположение деталей были оптимальными, и только после согласования портов микроконтроллера PIC16F628A с выводами индикатора CA04-41SRWA была составлена ​​точная принципиальная схема.


Печатная плата термометра

Водонепроницаемый датчик температуры, совместимый с DS18B20 — Pimoroni

сортировать по наилучшему соответствиюрекомендуемыеновейшиелучшие продажицена 163264 на страницу только в наличии

Поиск не дал результатов.

Показать больше продуктов…

${ stockHtml }

${ hit.

product_title }${ hit.variant_title ? («-» + hit.variant_title): «» }: ${ hit.description_first_paragraph}

` вернуть $(resultHtml) } const searchResultCallback = (попадания, аспекты, количество) => { debug(«> обратный вызов результатов поиска», совпадения, фасеты, количество) $(«#search .load-more-results»).toggle(hits.page 0) { $(«#search.no-results»).hide() пусть html = «» for(let hit of hits.hits) { $(«#search .results»).append(createSearchResultFull(попадание)) } }еще{ if(searchSearcher.inStockOnly) {$(«#search .no-results .message»).html(«Возможно, у нас есть что-то подходящее, чего нет в наличии. Включить товары, которых нет в наличии.»)} для (пусть я = 0; я `)) } $(«#поиск .без результатов»).show() } // обновляем списки фильтров $(«#search .filters»).find(«раздел»).each((i, e) => { buildFilters($(«#search»), searchSearcher, $(e).data(«type»), аспекты, количество) }) обновитьрейтинги() обновитьЦены() обновитьЗначки() } var searchSearcher = новый искатель([], searchResultCallback) searchSearcher. permanentFilters = true var searchLanding = window.location.pathname == «/search» вар предыдущий URL = ноль вар последний запрос = «» const queryInput = (запрос) => { если(!searchLanding) { if(!lastQuery && запрос) { debug(«> начать поиск, сохранить текущее состояние URL», document.location.href) предыдущий URL = document.location.href $(«#поиск»).show() $(«#контент»).скрыть() } если (последний запрос && !запрос) { debug(«> завершить поиск, вернуться к предыдущему URL-адресу», previousUrl) history.replaceState(null, window.title, предыдущийUrl) $(«#поиск»).скрыть() $(«#контент»).показать() } если (запрос) { searchSearcher.queryText = запрос обновитьПоиск() } последний запрос = запрос }еще{ searchSearcher.queryText = запрос обновитьПоиск() } } $(функция() { если (window.location.pathname == «/search») { $(«#поиск»).show() $(«#контент»). скрыть() searchSearcher.queryText = urlGet(«q», «») $(«#search_input_desktop»).val(searchSearcher.queryText) $(«#search_input_mobile»).val(searchSearcher.queryText) $(«#search .filters»).find(«раздел»).each((i, e) => { searchSearcher.filters[$(e).data(«тип»)] = urlGet($(e).data(«тип»)) }) если(urlGet(«акции»)) { $(«#поиск .только на складе»).prop(«проверено», правда) searchSearcher.inStockOnly = истина } если (urlGet («сортировать»)) { $(«#search .sort-by»).val(urlGet(«sort»)) searchSearcher.sort = urlGet(«сортировка») } если(urlGet(«страница»)) { searchSearcher.preloadPageCount = parseInt(urlGet(«страница»)) } searchSearcher.pageSize = получить(«searchPageSize», 32) $(«#search .per-page»).val(get(«searchPageSize», 32)) searchSearcher.doSearch() } }) // запустить новый поиск и обновить URL const updateSearch = (страница = 1) => { searchSearcher. page = страница searchSearcher.doSearch() пусть параметры = [] if(searchSearcher.queryText) {parameters.push(`q=${searchSearcher.queryText}`)} for(let filter of Object.keys(searchSearcher.filters)) { если (searchSearcher.filters[фильтр]) { параметры.push(`${фильтр}=${searchSearcher.filters[фильтр]}`) } } if(searchSearcher.page != 1) {parameters.push(`page=${searchSearcher.page}`)} if(searchSearcher.sort) {parameters.push(`sort=${searchSearcher.sort}`)} if(searchSearcher.inStockOnly) {parameters.push(`stock=true`)} пусть queryString = параметры.длина > 0? «?» + параметры.соединение(«&») : «» отладка(«> обновить URL», queryString) history.replaceState(null, window.title, «/search» + queryString) } const showOutOfStock = () => { $(«#поиск .только на складе»).prop(«проверено», ложь) searchSearcher.inStockOnly = ложь обновитьПоиск() } $(«#search_input_desktop»).on(«input», (e) => { // ввод поиска на рабочем столе searchSearcher. queryText = $(«#search_input_desktop»).val().trim() $(«#search_input_mobile»).val(searchSearcher.queryText) queryInput (searchSearcher.queryText) }) $(«#search_input_mobile»).on(«input», (e) => { // ввод мобильного поиска searchSearcher.queryText = $(«#search_input_mobile»).val().trim() $(«#search_input_desktop»).val(searchSearcher.queryText) queryInput (searchSearcher.queryText) }) $(«#search .filters >section ul»).click((e) => { // фильтр кликов searchSearcher.filters[$(e.target).closest(«раздел»).data(«тип»)] = $(e.target).hasClass(«активный») ? ноль: $(e.target).data(«значение») обновитьПоиск() }) $(«#search .per-page»).change((e) => { // элементов на странице set(«searchPageSize», parseInt($(e.target).val())) обновитьПоиск() }) $(«#search .sort-by»).change((e) => { // сортировка searchSearcher.sort = $(e.target).val() обновитьПоиск() }) $(«#search .только на складе»).change((e) => { // только на складе searchSearcher. inStockOnly = $(e.target).prop(«проверено») обновитьПоиск() }) $(«#search .load-more-results»).click(() => { // загрузить больше результатов updateSearch(searchSearcher.page + 1) })

Подключите несколько из них к вашему Raspberry Pi, Arduino или другому микроконтроллеру и следите за температурой всевозможных вещей!

Эти цифровые датчики температуры представляют собой недорогой и простой способ сбора показаний температуры, независимо от того, хотите ли вы контролировать свой резервуар с горячей водой, аквариум, теплицу или просто температуру окружающего воздуха. Они используют Интерфейс 1-Wire , что означает, что несколько датчиков могут использовать один и тот же контакт данных — каждый датчик имеет уникальный 64-битный серийный код, который позволит вам считывать их по отдельности.

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

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

Учебные пособия по Raspberry Pi: Les P / Adafruit

Учебное пособие по Arduino

Основные характеристики

  • Цифровой термометр, совместимый с DS18B20
  • Для интерфейса 1-Wire требуется только одна линия передачи данных (и заземление) для связи — каждое устройство имеет уникальный 64-битный серийный код, хранящийся во встроенном ПЗУ
  • Измеряет температуру от -55°C до +125°C (от -67°F до +257°F)
  • Программируемое разрешение от 9 до 12 бит
    • В режиме паразитного питания для работы требуется всего 2 контакта (DQ и GND), что устраняет необходимость во внешнем источнике питания.
    • Функция тревоги с энергонезависимыми программируемыми пользователем верхней и нижней точками срабатывания
    • Корпус из нержавеющей стали (6×50 мм), длина провода 100 см
    • Лист данных

    Выходной провод:

    • Красный (VCC)
    • Желтый (ДАННЫЕ)
    • Черный (заземление)
    ` let whenHTML = `

    ${момент(hit. date, «X»).fromNow()}

    ` пусть sourceHTML = «» пусть ReviewerImageHTML = «» если (hit.source == «gcr») { sourceHTML = `о покупках у нас через Google Customer Reviews` } еще { если (hit.reviewer.first_name) { sourceHTML += `от ${hit.reviewer.first_name} ` рецензентImageHTML = « } если (хит.продукт) { sourceHTML += `о ${hit.product.title} ` sourceHTML += `через REVIEWS.io` пусть изображение = hit.product.image если (изображение) { пусть dotIndex = image.lastIndexOf(«.») image = image.substring(0, dotIndex) + «_75x75» + image.substring(dotIndex) } productImageHTML = « } } пусть HTML = ` ${когдаHTML} ${комментарийHTML} ${reviewerImageHTML} ${источникHTML} ` пусть обзорЭлемент = $ (html) $(«#review_container»). append(reviewElement) обзорElement.click((e) => { $(«#review_popup >div:first-child»).html(html) $(«#review_popup»).parent().show() обновитьрейтинги() }) } обновитьрейтинги() }) } константа loadNextReviewPage = () => { отзывыТекущая страница++ loadReviewPage (обзорыCurrentPage) } $(функция() { loadReviewPage (0) })

    ` $(«#user_photos .grid»).Добавить($(html)) } } $(«#user_photo_count»).text(userPhotoCount + «фотография пользователя» + (userPhotoCount > 1 ? «s»: «»)) }) } const loadNextUserPhotoPage = () => { текущая страница++ loadUserPhotosPage (текущая страница) } $(функция() { loadUserPhotosPage (0) })

    Подключите несколько из них к вашему Raspberry Pi, Arduino или другому микроконтроллеру и следите за температурой всевозможных вещей! читать далее…

    Проверка запасов…

    COM1709

    • Гарантия удовлетворения или возврата
    • Доставка по всему миру почтой или курьером

    Просмотрите свою корзину или продолжите просмотр.

alexxlab

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

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