Термометр на at89c2051 и ds18b20

Автомобильные часы-термометр-вольтметр (на AT89C2051) – Наука радиоэлектроника DINISTOR.INFO

Автомобильные часы-термометр-вольтметр (на AT89C2051)

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

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

Основой устройства является микроконтроллер AT89C2051 фирмы «Atmel» (рис. 1). Для отображения информации используется жидкокристаллический индикатор типа ЖКИ13-8/7-02. Несмотря на то, что в настоящее время доступны ЖКИ с встроенными контроллерами, иногда оказывается целесообразным применение специального ЖКИ.

Причин может быть несколько. Распространенные ЖКИ со встроенными контроллерами обладают целым рядом недостатков: отсутствие десятичных точек, плохой угол обзора, недостаточный в некоторых случаях размер символов. В то же время существует доступная и довольно удобная в использовании микросхема драйвера ЖКИ КР1820ВГ1.

Она выпускается Минским ПО «Интеграл». Ввиду малой распространенности технической документации на эту микросхему, будет уместным остановится на ней более подробно.Рисунок 1.

Принципиальная схема автомобильного многофункционального устройства
Микросхема КР1820ВГ1 используется для управления 36-сегментным ЖКИ в режиме 3-уровневого мультиплексирования. Микросхема изготавливается по КМОП-технологии и выпускается в 20-выводном пластмассовом DIP-корпусе.

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

Одна микросхема имеет три выхода управления строками и 12 выходов управления столбцами. Предусмотрена возможность каскадирования схем, что позволяет использовать их для управления мультиплексным ЖКИ с числом сегментов более 36.

Микросхема не требует никаких навесных компонентов и работает в диапазоне напряжения питания от 3 до 6 Вольт. Назначение выводов микросхемы КР1820ВГ1 показано в таблице 1.Таблица 1. Назначение выводов микросхемы КР1820ВГ1Микросхема КР1820ВГ1 имеет четыре режима работы: одиночный, старший, младший и тестовый.

В одиночном режиме одна микросхема управляет 36-сегментным ЖКИ, обеспечивая полную синхронизацию его работы. Старший и младший режимы предназначены для организации управления ЖКИ с числом сегментов более 36, тестовый режим – для контроля качества микросхем в процессе изготовления.

Данные вводятся в микросхему в последовательном коде по входу D с синхронизацией записи фронтом тактовых импульсов по входу C (рис. 2).

Рисунок 2. Загрузка микросхемы КР1820ВГ1 по последовательной шинеКод записываемых данных определяется конкретной схемой подключения шин управления строками и столбцами к сегментам ЖКИ, а также конфигурацией ЖКИ.Рисунок 3. Конфигурация сегментов ЖКИ
На рис.

3 показан пример конфигурации ЖКИ, а в таблице 2 показан порядок следования битов в кодовой посылке для этого варианта подключения такого ЖКИ.Таблица 2. Порядок следования битов в кодовой посылке
Биты D0…D7 соответствуют сегментам первого разряда, биты D8…D15 – второго и т. д. Биты D32…D35 соответствуют специальным сегментам P1…P4.

Бит D36 может принимать любое значение. Биты D37 и D38 (Q6 и Q7) управляют режимом работы схемы согласно таблице 3. Бит D39 (Q8) предназначен для синхронизации работы двух и более микросхем при каскадировании.Таблица 3. Назначение битов управления микросхемойДля загрузки микросхемы в одиночном режиме необходимо выполнить следующую последовательность действий: 1.

Установить на сходе CS уровень логического 0 2. Записать восемь битов данных для каждой цифры первого-четвертого разрядов 3. Записать четыре бита для специальных сегментов и четыре бита управления: 0|0|1|1|P4|P3|P2|P1 4. Установить на входе CS уровень логической 1 После установки микросхемы в нужный режим для последующей смены данных необязательно записывать все 40 бит информации.

Для загрузки микросхемы в старшем и младшем режимах необходимо выполнить следующую последовательность действий: 1. Установить на входе CS обеих схем уровень логического 0 2. Записать 32 бита данных для «младшей» схемы 3.

Записать четыре бита для специальных сегментов младшей схемы и четыре бита управления: 1|1|1|1|P4|P3|P2|P1 (при подаче последней единицы обе микросхемы устанавливаются в младший режим, выводы COA/G обеих схем работают как входы генератора. Происходит синхронизация работы микросхем) 4. Установить на входах CS обеих схем уровень логической 1 5.

Установить на входе CS «старшей» схемы уровень логического 0 6. Записать 32 бита данных для старшей схемы 7. Записать четыре бита для специальных сегментов старшей схемы и четыре бита управления: 0|0|0|0||P4|P3|P2|P1 (после этого вывод COA/G старшей схемы начинает работать как выход управления строкой А, а вывод COC/G – как выход встроенного генератора.

Импульсы с выхода генератора старшей схемы поступают на вход генератора COA/G младшей схемы, и оба кристалла начинают работать синхронно от генератора старшей схемы) 8.

Установить на сходе CS установить уровень логической 1 Чтобы записать во внутренние регистры-защелки новые данные, нет необходимости сбрасывать обе схемы: достаточно записать данные по очереди во внутренние регистры-защелки каждой схемы. При этом в последний бит D39 должен записываться ноль как для старшей, так и для младшей схем.

Нужно сказать, что некоторые типы ЖК индикаторов неудовлетворительно работают при питании микросхем драйверов напряжением 5 В. Однако картина резко улучшается при снижении напряжения питания до 3,3 – 4 В. Это сделать совсем несложно, так как потребляемый драйверами ток очень мал.

В цепь питания можно включить параметрический стабилизатор напряжения на основе TL431 или даже простой резистивный делитель. На всех цифровых входах драйверов также понадобятся делители напряжения. В качестве часов реального времени применена микросхема DS1302 фирмы Dallas.

Эта микросхема имеет раздельные входы для подключения основного и резервного источников питания, что избавляет от проектирования довольно хитрых схем перехода на резервный источник. Кроме того, имеется встроенная схема «капельной» зарядки резервного источника питания, которая может быть включена программно.

Дополнительно микросхема имеет ОЗУ объемом 31 байт, которое может быть использовано для энергонезависимого хранения параметров. Из навесных элементов требуется только кварцевый резонатор. Здесь хочется предостеречь от применения дешевых некачественных резонаторов. Согласно рекомендациям фирмы Dallas, требуется резонатор, рассчитанный на емкость нагрузки 6 пФ.

В противном случае точность хода часов будет неудовлетворительной или даже появятся проблемы с запуском кварцевого генератора. Для обмена с микросхемой DS1302 используются общие с драйверами ЖКИ линии данных и тактирования. Разделены только сигналы CS и RST.

К сожалению, микросхема DS1302 имеет довольно специфический 3-х проводный интерфейс, который в фирменной документации описан весьма неоднозначно. Это довольно редкий пример плохого фирменного описания. Поэтому в новых разработках лучше применять более современные микросхемы, например DS1307 с интерфейсом I2C.

В качестве датчиков температуры применены микросхемы цифровых термометров DS1821 фирмы Dallas. В цепях данных термометров включены защитные цепочки R11-R14, VD1-VD8, а в цепи питания включен ограничивающий резистор R10 для защиты от короткого замыкания. Несмотря на то, что аппаратно имеется возможность подключить четыре термометра, данная версия программы работает только с тремя. Это вызвано недостаточным объемом памяти программ. Термометры устанавливаются в разных местах автомобиля. В данном случае они были установлены в салоне, на открытом воздухе и в моторном отсеке. Благодаря наличию заданных программно порогов, кроме индикации температуры осуществляется ещё и контроль ее выхода за безопасные пределы. Ввиду недостаточного объема памяти программ, редактирование порогов температур не поддерживается. Пороги в виде констант внесены в текст программы. Для первого термометра +55 градусов, а для второго и третьего термометра +99 градусов.

Для измерения напряжения бортовой сети построен простейший 8-разрядный АЦП на основе встроенного в микроконтроллер компаратора. Для уменьшения влияния помех используется 16-кратное усреднение результатов. Принцип работы АЦП пояснен на рис. 4.

Рисунок 4. Принцип работы АЦПНа входе AIN1 формируется пилообразное напряжение, которое сравнивается с входным напряжением, которое через делитель R2R3 поступает на вход компаратора AIN0. Емкость C8 снижает влияние помех на показания вольтметра.

Пилообразное напряжение формируется на емкости C9 в результате заряда ее стабильным током от генератора тока, собранного на элементах VT2, VD9, R6. Перед началом измерения конденсатор C9 разряжен с помощью открытого ключа VT3. Когда начинается цикл измерения, на порту P1.

5 устанавливается низкий логический уровень, транзистор VT3 закрывается, и напряжение на конденсаторе C9 начинает линейно нарастать. В это время разрешается счет программному счетчику. Счет идет до тех пор, пока напряжение на C9 не станет равным входному (на средней точке делителя R2, R3). При этом переключается встроенный компаратор, и счет запрещается.

Значение, накопленное в счетчике, будет пропорционально входному напряжению. Применение генератора тока (а не резистора) позволило получить линейный закон заряда C9, что исключило необходимость программной линеаризации АЦП, которая потребовала бы дополнительных затрат и так дефицитной памяти программ.

Необходимо отметить, что конденсатор C9 должен быть термостабильным, например, с пленочным диэлектриком типа К73-17. С помощью резистора R6 подбирают ток генератора таким образом, чтобы показания АЦП совпадали с реальным значением напряжения на входе + B. Кроме индикации напряжения осуществляется контроль его падения ниже порога 10 В.

В случае такого падения включается звуковая сигнализация. Для управления устройством применяется ИК-пульт дистанционного управления. Конструктивно он выполнен на базе дешевого малогабаритного калькулятора. Использованы только его корпус и клавиатура. В пульту применена микросхема INA3010D в корпусе SOIC. Для питания используются два элемента СЦ-30.

Используемый номер системы кода RC-5 – 1EH.

Схема пульта не приводится, так как практически повторяет типовую схему включения микросхемы INA3010 (SAA3010) и зависит от конфигурации конкретной клавиатуры. Коды, соответствующие кнопкам, также могут отличаться от заданных.

Для восстановления соответствия необходимо правильно заполнить перекодировочную таблицу в программе. Сделать это можно даже не перетранслируя программы с помощью шестнадцатеричного редактора прямо в .bin – файле. Таблица расположена по адресам 7B8H – 7E3H. Соответствие функций управления, их внутренних кодов (после перекодировки) и кодов ИК ДУ (до перекодировки) приведено в таблице 4.

Таблица 4. Коды кнопок управленияВот краткое описание команд управления: CLOCK – вход в режим установки текущего времени ALARM – вход в режим установки времени будильника ALARM DISABLE – выключение будильника TIMER – включение индикации значения таймера TIMER CLEAR – очистка таймера LIST – включение циклической смены параметров LOCK – запрещение смены параметров 0…9 – кнопки для ввода числовых значений параметров ENTER – ввод отредактированного параметра ESCAPE – отказ от редактирования параметра BACKSPACE – возврат на один символ при редактировании

Источник: https://dinistor.info/elektronika-za-rulem/bortovye-pribory-avtomobilya/avtomobilnye-chasy-termometr-voltmetr-na-at89c2051

Простой термометр на процессоре AT89C2051

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

Практика показывает, что один из первых вопросов в комментариях – “А нельзя ли это переделать на другой тип датчика?”, сбор средств и поиски волонтёров. Поэтому было решено делать сразу под оба типа. Нужный тип датчика выбирается перемычкой.

Термометр определяет и отсутствие или обрыв датчика температуры, высвечивая на дисплее 'Err'.

Температура отображается на трехразрядном светодиодном индикаторе с общим катодом. Диапазон измерений -55°C…+125°C. Точность измерения температуры – 0.5°C во всём диапазоне.

С индикацией младшего разряда (пол градуса) пришлось схитрить. В диапазоне -55°C…-10°C и больше +100°C температура помещается на индикаторе с точностью до 1°C в младшем разряде. Для индикации 0.5°C в этом диапазоне зажигается точка после младшего разряда. Например -37 это -37°C, а вот -37. означает -37.5°C, а 117. соответственно означает 117.5°C.

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

В этих тяжелых условиях, руководстуясь идеями Чучхе было решено самостоятельно делать программатор на коленке, в смысле, на макетке, прямо рядом с термометром, где случайно осталась воткнута Mega32 от какого-то предыдущего проекта.

В итоге, это удалось успешно осуществить, и один из ближайших постов будет про этот программатор.

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

Принципиальная схема в формате Splan7: (доступно зарегистрированным пользователям)

Перечень элементов

ОбозначениеНоминалПримечание
DD1 AT89C2051
U1 DS1820/DS18B20
7Seg1 E30361
C1 33pF
C2 33pF
C3 10uF
Cr1 12 MHz
R1 1k
R2 4k7
R3 10k
R4 620
R5 620
R6 620
R7 620
R8 620
R9 620
R10 620
R11 620

Прошивка

Версия v1.0 от 10.12.2012: (доступно зарегистрированным пользователям)

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

Задавайте интересующие Вас вопросы в комментах к материалу.

Успехов!

Даташиты

Продолжение следует…

Источник: https://www.linker.ru/article/prostoy-termometr-na-processore-at89c2051.htm

DIY набор для создания цифрового термометра и последующая интеграция (не колхозинг) его в автомобиль

DIY набор для создания цифрового термометра и последующая интеграция (не колхозинг) его в автомобильtuaps1nets пишет в ru_sku8 февраля, 2016DS18B20 Temperature Sensor AT89C2051 MCU Control Electronic DIY Kit szsp22 – $7.99
Здравствуйте.

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

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

Заинтересовавшихся прошу… У меня в авто нет датчика температуры наружного воздуха. В связи с этим я испытываю некоторое неудобство. Анализ готовых автомобильных термометров мне не принес удовлетворения. Поэтому выбор пал на этот набор.

Почему именно на него? Термометр использует цифровой датчик температуры DS18B20, который не требуется настраивать или калибровать. Он уже имеет абсолютную точность 0,5 градуса. Но об этом ниже.Перейдём к набору.

Посылка и упаковка:

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

Комплектация:

резистор 470 Ом — 7шт.резистор 4,7 кОм — 5 шт.резистор 10 кОм — 1 шт.резистор 1 кОм — 1 шт.конденсатор 10 мкФ — 2 шт.конденсатор 0,1 мкФ — 1 шт.конденсатор 30 пФ — 2 шт.транзистор S9012 — 4 шт.кварцевый резонатор 12 МГц — 1 шт.кнопка — 3 шт.

микроконтроллер AT89C2051 — 1 шт.панелька DIP-20 — 1 шт.термодатчик DS18B20 — 1 шт.светодиодная матрица 3631 — 1 шт.2-х контактный клеммник — 2 шт.светодиод красный — 1 шт.печатная плата — 1 шт.схема — 1 шт.
Рассмотрим основные компоненты поближе.

Печатная плата:

Односторонняя печатная плата из стеклотекстолита. Со стороны печати нанесён защитный лаковый слой, в обиходе именуемый «зелёнкой», со стороны элементов нанесена шелкография. Размер платы 50х55 мм. Качество изготовления хорошее.

Микроконтроллер:

Микроконтроллер АТ89С2051 в корпусе DIP20 является Атмеловским клоном знаменитого Интелловского микроконтроллера Intell 8051. Официальное название 8051-семейства микроконтроллеров Intel — MCS 51.Микроконтроллер уже «прошит», т.е. содержит в себе необходимый программный код.

Кварцевый резонатор:

Микроконтроллер оборудован тактовым генератором, для стабилизации частоты которого используется внешний кварцевый резонатор на 12 МГц

Термодатчик:

В качестве датчика температуры используется распространённый цифровой датчик DS18B20. Данный термодатчик, а по правильному «Преобразователь температуры» зарегистрирован в Государственном реестре средств измерений и имеет описание типа СИ.

Так вот в описании типа СИ указано, что данный датчик температуры имеет абсолютную погрешность измерения температуры +- 0,5 градуса Цельсия в диапазоне от -10 до +85 градусов. За пределами диапазона погрешность увеличивается до 2 градусов.

Этот цифровой датчик имеет интерфейс «1-Wire» или по другому «MicroLAN». Работает как с «активным» питанием (используются все 3 ножки), так и с «паразитным» (для этого достаточно 2 проводов).

Но ввиду того, что термометр предполагается эксплуатировать в автомобиле с большим уровнем помех, то лучше подключить все 3 ножки.

Индикатор:

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

Винтовые клеммники:

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

Остальные элементы:

Остальные элементы самые стандартные: конденсаторы, резисторы, транзисторы, кнопки.

Паяем:

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

Готовую спиртоканифоль, для удобства использования, советую перелить в пузырёк от лака для ногтей, предварительно очищенный от лака ацетоном.

Кисточкой спиртоканифоль наносится на плату и выводы и дальше паяется обычным припоем, например ПОС-61.

Спаяли:

Возле отверстий можно заметить остатки флюса, протёкшего со стороны печати.

Моем:

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

Наладка и первое включение:

В наладке плата не нуждается, должна работать сразу после подачи питания, но у меня не заработала. Сначала я даже подумал, что контроллер прислали незапрограммированный. Но оказывается при подаче питания, термометр включается в «дежурном режиме» и чтобы его «разбудить», необходимо нажать кнопку S1.

Этой же кнопкой можно послать термометр обратно в «дежурный режим» долгим нажатием. Короткое нажатие переводит в режим изменения уставки. Режим индикации уставки определяется морганием индикатора. Для изменения уставки служат кнопки S2 и S3. Для подтверждения уставки — короткое нажатие S1.

Уставка это температура при которой происходит изменение значения выхода на клеммнике Х2, что дополнительно индицируется красным светодиодом LED1. К клеммнику Х2 можно подключить катушку маломощного 5 вольтового реле, контактами которого уже управлять чем-то более мощным.

Работает это следующим образом: Если измеряемая температура выше уставки, то светодиод не горит и реле обесточено, если температура падает ниже уставки, загорается светодиод и подаётся напряжение на контакты клеммника Х1, т.е. реле срабатывает.

Таким образом с помощью данного термометра, а точнее терморегулятора можно поддерживать температуру в какой-нибудь печи (инкубаторе). Питается термометр от 5 вольт постоянного тока. Ток потребления не замерил, но он невелик. Думаю десятки миллиампер.

Установка в автомобиль:

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

Поэтому левая часть ЖК индикатора всегда пустая. Вот под этот индикатор я и решил спрятать индикатор термометра.

Подробности демонтажа приёмника и последующего его «расковыривания» опущу, думаю всё будет понятно из фото:

Чтобы установить светодиодный индикатор термометра позади ЖК индикатора приёмника, индикатор термометра пришлось удлинить с помощью 11 жильного плоского кабеля (кабель взял от PATA интерфейса, это то, что было до SATA, если такого кабеля в наличии нет, то его можно купить в магазине радиотоваров). Далее в пластиковом корпусе за ЖК индикатором прорезается плоская щель на ширину кабеля, я для этого просверлил ряд отверстий 2 мм сверлом, и обработал их скачала канцелярским ножом, потом маленьким надфилем.Далее, термоклеем закрепил индикатор, удалив излишки клея ножом:ЖК индикатор сам по себе прозрачный, но позади индикатора установлена рассеивающая белая пластиковая прокладка. Вот как видны цифры без рассеивающей прокладки:А вот так с установленной рассеивающей прокладкой:Второй вариант мне понравился больше.


Питание:

Нужно не забывать, что напряжение питания термометра 5 вольт, а бортовое напряжение большинства автомобилей 12 вольт. Для этого необходимо использовать 5 вольтовый стабилизатор.

Я использовал линейный стабилизатор 7805 в корпусе ТО-220. Схема включения:Стабилизатор прикрутил на радиатор. Саму плату закрепил 2-мя стойками к основной плате.

Кнопку S1 подключил к штатной кнопке приёмника, предварительно отрезав дорожки от последней:

Подключение термодатчика:

Для подключения термодатчика я использовал установленное, но не подключенное 8 контактное гнездо DIN-8:В качестве разъёма использовал старый советский стерео-штеккер DIN-5 (такой используется и в старых АТ клавиатурах):Вот как получилось:

Термодатчик и кабель:

Кабель я использовал 2-х проводный микрофонный, т.к. он круглый в сечении и достаточно гибкий. Он состоит из 2-х проводов и оплётки — экрана. Вот этот экран я подключил к “-” питания датчика, провода как получилось:Теперь необходимо датчик загерметизировать.

Проще всего надеть на него термоусадочную трубку таким образом, чтобы она перекрыла и часть кабеля и осталась за пределами датчика ещё миллиметров на 5-8. Далее усадить, начиная от кабеля и заканчивая датчиком и пока ещё трубка горячая, конец зажать пассатижами.

Получается вот такого вида герметичный несъёмный «чехол»:

Место установки термодатчика:

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

Но во время стоянки подкапотное пространство подогревается работающим двигателем и показания плывут вверх.Изучив данный вопрос я выяснил, что производители устанавливают термодатчики наружного воздуха в основном в 2 местах:Перед радиатором под замком капота:И в зеркале заднего вида:Второй вариант мне показался идеальным, т.к.

в зеркале точно термодатчик ничем подогреваться не будет, при условии, что зеркала без подогрева. В моём авто установлены зеркала с электроприводом и как раз без подогрева, поэтому конструктивно уже есть отверстия для проводов. Для этого пришлось снять обшивку двери и часть обшивки салона.

Самое трудоёмкое — продеть провод через гофру с кабелями между дверью и салоном:

Наслаждение результатом:

С выключенным термометром но с включенной подсветкой ЖК индикатора:С включенным термометром:Я результатом остался доволен.

Заключение:

Затратив 8 долларов и 3 дня новогодних праздников я получил цифровой термометр с хорошей точностью измеряющий температуру за бортом авто и, что для меня немаловажно, не портящий внешний вид салона.Вот что ещё можно добавить к вышесказанному:Индикатор термометра можно заменить на другой по размеру или цвету свечения, но аналогичный по подключению, при условии выносного подключения, как в данном варианте. Использовать можно любые 3 разрядные 7 сегментные светодиодные матрицы с общим анодом, либо отдельно 3 одноразрядных 7 сегментных индикатора, также с общим анодом. Подобных индикаторов полно у различных производителей, например у Kingbright.Некоторые производители автомобилей не комплектуют свои авто термометрами наружного воздуха, но предусматривают индикатор, обычно со снежинкой, который говорит о том, что погодные условия близки к образованию гололёда. С помощью данного термометра можно реализовать такую функцию. Выход термостата (клеммник Х2) можно подключить к какой-нибудь лампочке на панели приборов, либо вывести дополнительный светодиод и настроив уставку +1 градус, можно индицировать падение температуры до этой уставки.Ну вот и всё. Удачи по жизни и на дорогах!!!

Источник: https://ru-sku.livejournal.com/1152473.html

Двух канальный термометр-термостат

В последнее время в радиолюбительской литературе опубликовано много описаний различных конструкций на микроконтроллерах, чаще всего — семейства picmicro фирмы microchip. Не умаляя их достоинств, автор решил напомнить, что существуют и другие микроконтроллеры, и сделал предлагаемый прибор на одном из них — АТ89С2051 из семейства mcs-51.

Микроконтроллеры семейства МС5-51 — несомненные чемпионы среди восьмиразрядных как по числу разновидностей, так и по числу компаний, выпускающих их модификации. Первый представитель этого семейства — intel 8051 — был выпущен еще в 1980 г. Для своего времени это очень сложное изделие. На его кристалле 128 тыс.

транзисторов, в четыре раза больше, чем в микропроцессоре intel 8086, базовом для персональных компьютеров ibm pc. Удачный набор периферийных устройств, возможность работы с внешней и внутренней программной памятью и приемлемая цена обеспечили микроконтроллеру intel 8051 большой успех.

Важную роль сыграла открытая политика фирмы intel, широко распространявшей лицензии на производство приборов с ядром 8051 среди ведущих полупроводниковых компаний мира: philips, siemens, intel, atmel, dallas. temic, ow. amd, mhs, lg( winbond, silicon systems и ряда других.

В СССР микроконтроллеры семейства msc-51 выпускали в Киеве (1816ВЕ31. 1816ВЕ51). Воронеже (1830ВЕ31, 1830ВЕ51), Минске (1834ВЕЗ1) и Новосибирске (1850ВЕ31).

Сегодня во всем мире производят более 200 модификаций микроконтроллеров этого семейства, начиная с простых 20-выеодных до сложнейших 100-выводных с встроенными АЦП, многочисленными таймерами-счетчиками, аппаратными умножителями и 64 Кбайт программной памяти на одном кристалле.

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

Когда у автора возникла необходимость защитить подвал гаража от промерзания, дистанционно контролируя и регулируя температуру в нем, для блока измерения температуры и управления нагревателем был выбран микроконтроллер at89c2051-24pi из упомянутого семейства. Ввиду отсутствия в нем энергонезависимой памяти данных для хранения сведений об установленном режиме и допустимых значениях температуры пришлось применить отдельную микросхему энергонезависимой памяти at24c02-10pi Обе микросхемы рассчитаны на работу в “индустриальном” интервале температуры окружающей среды (-40…+85 °С).

На выбор повлияло и то, что суммарная стоимость этих микросхем в одной из московских торговых фирм вдвое меньше цены популярного микроконтроллера pic16f84a-04i/p, работающего в том же температурном интервале.

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

Тип датчика ds1820 или ds18b20
максимальная
минимальная
Поддерживаемая температура С
максимальная +99,9
минимальная
Расход времени на ввод нового значения поддерживаемой температуры, с.
не более 15

Схема, приведенная на рис. 1, стала почти классической для микроконтроллерных устройств такого назначения. В микроконтроллер dd1 загружена программа, приведенная в таблице.

Нагрузочная способность выходов примененного микроконтроллера — 20 мА при низком уровне напряжения на них и всего 50 мкА при высоком поэтому светодиодные семиэлементные индикаторы hg1 и hg2 выбраны с общими анодами. Чтобы сократить число выводов микроконтроллера, необходимое для подключения индикаторов, программно организована динамическая индикация с длительностью отображения каждого разряда 3 мс Элемент g (знак “минус”) индикатора hg1.1 подключей вместо элемента h (десятичной точки) индикатора hg1.2. так что фактически индикация трехразрядная, ее полный цикл занимает 9 мс.
Нередко на время съема показаний датчиков, вычисления температуры, записи данных в eeprom и других сравнительно длинных операций динамическую индикацию приостанавливают, что воспринимается как мерцание индикаторов. Чтобы исключить это неприятное явление, программа оптимизирована и работает с жесткой привязкой к темпу индикации.
Резисторы r7-r14 ограничивают ток катодов индикаторов hg1 и hg2. Транзисторы vt1, vt2, vt4 коммутируют их аноды, подключая поочередно к плюсу источника питания. Резисторы r1, r2 ограничивают ток при случайных замыканиях идущих к датчикам ВК1 и ВК2 проводов, длина которых может достигать нескольких метров. Так как эти провода могут оказаться проложенными в непосредственной близости от силовых кабелей, входы Р3.2 микроконтроллера dd1 и scl микросхемы памяти ds1 защищены от возможных импульсных помех диодами vd5 и vd6. Использование одного и того же вывода микроконтроллера для связи с датчиком и для управления памятью стало возможным потому, что эти функции никогда не выполняются одновременно. Резистор r4 — нагрузочный для линии интерфейса 1-wire согласно которому между микроконтроллером и датчиком происходит обмен командами и данными.
Резистор r3 поддерживает высокий логический уровень на входе РЗ.З микроконтроллера, когда ни одна из кнопок управления sb1-sb3 не нажата. Диоды vd7—vd9 устраняют последствии нажатия на несколько кнопок одновременно. Транзистор vt3 по командам микроконтроллера включает и выключает реле К1, управляющее нагревателем (или другим исполнительным устройством), и сигнальный светодиод hl1. Диод vd10 защищает светодиод hl1 от обратного напряжения.
Светодиод hl2, подключенный вместо элемента h индикатора hg2.2, служит дополнительным индикатором. Например, он выключен, когда на индикатор выведены показания датчика ВК1, и включен, когда выведены показания датчика ВК2.
Узел питания прибора состоит из выпрямителя на диодном мосте vd1 —vd4 и стабилизатора напряжения +5 В da1.
Цифровые датчики температуры ВК1, ВК2 — ds1820 или более современные ds18s20 — внесены в Государственный реестр средств измерений под№ 3169-02 и, таким образом, официально допущены к применению в РФ. В некоторых случаях это имеет решающее значение. Датчики работают при напряжении питания 3…5.5 В, потребляя в режиме ожидания ток не более 1 мкА, а во время отсчета температуры и формирования результата (эти процессы занимают не более 750 мс) — приблизительно 1 мА. Дискретность результата измерения (0,5 С) может быть уменьшена, если прочитать значения регистров датчика count_remain (остаток после счета) и count_perc (число, соответствующее одному градусу Цельсия). Зная их и temp read (температуру, считанную из датчика стандартным образом), более точное ее значение можно вычислить по формуле:

Этим приемом дискретность представления температуры доведена до 0,1 °С.Каждому экземпляру датчиков указанных выше типов присвоен уникальный индивидуальный номер длиной 48 двоичных разрядов, хранящийся в его внутреннем ПЗУ. Это позволяет соединять параллельно практически неограниченное число датчиков, взаимодействуя с каждым из них отдельно.

В описываемом устройстве микроконтроллер подает датчикам первой команду skip_rom (ОССН), предписывающую пропустить процедуру проверки индивидуального номера. Далее команда convert_t (44Н) запускает процесс измерения температуры сразу в двух датчиках.

Через 750 мс, необходимых для завершения этого процесса, микроконтроллер подает команду match_rom (55Н), сопровождаемую индивидуальным номером одного из датчиков. В результате на следующую команду read_scratchpad (ОВЕН) откликается и сообщает микроконтроллеру результат измерения только этот датчик.

Затем (после команды начальной установки) последовательность команд match_rom и read_scratchpad повторяется для второго датчика.Полученные данные микроконтроллер обрабатывает и выводит на индикатор. Для удобства незначащий нуль на индикатор не выводится, а знак “минус”, если он нужен, примыкает слева к старшей значащей цифре.

Если при связи с датчиком зафиксирован сбой, что может означать неисправность или отсутствие датчика, вместо значения температуры будет выведено (в стилизованном виде) сообщение “-dat”.Кратковременными нажатиями на кнопку sb1 переключают прибор на индикацию показаний датчика ВК1 или ВК2.

Если удерживать эту кнопку нажатой более 5 с, будет включен режим автоматического поочередного вывода показаний датчиков с периодом 5 с. Выходят из этого режима коротким нажатием на ту же кнопку.Терморегулятор всегда работает по показаниям датчика ВК2.

Нажатиями на кнопку sb2 на индикатор вызывают значения температуры в такой последовательности: нижняя пороговая (при ней происходит включение нагревателя) — верхняя пороговая (при ее достижении нагреватель будет выключен) — текущая. Вывод на индикатор верхней пороговой температуры сопровождается включением светодиода hl2.

Изменяют значение пороговой температуры, выведенной в данный момент на индикатор, нажатиями на кнопки sbi (в сторону увеличения) и 5ВЗ (в сторону уменьшения). Шаг изменения — 0,1 °С. Если удерживать соответствующую кнопку нажатой более 1 с, значение начнет расти или уменьшаться со скоростью 30 шагов в секунду.

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

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

Включив прибор, нажмите на кнопку sb2 и удерживайте ее нажатой не менее 5 с до появления на индикаторе стилизованного сообщения “pr1”. свидетельствующего о готовности зарегистрировать подключенный датчик как ВК1. Если необходимо зарегистрировать датчик как ВК2, кратковременно нажмите на кнопку sb2, что приведет к выводу на индикатор сообщения “pr2”. Еще одним нажатием можно вернуть на индикатор сообщение “pr1” и так далее.Собственно регистрация происходит после нажатия на кнопку sb1. Если девять попыток микроконтроллера связаться с датчиком, определить и запомнить его индивидуальный номер не принесут успеха, будет сделан вывод о неисправности или отсутствии датчика, а на индикатор выведено сообщение “-dat”. После успешной регистрации на индикаторе появится значение измеренной зарегистрированным датчиком температуры. Описанную процедуру необходимо выполнить и в случае замены одного или обоих датчиков. Данные о датчиках и режимах индикации хранятся в микросхеме энергонезависимой памяти ds1.

Термометр-термостат собран на односторонней печатной плате размерами 75×74 мм, показанной на рис. 2. Задача добиться максимальной плотности монтажа и минимальных размеров платы при ее разработке не ставилась. В любительских условиях значительно важнее простота изготовления, удобство монтажа и налаживания.

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

Внешний вид смонтированной и действующей платы — на рис. 3.

Прибор питают от сети через любой понижающий трансформатор с напряжением на вторичной обмотке 9 В при токе 300 мА и хорошей межобмоточной изоляцией.

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

Диоды 1n4148 заменяют любыми маломощными кремниевыми, например, серии КД522, а диоды 1n4007 — выпрямительными на ток не менее 300 мА, например, серии КД208 или КД209 Замена транзисторов КТ3107А -КТ502Б, КТ502Г, ВС327. Стабилизатор 7805 можно заменить отечественным КР142ЕН5А или КР142ЕН5В.

Его желательно снабдить небольшим теплоотводом. Вместо микросхемы АТ24С02 можно применить АТ24С01А. Частота кварцевого резонатора может находиться в пределах 10… 12 МГц. Реле К1 — с обмоткой на 12 В, током срабатывания 70 мА и контактами, рассчитанными на ток 10 А при напряжении 250 В.

Вместо электромагнитного репе можно использовать симисторный коммутатор с оптической развязкой, собрав его по схеме, подобной изображенной на рис. 2 в статье С. Корякова “Термометр с функцией таймера или управления термостатом” (“Радио”. 2003, № 10, с. 26—28).

Устройство помещено в корпус из изоляционного материала с разъемами для подключения датчиков (удобны трехконтактные аудиоразъемы с диаметром штекера 3.5 мм), сети и нагревателя.

Скачать печатную плату в формате lay, исходные тексты на asm и прошивка.

Автор И. ШАТАЛОВ

Обсудить статью на форумеРаздел: [Устройства на микроконтроллерах]

Источник: http://www.cavr.ru/article/5618-dvux-kanalinyj-termometr-termostat

Термометр на attiny

Источник: http://radioskot.ru/publ/nachinajushhim/termometr_na_attiny/22-1-0-722

Цифровой термометр на DS18В20,Microchip PIC16F628A,протокол 1-Wire

Автор: VNNIK71

Введение

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

Не смотря на простоту конструкции, он имеет не плохие характеристики. Достоверность показаний термометра гарантируется применением цифрового датчика DS18B20.

Эта микросхема не требует калибровки и позволяет измерять температуру окружающей среды от -55 до +125°С, причем в интервале -10…+85°С производитель гарантирует абсолютную погрешность измерения не хуже ±0,5°С.

На границах диапазона измеряемых температур точность ухудшается до ±2°С.Индикация показаний термометра во всем диапазоне измеряемых температур выполняется с точностью ±0.1°C.

Питается данный термометр переменным напряжением от 6В до 16В или постоянным напряжением от 8В до 20В.

Схема

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

Рисунок 1. Принципиальная схема цифрового термометра на DS18B20.

В качестве датчика температуры используется микросхема цифрового термометра DS18В20, который опрашивается контроллером на основе микросхемы фирмы Microchip PIC16F628A.

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

Так как используется всего 1 датчик, протокол 1-Wire упрощается : не требуется адресация датчиков и их предварительная инициализация. Резистор R1 является нагрузочным резистором для линии интерфейса 1-Wire.

Выход DQ датчика U1 подключен к выводу 3 микроконтроллера D1 (порт RA3).

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

В устройстве реализована динамическая индикация. Обновление изображения каждого индикатора осуществляется с частотой не менее 100Гц, что исключает мерцание индикаторов. Порт RB задействован под динамическую индикацию: RB0..RB7- формируют семисегментный код выводимых цифр.Порты RA0, RA1, RA6, RA7 выбирает индицируемую цифру.

Резисторы R3…R10 ограничиваю ток протекающий через светодиодные сегменты индикаторов.

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

При включении питания и после инициализации микроконтроллера происходит тест наличия и исправности цифрового датчика температуры.

Если датчик не подключен или его неисправность характеризуется наличием на линии DQ постоянного высокого уровня, при обращении к нему микроконтроллера, то на индикаторе будет выводится значение “LInE”.

А вот если линия DQ имеет замыкание на 0В, либо эту линию сам датчик, при наличии неисправности его внутренней схемы, подтягивает к 0В, то на индикаторе выводится значение “Shot “.

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

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

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

Во время первого измерения температуры датчиком на индикаторе выводится значение “t°С”.

Конструкция

Термометр собран на односторонней печатной плате, показанной на рисунке 2.

Рисунок 2. Печатная плата цифрового термометра на DS18B20.

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

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

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

На стороне установки индикаторов до монтажа элементов необходимо установить пять перемычек (на рисунке 3 показаны красным цветом). Все SMD резисторы и конденсаторы, кроме С4, применены в корпусе типоразмера 0805.

Конденсатор С2 – электролитический, а С4 – танталовый (С4 можно заменить на электролитический с корректировкой платы). Все резисторы и SMD конденсаторы устанавливаются на печатную плату со стороны печатных проводников (см. рисунок 4).

Микроконтроллер устанавливается в 18-ногую панельку типа DIP18 (TRS18).

Датчик для измерения температуры подключается к разъему Х1, а к разъему Х2 необходимо подключить источник питания (достаточно подключение трансформатора с необходимым значением напряжения).

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

В устройстве примены семисегментные светоизлучающие индикаторы с общим анодом SA04-11SRWA фирмы KINGBRIGHT. Их можно заменить на любые импортные сверхяркие индикаторы. Возможно придется подобрать номинал резисторов R3…R10 для обеспечения нужной яркости.

Диодный мост собран на диодах BAV100, которые можно заменить на любые с прямым током не менее 50мА ( например в предыдущих конструкциях были установлены диоды GS1M, которые намного мощнее, но какие попались под руку)

Програмное обеспечение

Исходный текст программы цифрового термометра на DS18B20 – здесь

Файлы

Прошивка для датчика DS18В20;
Файл платы в формате AutoCAD;
Файл платы в формате AutoCAD для утюжно-лазерной технологии”;
Схема цифрового термометра в формате AutoCAD.

Можно применить датчик DS18S20, тогда индикация показаний термометра во всем диапазоне измеряемых температур будет выполняется с точностью ±0.5°C. Для этого необходимо зашить в контроллер вот прошивку::

Прошивка для датчика DS18S20 .

Источник: http://vnnik71.narod.ru/termo_ds18b20.html

Термометр на микросхеме DS18B20 для компьютера

   
Простой термометр – приставку к компьютеру можно сделать, используя распространенный и очень удобный в применении цифровой датчик температуры 18B20. Такая приставка подключается к компьютеру через COM порт. COM порт (он же RS232) – это довольно старый интерфейс, но он до сих пор используется во многих промышленных устройствах.

Если на вашем компьютере нет такого разъема, то вы можете использовать дешевый переходник USB – RS232. Такой переходник создает в системе виртуальный COM порт с каким нибудь номером. Купить переходник можно в любом компьютерном магазине, но я советую заказывать его в Китае. Тогда он обойдется вам в разы дешевле, примерно 1 доллар.

 
   

Датчик температуры 18B20 представляет собой микросхему в корпусе TO-92. На первый взгляд его не отличить от обычного транзистора. У датчика всего три вывода. Вывод с номером 1 – это “земля”, питание подключается к выводу 3, а цифровой сигнал температуры снимается с ножки 2.

Микросхема соединяется с ведущим устройством (у нас это будет компьютер) посредством довольно простого протокола, который называется 1-Wire, что переводится с английского как “один провод”. Таким образом информация передается по одному сигнальному проводу.

Но конечно, нам необходимо 3 провода для того, чтобы подключить датчик.

   Весь протокол связи через порт компьютера реализован в маленькой управляющей программе, которую необходимо запустить на компьютере, после подключения к нему нашей приставки. Программу можно скачать по ссылке в конце статьи.    Если приставка собрана правильно, выбран нужный ком-порт и датчик 18B20 исправен, то программа покажет серийный номер датчика и его температуру. Кроме всего прочего, приставку можно использовать для проверки работоспособности датчиков 18B20 перед использованием из в ваших самоделках и для определения уникального кода датчика (его серийного номера). Это иногда бывает нужно, чтобы подключить к микроконтроллеру несколько таких датчиков по одной линии 1-Wire.Схема приставки – термометра для компьютера

Схема представляет собой устройство согласования шины 1-Wire датчика с портом RS232 компьютера. В схеме всего несколько деталей. Функции ключей выполняют два транзистора типа 2N7002. Это очень распространенные и исключительно дешевые MOSFET транзисторы в SMD корпусе.

Эти транзисторы в мире полевиков являются чем-то вроде народного КТ315 в мире советских биполярных транзисторов. Они используются в миллионах радиолюбительских конструкций и в огромном количестве различной промышленной радиоэлектронной техники.

Если вы захотите собрать эту схему на макетной плате из выводных компонентов, то транзисторы 2N7002 можно заменить аналогом в корпусе TO-92, не менее распространенным и легендарным 2N7000. Ссылки на детали я помещу в конце статьи.

Стабилитрон применен выводной, любого типа, на напряжение в районе 5 вольт.

     Печатная плата устройства рассчитана на установку SMD транзисторов и резисторов, и разъема DB9, предназначенного для установки на печатную плату. В качестве панельки для датчика 18B20 используется панелька для 6-выводных микросхем DIP6. Как я уже писал, вы можете использовать все компоненты выводного типа и собрать эту приставку на кусочке макетной платы, как это сделал я с моим первым устройством. Оно до сих пор работает, я применяю его для проверки датчиков 18B20.   Специально для данной статьи я развел печатную плату в программе DipTrace.

    
Скачать проект печатной платы + программу измерения температуры

Контактные данные автора программы находятся в меню самой программы. Я не являюсь автором этой программы, все вопросы по ее работе задавайте ему. Вопросы по печатной плате можете задавать мне в разделе “контакты”, так как плату  разводил я.   Купить датчики DS18B20 в Китае  Купить транзисторы 2N7002 в Китае  

Источник: https://musbench.com/e_digital/ds18b20.html

Ссылка на основную публикацию
Adblock
detector
",css:{backgroundColor:"#000",opacity:.6}},container:{block:void 0,tpl:"
"},wrap:void 0,body:void 0,errors:{tpl:"
",autoclose_delay:2e3,ajax_unsuccessful_load:"Error"},openEffect:{type:"fade",speed:400},closeEffect:{type:"fade",speed:400},beforeOpen:n.noop,afterOpen:n.noop,beforeClose:n.noop,afterClose:n.noop,afterLoading:n.noop,afterLoadingOnShow:n.noop,errorLoading:n.noop},o=0,p=n([]),h={isEventOut:function(a,b){var c=!0;return n(a).each(function(){n(b.target).get(0)==n(this).get(0)&&(c=!1),0==n(b.target).closest("HTML",n(this).get(0)).length&&(c=!1)}),c}},q={getParentEl:function(a){var b=n(a);return b.data("arcticmodal")?b:(b=n(a).closest(".arcticmodal-container").data("arcticmodalParentEl"),!!b&&b)},transition:function(a,b,c,d){switch(d=null==d?n.noop:d,c.type){case"fade":"show"==b?a.fadeIn(c.speed,d):a.fadeOut(c.speed,d);break;case"none":"show"==b?a.show():a.hide(),d();}},prepare_body:function(a,b){n(".arcticmodal-close",a.body).unbind("click.arcticmodal").bind("click.arcticmodal",function(){return b.arcticmodal("close"),!1})},init_el:function(d,a){var b=d.data("arcticmodal");if(!b){if(b=a,o++,b.modalID=o,b.overlay.block=n(b.overlay.tpl),b.overlay.block.css(b.overlay.css),b.container.block=n(b.container.tpl),b.body=n(".arcticmodal-container_i2",b.container.block),a.clone?b.body.html(d.clone(!0)):(d.before("
"),b.body.html(d)),q.prepare_body(b,d),b.closeOnOverlayClick&&b.overlay.block.add(b.container.block).click(function(a){h.isEventOut(n(">*",b.body),a)&&d.arcticmodal("close")}),b.container.block.data("arcticmodalParentEl",d),d.data("arcticmodal",b),p=n.merge(p,d),n.proxy(e.show,d)(),"html"==b.type)return d;if(null!=b.ajax.beforeSend){var c=b.ajax.beforeSend;delete b.ajax.beforeSend}if(null!=b.ajax.success){var f=b.ajax.success;delete b.ajax.success}if(null!=b.ajax.error){var g=b.ajax.error;delete b.ajax.error}var j=n.extend(!0,{url:b.url,beforeSend:function(){null==c?b.body.html("
"):c(b,d)},success:function(c){d.trigger("afterLoading"),b.afterLoading(b,d,c),null==f?b.body.html(c):f(b,d,c),q.prepare_body(b,d),d.trigger("afterLoadingOnShow"),b.afterLoadingOnShow(b,d,c)},error:function(){d.trigger("errorLoading"),b.errorLoading(b,d),null==g?(b.body.html(b.errors.tpl),n(".arcticmodal-error",b.body).html(b.errors.ajax_unsuccessful_load),n(".arcticmodal-close",b.body).click(function(){return d.arcticmodal("close"),!1}),b.errors.autoclose_delay&&setTimeout(function(){d.arcticmodal("close")},b.errors.autoclose_delay)):g(b,d)}},b.ajax);b.ajax_request=n.ajax(j),d.data("arcticmodal",b)}},init:function(b){if(b=n.extend(!0,{},a,b),!n.isFunction(this))return this.each(function(){q.init_el(n(this),n.extend(!0,{},b))});if(null==b)return void n.error("jquery.arcticmodal: Uncorrect parameters");if(""==b.type)return void n.error("jquery.arcticmodal: Don't set parameter \"type\"");switch(b.type){case"html":if(""==b.content)return void n.error("jquery.arcticmodal: Don't set parameter \"content\"");var e=b.content;return b.content="",q.init_el(n(e),b);case"ajax":return""==b.url?void n.error("jquery.arcticmodal: Don't set parameter \"url\""):q.init_el(n("
"),b);}}},e={show:function(){var a=q.getParentEl(this);if(!1===a)return void n.error("jquery.arcticmodal: Uncorrect call");var b=a.data("arcticmodal");if(b.overlay.block.hide(),b.container.block.hide(),n("BODY").append(b.overlay.block),n("BODY").append(b.container.block),b.beforeOpen(b,a),a.trigger("beforeOpen"),"hidden"!=b.wrap.css("overflow")){b.wrap.data("arcticmodalOverflow",b.wrap.css("overflow"));var c=b.wrap.outerWidth(!0);b.wrap.css("overflow","hidden");var d=b.wrap.outerWidth(!0);d!=c&&b.wrap.css("marginRight",d-c+"px")}return p.not(a).each(function(){var a=n(this).data("arcticmodal");a.overlay.block.hide()}),q.transition(b.overlay.block,"show",1*")),b.overlay.block.remove(),b.container.block.remove(),a.data("arcticmodal",null),n(".arcticmodal-container").length||(b.wrap.data("arcticmodalOverflow")&&b.wrap.css("overflow",b.wrap.data("arcticmodalOverflow")),b.wrap.css("marginRight",0))}),"ajax"==b.type&&b.ajax_request.abort(),p=p.not(a))})},setDefault:function(b){n.extend(!0,a,b)}};n(function(){a.wrap=n(document.all&&!document.querySelector?"html":"body")}),n(document).bind("keyup.arcticmodal",function(d){var a=p.last();if(a.length){var b=a.data("arcticmodal");b.closeOnEsc&&27===d.keyCode&&a.arcticmodal("close")}}),n.arcticmodal=n.fn.arcticmodal=function(a){return e[a]?e[a].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof a&&a?void n.error("jquery.arcticmodal: Method "+a+" does not exist"):q.init.apply(this,arguments)}}(jQuery)}var debugMode="undefined"!=typeof debugFlatPM&&debugFlatPM,duplicateMode="undefined"!=typeof duplicateFlatPM&&duplicateFlatPM,countMode="undefined"!=typeof countFlatPM&&countFlatPM;document["wri"+"te"]=function(a){let b=document.createElement("div");jQuery(document.currentScript).after(b),flatPM_setHTML(b,a),jQuery(b).contents().unwrap()};function flatPM_sticky(c,d,e=0){function f(){if(null==a){let b=getComputedStyle(g,""),c="";for(let a=0;a=b.top-h?b.top-h{const d=c.split("=");return d[0]===a?decodeURIComponent(d[1]):b},""),c=""==b?void 0:b;return c}function flatPM_testCookie(){let a="test_56445";try{return localStorage.setItem(a,a),localStorage.removeItem(a),!0}catch(a){return!1}}function flatPM_grep(a,b,c){return jQuery.grep(a,(a,d)=>c?d==b:0==(d+1)%b)}function flatPM_random(a,b){return Math.floor(Math.random()*(b-a+1))+a}
");let k=document.querySelector(".flat_pm_modal[data-id-modal=\""+a.ID+"\"]");if(-1===d.indexOf("go"+"oglesyndication")?flatPM_setHTML(k,d):jQuery(k).html(b+d),"px"==a.how.popup.px_s)e.bind(h,()=>{e.scrollTop()>a.how.popup.after&&(e.unbind(h),f.unbind(i),j())}),void 0!==a.how.popup.close_window&&"true"==a.how.popup.close_window&&f.bind(i,()=>{e.unbind(h),f.unbind(i),j()});else{let b=setTimeout(()=>{f.unbind(i),j()},1e3*a.how.popup.after);void 0!==a.how.popup.close_window&&"true"==a.how.popup.close_window&&f.bind(i,()=>{clearTimeout(b),f.unbind(i),j()})}f.on("click",".flat_pm_modal .flat_pm_crs",()=>{jQuery.arcticmodal("close")})}if(void 0!==a.how.outgoing){let b,c="0"==a.how.outgoing.indent?"":" style=\"bottom:"+a.how.outgoing.indent+"px\"",e="true"==a.how.outgoing.cross?"":"",f=jQuery(window),g="scroll.out"+a.ID,h=void 0===flatPM_getCookie("flat_out_"+a.ID+"_mb")||"false"!=flatPM_getCookie("flat_out_"+a.ID+"_mb"),i=document.createElement("div"),j=jQuery("body"),k=()=>{void 0!==a.how.outgoing.cookie&&"false"==a.how.outgoing.cookie&&h&&(jQuery(".flat_pm_out[data-id-out=\""+a.ID+"\"]").addClass("show"),j.on("click",".flat_pm_out[data-id-out=\""+a.ID+"\"] .flat_pm_crs",function(){flatPM_setCookie("flat_out_"+a.ID+"_mb",!1)})),(void 0===a.how.outgoing.cookie||"false"!=a.how.outgoing.cookie)&&jQuery(".flat_pm_out[data-id-out=\""+a.ID+"\"]").addClass("show")};switch(a.how.outgoing.whence){case"1":b="top";break;case"2":b="bottom";break;case"3":b="left";break;case"4":b="right";}jQuery("body > *").eq(0).before("
"+e+"
");let m=document.querySelector(".flat_pm_out[data-id-out=\""+a.ID+"\"]");-1===d.indexOf("go"+"oglesyndication")?flatPM_setHTML(m,d):jQuery(m).html(e+d),"px"==a.how.outgoing.px_s?f.bind(g,()=>{f.scrollTop()>a.how.outgoing.after&&(f.unbind(g),k())}):setTimeout(()=>{k()},1e3*a.how.outgoing.after),j.on("click",".flat_pm_out .flat_pm_crs",function(){jQuery(this).parent().removeClass("show").addClass("closed")})}countMode&&(flat_count["block_"+a.ID]={},flat_count["block_"+a.ID].count=1,flat_count["block_"+a.ID].click=0,flat_count["block_"+a.ID].id=a.ID)}catch(a){console.warn(a)}}function flatPM_start(){let a=flat_pm_arr.length;if(0==a)return flat_pm_arr=[],void jQuery(".flat_pm_start, .flat_pm_end").remove();flat_body=flat_body||jQuery("body"),!flat_counter&&countMode&&(flat_counter=!0,flat_body.on("click","[data-flat-id]",function(){let a=jQuery(this),b=a.attr("data-flat-id");flat_count["block_"+b].click++}),flat_body.on("mouseenter","[data-flat-id] iframe",function(){let a=jQuery(this),b=a.closest("[data-flat-id]").attr("data-flat-id");flat_iframe=b}).on("mouseleave","[data-flat-id] iframe",function(){flat_iframe=-1}),jQuery(window).on("beforeunload",()=>{jQuery.isEmptyObject(flat_count)||jQuery.ajax({async:!1,type:"POST",url:ajaxUrlFlatPM,dataType:"json",data:{action:"flat_pm_ajax",data_me:{method:"flat_pm_block_counter",arr:flat_count}}})}).on("blur",()=>{-1!=flat_iframe&&flat_count["block_"+flat_iframe].click++})),flat_userVars.init();for(let b=0;bflat_userVars.textlen||void 0!==a.chapter_sub&&a.chapter_subflat_userVars.titlelen||void 0!==a.title_sub&&a.title_subc&&cc&&c>d&&(b=flatPM_addDays(b,-1)),b>e||cd||c-1!=flat_userVars.referer.indexOf(a))||void 0!==a.referer.referer_disabled&&-1!=a.referer.referer_disabled.findIndex(a=>-1!=flat_userVars.referer.indexOf(a)))&&(c=!0),c||void 0===a.browser||(void 0===a.browser.browser_enabled||-1!=a.browser.browser_enabled.indexOf(flat_userVars.browser))&&(void 0===a.browser.browser_disabled||-1==a.browser.browser_disabled.indexOf(flat_userVars.browser)))){if(c&&void 0!==a.browser&&void 0!==a.browser.browser_enabled&&-1!=a.browser.browser_enabled.indexOf(flat_userVars.browser)&&(c=!1),!c&&(void 0!==a.geo||void 0!==a.role)&&(""==flat_userVars.ccode||""==flat_userVars.country||""==flat_userVars.city||""==flat_userVars.role)){flat_pm_then.push(a),flatPM_setWrap(a),flat_body.hasClass("flat_pm_block_geo_role")||(flat_body.addClass("flat_pm_block_geo_role"),flatPM_ajax("flat_pm_block_geo_role")),c=!0}c||(flatPM_setWrap(a),flatPM_next(a))}}}let b=jQuery(".flatPM_sticky");b.each(function(){let a=jQuery(this),b=a.data("height")||350,c=a.data("top");a.wrap("
");let d=a.parent()[0];flatPM_sticky(this,d,c)}),debugMode||countMode||jQuery("[data-flat-id]:not([data-id-out]):not([data-id-modal])").contents().unwrap(),flat_pm_arr=[],jQuery(".flat_pm_start, .flat_pm_end").remove()}

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

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

В современных индикаторах светодиоды изготавливают в форме сегментов, поэтому светодиодные индикаторы имеют предельно простую форму – чем меньше разных светодиодов, тем дешевле устройство. Сегменты обозначаются буквами от A до G.

Восьмой сегмент — это точка. Вот параметры индикатора, что используется в термометре:

  • Максимальное прямое напряжение (при токе 20 мА):…..2.5 В
  • Максимальный прямой ток: …..25-30 мА
  • Максимальное обратное напряжение: …..5 В
  • Обратный ток (при напряжении 5 в): …..10 мкА
  • Мощность рассеивания: …..150 мВт
  • Максимальный импульсный прямой ток: …..140-160 мА
  • Диапазон рабочих температур: …..-40…+85°C

   Теперь приступим к изготовлению самого термометра. Изучим принципиальную схему.

Схема термометра на AtTiny2313

   Для его изготовления нам понадобится:

>>> 4-х разрядный семисегментный индикатор 1шт

>>> Керамический конденсатор на 0.1 микрофарад 1шт
>>> Электролитический конденсатор на 100 мкф 16в (можно и 10)
>>> Резисторы 100-200 ом 0.125 вт 8шт.
>>> Микроконтроллер AtTiny2313 1шт.
>>> Панелька 20 ног 1шт.
>>> Датчик DS18B20 1шт.
>>> Провода, паяльник, золотые руки))

   Собрав все необходимые радиокомпоненты, приступим к изготовлению микроконтроллерного термометра. Паяем резисторы к индикатору.

   Далее подпаяем конденсаторы на 0.1 микрофарад (104) и на 100 микрофарад. Припаяем датчик DS18B20.

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

   Чтобы прошить этот МК нам нужен AVR програматор. Как его сделать смотрим по ссылке. Открываем PonyProg (Если у вас программатор из статьи выше) и закидываем прошивку. При закидывании прошивки не забываем нажимать кнопку “ПРОЧЕСТЬ”. Фьюзы выставляем как на фото ниже:

   Тоже один из важных факторов: при выставлении фьюзов не забываем нажать кнопку “ЧИТАТЬ” (Read). И сохраняем прошивку, вынимаем микроконтроллер из программатора и вставляем в устройство.

   Подаем питание на схему – и вуаля! Все работает. Печатной платы к схеме нету, так как в следствии простоты смысла ее нету чертить, схема состоит, грубо говоря, из пяти радиодеталей. Не считая резисторов, т.к там вообще проще простого их подпаять. Видео работы данного термодатчика можно посмотреть ниже:

Как работает термометр на ATTINY

   Устройство действительно настолько простое, что прекрасно подойдёт начинающим контроллеристам, как первый действующий практический проект на AtTiny. С вами был [PC]Boil.

   МК для начинающих