Сделай сам: электронный термометр своими руками. Простые полупроводниковые термометры Схемы самодельных цифровых термометров

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

Читайте в статье:

Области применения цифрового термометра с выносным датчиком

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


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

Электронный термометр с выносным датчиком: устройство и принцип работы

Цифровой термометр с датчиком состоит из нескольких основных частей:

  • корпус с жидкокристаллическим дисплеем и микросхемой;
  • провод для вывода датчика (обычно 1.5÷2 м);
  • термопара на конце провода, считывающая температуру и передающая данные на микроконтроллер.


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

Технические характеристики электронных приборов измерения температуры

Независимо от стоимости устройства, диапазон измеряемых температур составляет от -10 до +50°С внутри помещения, от -50°С до +70°С на улице. Если есть , то диапазон измерения влажности составит от 30 до 100%. При влажности ниже 30% на дисплее будет высвечиваться обозначение «–%».


Как пользоваться термометром с выносным датчиком

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

При использовании беспроводных термометров с внешним датчиком наружной температуры все еще проще. Устройство устанавливается в любой точке квартиры или дома. Есть лишь одно ограничение – между датчиком и устройством должно быть не более 60 м.


Виды приборов измерения температуры с выносным датчиком

Такие устройства могут быть:


Уличные электронные термометры: особенности и характеристики

Уличные электронные градусники чувствительны и реагируют на малейшие изменения. Удобство в том, что владелец избавляется от разглядывания шкалы сквозь морозные узоры. А пожилым и людям с плохим зрением напрягаться приходится и в теплое время. Электронный жидкокристаллический дисплей избавляет от этого неудобства. Если есть функция подсветки экрана, то увидеть показания можно издалека невооруженным глазом – контрастность ЖК-дисплея дает такую возможность.

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


Сегодня производитель предлагает модели электронных термометров со щупом, которые помогут домохозяйке измерить температуру внутри блюда – достаточно ли оно прогрето или наоборот охлаждено. Часто от этого зависит конечный результат. Термометр с выносным щупом можно использовать и в ванной, готовя воду для купания маленького ребенка. Данные высвечиваются практически мгновенно, в отличие от ртутных градусников.

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


Преимущества и недостатки электронных градусников

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

Дополнительные функции электронных градусников

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


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

Электронный термометр с выносным датчиком для бани

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


Электронный термометр с выносным датчиком для бани: особенности и достоинства

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

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


Как правильно установить датчик в бане

Правил установки всего два:

  • высота от пола – 1.5 м;
  • монтаж в точке, равноудаленной от печи, дверей и окон.

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

Обзор производителей и некоторых моделей электронных градусников

Марка и модель Диапазон температур, °С (от/до) Вид Питание Наличие подсветки
-50/+200 Беспроводной (40 м) Батареи типа АА Да
-40/+50 Беспроводной (30 м) Батареи типа ААА Да
-50/+110 Проводной (1 м) Батареи типа G13/LR44/357A Нет
-50/+70 Беспроводной (40 м) Батареи типа АА Нет
-40/+60 Беспроводной (40 м) Батареи типа АА Да

Возможно ли сделать электронный термометр своими руками

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

  • термодатчика (одного или нескольких, но не более трех);
  • диодов Шоттки;
  • стабилитронов на 3.9 В, 5.6 В и 6.2 В;
  • диода 1N4148;
  • конденсатора на 16 В/10 мкф;
  • резистора 1.5 кОм/0.25 Вт;
  • 9-контактного порта USB для подключения собранного устройства к компьютеру.

Инструмент, который нужен для монтажа схемы

Следует понимать, что паяльником смонтировать такую схему получится только при наличии регулятора напряжения. Идеальным вариантом будет паяльная станция или фен. Если же вышеперечисленные устройства отсутствуют, можно попытаться намотать на жало паяльника медную проволоку сечением 4 мм², удлинив его. В этом случае, чем длиннее будет проволока, тем ниже температура. Для микросхем разогрев не должен превышать +260°С. В противном случае они перегреваются и выходят из строя.


Статья

Как сделать простой цифровой измеритель температуры (10+)

Простой цифровой термометр своими руками

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

Схема электронного цифрового измерителя температуры

Конструкция представляет собой классический мост. Одно плечо моста выполнено на резисторе и датчике температуры с линейной зависимостью напряжения от температуры. Второе плечо - делитель напряжения

Схема питается от стабилизированного источника напряжения 9V. Внимание! Нельзя использовать источники, которые дают на выходе высокочастотные пульсации. Измерительный прибор не будет работать в таких условиях. Можно питать от батарейки "Крона", но тогда, по мере ее разряда и снижения напряжения на ней, потребуется подстройка

Детали

Резистор R1 - маломощный 6.8 кОм.

Резистор R2 - маломощный 30 кОм.

Резистор R3 - маломощный подстроечный 5 кОм.

Измерительный прибор A - обычный цифровой тестер.

Принцип работы, наладка, калибровка

Напряжение на датчике VD1 прямопропорционально температуре. Причем изменение температуры на 1 ГрЦ приводит к изменению напряжения на 10 мВ, что очень удобно, так как упрощает пересчет показаний прибора в значение температуры.

Наладку проводим так. Измеряем температуру окружающей среды обычным термометром. Включаем тестер, переводим его в режим измерения напряжения с лимитом 2000 мВ. С помощью подстроечного резистора R3 добиваемся на индикаторе показаний, равных текущей температуре, умноженной на 10. То есть, если у нас в комнате 21 градус, то на индикаторе должно быть 210 мВ.

Все, теперь можно проводить измерения. Показания индикатора нужно делить на 10. Если на индикаторе, например, -120, значит, температура -12 ГрЦ.

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

Здравствуйте друзья!

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

Пределы измерения ограничены снизу типом применяемого датчика на уровне -40ºС, сверху - аппаратной схемой и программным обеспечением на уровне +80ºС. Таким образом, диапазон измерения электронного термометра составляет -40...80ºС. Точность измерения температуры не хуже ±1ºС.

В качестве датчика температуры применен датчик LM335Z, выполненный в корпусе ТО-92:

Этот датчик имеет 3 ноги, из которых реально используется только две: "+" и "-":

Датчик имеет характеристику почти идеального стабилитрона (стабилизатора напряжения), напряжение стабилизации которого линейно (точнее, почти линейно) зависит от температуры самого датчика. Задавая через датчик любой ток в диапазоне от 0.4 до 5мА (например, как показано на рисунке выше, с помощью резистора подходящего номинала) получаем напряжение на датчике, которое в десятках мВ представляет абсолютную температуру (в Кельвинах):

Так, например, при температуре 0ºС = 273.15К, на датчике, в идеале, будет напряжение 2.7315В, при температуре -40ºС = 233.15К на датчике будет 2.3315В, при 100ºС = 373.15К на датчике будет 3.7315В.

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

Основой электронного термометра является микроконтроллер фирмы Atmel ATtiny26. Данный микроконтроллер представляет из себя микросхему, функции которой можно изменять путем ее перепрограммирования. Микроконтроллер имеет несколько программируемых выводов, назначение и функции которых могут определяться самим разработчиком схемы прибора (т. е. мной самим) с помощью записанной в микроконтроллер микропрограммы. Кроме того, данный микроконтроллер содержит в себе ряд полезных устройств, в том числе Аналогово-Цифровой Преобразователь (АЦП) напряжения.

АЦП - это устройство, предназначенное для преобразования входного аналогового сигнала (т. е. некоторого текущего значения напряжения на одной из ног микроконтроллера), в некоторое числовое значение, которое затем может быть использовано в микропрограмме как входной параметр. Разрешение данного АЦП составляет 10 бит. Это значит, что внутри микроконтроллера результат преобразования входного напряжения представляется числом в диапазоне от 0 до 1023 (0...1023, т. е. всего 1024 значения - это как раз число 2 в степени 10).

Для получения результата АЦП, входное напряжение сравнивается с опорным напряжением, генерируемым встроенным в микроконтроллер Источником Опорного Напряжения (ИОН). Согласно описанию на данный микроконтроллер, его ИОН генерирует напряжение 2.56В, однако допустимый диапазон его отклонения от образца к образцу составляет 2.4 ... 2.9В. Типовое значение - 2.7В. Таким образом, если входное напряжение = 2.7В, т. е. равно опорному напряжению, то результат АЦП будет равен 1023, если входное напряжение составляет половину опорного, т. е. 1.35В, то результат АЦП будет равен половине от 1023, т. е. 511. В случае, если входное напряжение больше опорного, т. е. больше 2.7В, то результат АЦП все равно будет равен 1023:

Так как максимальная температура, на которую рассчитан электронный термометр , составляет 80ºС или 353.15К, и, следовательно, напряжение на датчике в идеале будет при этом равно 3.5315В, что больше чем опорное напряжение АЦП микроконтроллера (2.7В), нам потребуется делитель напряжения от датчика, в качестве которого используем два резистора:

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

Такие зарядные устройства имеют достаточно большой разброс выходных напряжений, которые (напряжения), к тому же, могут меняться под нагрузкой (просаживаться). Для термометров я подбирал зарядные устройства, напряжение на выходе которых на холостом ходу (т. е. без нагрузки) составляет порядка 5.2...5.8В. Больше нельзя, т. к. предельное максимальное напряжение питания микроконтроллера ATtiny26 составляет 6В. Допускаем также, что под нагрузкой выходное напряжение такого блока питания может просесть до 4.5В.

Рассмотрим два предельных случая:

  1. Напряжение на датчике минимально (притемпературе датчика -40ºС), напряжение питания - максимально (возьмем для удобства 6В):

  1. Напряжение на датчике максимально (при температуре датчика 80ºС), напряжение питания - минимально (4.5В).

Видно, что при тех номиналах резисторов, которые указаны на рисунках выше, ток через датчик находится в пределах 0.87...3.67мА, что укладывается в допустимые пределы самого датчика (0.4...5мА). Номиналы резисторов делителя напряжения от датчика выбраны такими, чтобы ток через них не оказывал большого влияния на ток через датчик, и в то же время, чтобы их приведенное сопротивление (которое в данном случае получается порядка 7кОм) было значительно меньше входного сопротивления АЦП микроконтроллера (100МОм согласно описанию на микроконтроллер).

Также видно, что во всем рабочем диапазоне электронного термометра , напряжение, подаваемое на вход АЦП, изменяется в пределах 1.74...2.64В, что соответствует результату АЦП в пределах 660...1001. Следовательно, если результат АЦП составит меньше 660, можно говорить о неисправности датчика или о его коротком замыкании. Если результат АЦП будет больше чем 1001, можно говорить о неисправности датчика или о его обрыве, т. к. в случае его обрыва делитель напряжения на резисторах 9.1кОм и 27кОм будет подключен почти к напряжению питания (через резистор 1кОм).

Теперь рассмотрим цифровой индикатор . В качестве него применен четырехзначный семисегментный индикатор фирмы kingbright CA04-41SRWA или CC04-41SRWAярко красного цвета свечения. CA04-41SRWA отличается от CC04-41SRWAнаправлением светодиодов: в СС04 они соединены по схеме с общим катодом (общим минусом):

в СА04 - по схеме с общим анодом (общим плюсом):

У семисегментного индикатора сегменты именуются латинскими буквами a, b, c, d, e, f, g, h следующим образом:

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

Резистор необходим для ограничения тока через сегмент (светодиод) на необходимом уровне. Без него через светодиод будет идти недопустимо большой ток - светодиод выйдет из строя - сгорит.

Давайте прикинем, сколько всего сегментов есть в четырех цифрах. Оказывается, их там 8 х 4 = 32 отдельных сегмента (светодиода). Если управлять каждым сегментом по отдельному проводу, то для управления четырехзначным индикатором нам потребовался бы микроконтроллер с 32 программируемыми ногами, не считая входа АЦП и выводов питания. Кроме того, потребовалось бы 32 резистора в цепи каждого сегмента (светодиода):

Есть ли способ сократить число управляемых выводов микроконтроллера? Оказывается есть! Уже в самом индикаторе CA04-41SRWA (CC04-41SRWA) сегменты (светодиоды) соединены по следующей схеме:

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

Сколько же теперь нам потребуется программируемых ног микроконтроллера, чтобы управлять таким индикатором? Оказывается всего-навсего 8 + 4 = 12. Правда теперь нам придется управлять не только сегментными, но и общими выводами цифр. Почему?

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

Чтобы зажечь сегмент "а" на первой цифре нам надо подать "+" на общий провод первой цифры и "-" на провод объединенных сегментов "а". Аналогично, чтобы зажечь сегмент "b" на второй цифре, нам надо подать "+" на общий провод второй цифры и "-" на провод объединенных сегментов "b".

Но ведь тогда у нас будет гореть еще и сегмент "а" второй цифры, и сегмент "b" первой цифры, потому что и к ним будет поступать ток. Но ведь они нам не нужны! Что же делать?

А кто сказал, что они должны гореть одновременно?

В самом деле, сначала подадим "+" только на общий электрод цифры 1, а на общие электроды остальных цифр подадим запрещающий их работу "-". Теперь, на объединенные сегментные выводы подадим комбинацию сигналов, необходимую для отображения нужного знака на цифре 1 (в данном случае "-" на провод объединенных сегментов "а" и "+" на остальные провода объединенных сегментов. Теперь у нас будет светиться только сегмент "а" первой цифры:

По прошествии некоторого времени, подадим "+" теперь только на общий электрод цифры 2, а на общие выводы остальных цифр, в том числе и общий вывод цифры 1, подадим "-". Одновременно с этим сменим комбинацию сигналов на объединенных сегментных выводах на комбинацию, необходимую для отображения нужного знака на цифре 2 (в нашем случае "-" на провод объединенных сегментов "b" и "+" на остальные провода объединенных сегментов. Теперь у нас будет светиться только сегмент "b" второй цифры:

Аналогично, по прошествии еще некоторого времени, поступим с третьей цифрой, только теперь ни на один из проводов объединенных сегментов не будем подавать "-", т. е. на все подадим "+":

То же самое и для четвертой цифры:

По прошествии еще некоторого времени снова включаем сегмент "а" первой цифры:

Если время переключения цифр будет достаточно малО, т. е. цифры будут переключаться достаточно быстро, у нас, у людей, создается иллюзия, что сегмент "а" первой цифры, и сегмент "b" второй цифры светятся одновременно, а не поочередно, а описанный выше метод включения цифр называется "динамическая индикация ".

А куда теперь подключать ограничивающие ток резисторы? К общим проводам, или к сегментным? Если хотите сэкономить на четырех резисторах, подключайте к общим, если хотите, чтобы цифры светлились равномерно - подключайте к сегментным.

В самом деле, если резистор подключить к общему проводу какой-либо цифры, то этот резистор будет генерировать ток для ВСЕХ ВКЛЮЧЕННЫХ В ДАННЫЙ МОМЕНТ в этой цифре сегментов. Если это один сегмент - весь ток будет идти только через этот сегмент. Если сегментов два, то ток резистора будет делиться пополам между этими двумя сегментами, если должны гореть все восемь сегментов, то ток резистора будет разделен сразу между всеми восемью сегментами, т. е. каждому конкретному сегменту достанется лишь 1/8 тока резистора. Таким образом, в каждом конкретном сегменте ток будет зависеть от того, сколько сегментов включено в данной цифре. Ток напрямую связан с яркостью свечения: чем больше ток - тем больше яркость, чем меньше ток - тем меньше яркость. В итоге, яркость свечения каждой цифры будет зависеть от того, сколько сегментов в ней горит. Такая схема применялась в первых отечественных "домашних" телефонах с АОН марки "РУСЬ". Выглядело это совсем некрасиво.

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

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

Как подобрать номинал этих резисторов?

При нормальной работе сегментов (светодиодов) на них возникает падение напряжения порядка 2В. Еще некоторое падение напряжения образуется за счет выходного сопротивления выводов микроконтроллера. Это падение может быть порядка 1В при максимально допустимом токе через конкретный вывод микроконтроллера, который согласно инструкции на микроконтроллер ATtiny26 составляет 40мА. Остальное напряжение гасится на нашем резисторе.

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

Примем этот ток через общие провода (в момент, когда горят все восемь сегментов данной цифры) на уровне максимально допустимого для данного микроконтроллера, т. е. 40мА. Тогда ток через любой сегмент должен быть в восемь раз меньше, т. е. 5мА. Учитывая, что максимальное напряжение питания электронного термометра может достигать 5.8В, получаем, что на резисторе может падать 5.8 - 2 - 1 = 2.8В. Итак нам необходим резистор, который обеспечит ток 5мА при падении напряжения на нем 2.8В: 2.8 / 0.005 = 560 Ом. На самом деле, мы еще не учли, что 5.8В - это максимальное напряжение ХОЛОСТОГО хода нашего блока питания, в то время как под нагрузкой оно может падать, так что ток через каждый сегмент индикатора будет еще меньше, чем 5мА. Следовательно, ток в общих проводах индикатора будет меньше, чем 40мА, посему, предельный ток микроконтроллера никогда не будет достигнут.

Кстати, в электронном термометре нет необходимости в использовании сегмента точки в цифрах (сегмента "h"). Поэтому схема электронного термометра предусматривает только семь объединенных сегментных проводов, а не восемь, так как объединенный провод сегментов точки "h" в схеме электронного термометра не используется:

Это обстоятельство еще более снижает ток через общие провода цифр.

Давайте теперь поговорим о микроконтроллере ATtiny26 более подробно.

Микроконтроллер можно сравнить с настоящим настольным компьютером, только в сильно урезанном и уменьшенном виде.

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

В микроконтроллере есть память программ, в которую разработчик (т. е. я) записывает свою собственную, разработанную им микропрограмму, в соответствие с которой осуществляется вся дальнейшая работа микроконтроллера. Эту память программ можно сравнить с жестким диском настольного компьютера, на котором находится, например, программа Microsoft Word. Если мы хотим подготовить текстовый документ и для этого запускаем Microsoft Word, то в этот момент и начинает, собственно, исполняться его (т. е. Word-а) программа.

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

В микроконтроллере есть энергонезависимая память EEPROM, предназначенная для хранения пользовательских настроек даже при отключении питания микроконтроллера. Предположим, у Вас есть дома телевизор. Однажды Вы настроили в нем телеканалы, и теперь их просматриваете, переключая между собой. Далее берем, выключаем телевизор и вынимаем вилку из розетки. Теперь схема телевизора полностью обесточена. Но тем не менее, при следующем включении этого телевизора в розетку, сделанные ранее настройки программ в нем почему-то сохранились! И мы снова можем смотреть наши настроенные телеканалы. Где же сохраняются эти настройки? Если бы телевизор был построен на микроконтроллере ATtiny26, эти настройки сохранялись бы в энергонезависимой памяти EEPROM. Энергонезависимой, потому что мы выключили телевизор из розетки, а настройки телеканалов все равно сохранились. Память EEPROM также можно сравнить с жестким диском настольного компьютера, но теперь мы на него будем записывать не саму программу Microsoft Word, а результаты ее работы - т. е. подготовленные нами текстовые файлы.

В микроконтроллере есть тактовая частота работы, которая в данном микроконтроллере ATtiny26 может достигать 16МГц. При этом процессор микроконтроллера теоретически может производить до 16 миллионов арифметических или логических операций в одну секунду. Источником тактовой частоты могут быть разные устройства, например кварцевый резонатор или кварцевый генератор. В электронном термометре в качестве источника тактовой частоты используется встроенный в микроконтроллер RC-генератор на 8МГц.

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

В микроконтроллере есть даже нога "Reset" - аналогичная по своей функции с кнопкой Reset на системном блоке настольного компьютера.

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

Микропрограмма для микроконтроллера готовиться на настольном компьютере. Я для этого пользуюсь средой разработки программ для микроконтроллеров Algorithm Builder - это отечественный аналог Ассемблера, позволяющий, однако, не "писать" программы, а "рисовать" их в очень удобной графической форме:

С некоторых пор эта среда стала полностью бесплатна для любых объемов программы! Скачать ее можно со страницы разработчика . Создал и поддерживает эту программу русский умелец Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра. .

Чтобы микроконтроллер начал работать с использованием подготовленной микропрограммы, его необходимо запрограммировать. Программируется микроконтроллер находясь уже прямо в схеме электронного термометра (т. н. "внутрисхемное программирование"), посредством соединения микроконтроллера с настольным компьютером через специальный программатор. О том как сделать простейший программатор, работающий через СОМ-порт компьютера, описывается в инструкции к среде Algorithm Builder . Более "навороченная" версия программатора для данной среды представлена на странице USB-программатор AVR для Algorithm Builder .

Для программирования микроконтроллера используется 5 проводов - 4 сигнальных и один общий. В число сигнальных проводов входит провод "Reset", т. к. микроконтроллер программируется, находясь в состоянии Reset-а (сброса). Другие 3 сигнальных провода - это обычные ноги ввода-вывода, которые кроме программирования могут использоваться по своему прямому назначению, т. е. как порты ввода-вывода. В частности, в схеме электронного термометра к ним подключены некоторые объединенные сегментные выводы семисегментного индикатора. Однако, необходимо, чтобы часть схемы, подключенная к этим выводам, не мешала процессу программирования, иначе программирование станет невозможным.

Для того, чтобы предотвратить срабатывания сброса (Reset-а) микроконтроллера под влиянием внешних электромагнитных помех, к выводу "Reset" в непосредственной близости от микроконтроллера я подключаю конденсатор емкостью 5.6нФ:

Почему именно 5.6нФ? Вообще чем больше, тем лучше. Но опытным путем было установлено, что 5.6нФ - это максимальная емкость для этого конденсатора, при которой схема программирования микроконтроллера продолжает устойчиво работать. Ведь этот конденсатор шунтирует сигналы по входу "Reset", поступающие от программатора. Если емкость этого конденсатора увеличить, то процесс программирования становится неустойчивым, а если сильно увеличить - то вообще невозможным.

Программировать микроконтроллер можно не один раз, а множество раз (10 000 раз гарантированно, согласно инструкции). Это особенно удобно при отладке устройства, когда сначала мы можем запрограммировать только функции индикации (если в устройстве есть индикатор или иное средство вывода информации), чтобы видеть то, что происходит внутри, а затем постепенно наращивать остальную часть микропрограммы.

Для удобства подключения программатора к микроконтроллеру в большинстве своих устройств на микроконтроллерах я предусматриваю пятиконтактный разъем следующего вида:

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

Наконец, чтобы микроконтроллер вообще работал, необходимо подать на него питание. Для этого используются выводы "VCC", "AVCC" и "GND". По системе питания микроконтроллер ATtiny26 разделен на две части: цифровую и аналоговую. Под аналоговой частью понимается АЦП и все, что с ним связано внутри микроконтроллера. Эта часть питается через свой собственный вывод (точнее ввод) питания с названием "AVCC". Другая (остальная), или "цифровая" часть микроконтроллера питается через вывод (ввод) "VCC". На оба этих провода следует подавать "+" от блока питания. "-" блока питания подключается к выводам "GND" (или "Земля", или "Общий") микроконтроллера. Выводов "GND" у микроконтроллера ATtiny26 два:

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

Кроме того, чтобы еще лучше защитить от помех аналоговую часть микроконтроллера, рекомендуется подавать питание на вывод "AVCC" через LC, или хотя бы RC-фильтр. В качестве "R" я использовал резистор на 30 Ом, в качестве "С" - конденсатор на 1мкФ:

Наконец, чтобы снизить уровень помех на входе АЦП, к которому подключен датчик температуры через резистивный делитель напряжения, я также подключил к этому входу конденсатор на 1 мкФ, а питание самого датчика взял от входа питания микроконтроллера "AVCC":

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

Если мы хотим, чтобы на выходе оказался "+", в микропрограмме микроконтроллера на этот вывод мы выдаем логическую единицу (лог. "1"):

Если мы хотим, чтобы на выходе оказался "-" (он же "0", "Общий" или "Земля"), то в микропрограмме микроконтроллера на этот вывод мы должны вывести логический ноль (лог. "0"):

Семисегментный индикатор подключен у нас к одиннадцати программируемым выводам микроконтроллера, однако для простоты рассмотрим только два из них. Чтобы зажечь сегмент "а" первой цифры, нам необходимо подать "+" на общий провод первой цифры и "-" на сегментный вывод "а". Для этого нам надо в микропрограмме микроконтроллера подать лог. "1" на общий вывод первой цифры и лог. "0" на сегментный вывод "а". В этом случае сегмент "а" первой цифры будет гореть:

Если же мы хотим выключить этот сегмент, сделаем все наоборот: в микропрограмме микроконтроллера подадим лог. "1" на сегментный вывод "а" и лог. "0" на общий вывод первой цифры. Тогда наш сегмент "а" первой цифры светиться не будет - ведь при этом данный светодиод будет заперт:

При использовании семисегментного индикатора CC04-41SRWA вместо CA04-41SRWA (помним, что они отличаются полярностью светодиодов), необходимо в микропрограмме поменять лог. "0" и лог. "1".

Итак, настала пора рассмотреть полную схему электронного термометра :

Собственно, на полной схеме нарисовано все то, о чем мы говорили выше. Цифры 0603 и 0805 рядом с обозначением резисторов и конденсаторов означают их типоразмер (в сотых долях дюйма). Такое обозначение используется для указания размера радиоэлементов для поверхностного монтажа.

Конденсатор на ноге 17 микроконтроллера на самом деле подключен к ИОН АЦП для придания ему большей стабильности и защиты АЦП от помех.

Ноги 19 и 20 микроконтроллера в данной схеме не используются, и чтобы они не "болтались в воздухе" я подключил их к общему проводу схемы. В микропрограмме для микроконтроллера эти выводы прописаны как выходы, на которые все время выводится логический ноль. Таким образом, внутренняя схема микроконтроллера через эти ноги дополнительно соединяется с общим проводом:

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

После очистки оперативной памяти происходит настройка некоторых внутренних устройств, как то:

Таймера №0 (а всего их 2 в данном микроконтроллере: Таймер №0 и Таймер №1), ибо по этому таймеру будет работать часть микропрограммы, отвечающая за динамическую индикацию;

Сторожевого таймера, который вызовет перезагрузку (Сброс, Reset) микроконтроллера в случае его "зависания" (при бездействии микропрограммы более 0.5сек);

Портов ввода-вывода. Именно в этот момент определяется, какая из программируемых ног будет выходом на светодиодный семисегментный индикатор, вход АЦП становится именно входом, а заземленные выводы 19 и 20 становятся "дополнительными выводами GND";

Аналогово-Цифрового Преобразователя (АЦП), в этот момент выбирается именно тот вход, к которому подключен датчик температуры, выбирается встроенный Источник Опорного Напряжения (ИОН) (2.7В который) и запускается первый процесс АЦП.

После этого микропрограмма зацикливается и начинает ходить по кругу, выполняя оператор безусловного перехода сам на себя. Когда Таймер №0 отсчитает заданное время (примерно 1/500сек), он вызывает прерывание, микропрограмма прекращает ходить по "замкнутому кругу" и обрабатывает часть алгоритма, прописанную в обработке прерывания от Таймера №0. Сам Таймер №0 начинает отсчет следующей 1/500 секунды. По окончании обработки прерывания от Таймера №0, микропрограмма возвращается к своему "замкнутому кругу". Таким образом, 500 раз в секунду происходит исполнение алгоритма, описанного в обработке прерывания по Таймеру №0. Что же это за алгоритм?

Алгоритм обработки прерывания по Таймеру №0 содержит две части: алгоритм подготовки значений, выводимых на индикаторы, и алгоритм обработки динамической индикации.

Алгоритм подготовки значений, выводимых на индикаторы работает следующим образом. Алгоритм АЦП (см. ниже) поставляет абсолютное значение измеренной температуры (в Кельвинах). По этому значению определяются повреждения датчика (обрыв или короткое замыкание), а также определяется значение температуры в ºС и выбирается способ вывода этой температуры на индикаторы. Так,

при повреждении датчика (если температура слишком мала (замыкание) или слишком велика (обрыв)) на индикатор выводятся прочерки "- - - - ";

При температуре 0...9ºС, например 5ºС, на индикатор выводится значение температуры в виде: " 5 º С" (первая цифра не светится);

При температуре более 9ºС, например 27ºС, на индикатор выводится значение температуры в виде: "2 7 º С";

При температуре в диапазоне -1...0ºС на индикатор выводится значение температуры в виде: "- 0 º С";

При температуре в диапазоне -9...-1ºС, например при температуре -7ºС (т.е. при температуре в диапазоне -8...-7ºС), на индикатор выводится значение температуры в виде: "- 7 º С";

При температуре менее -9ºС, например при температуре -18ºС (т. е. при температуре в диапазоне -19...-18ºС), на индикатор выводится значение температуры в виде: "- 1 8 º".

Для того, чтобы отобразить на индикаторе значение температуры , его сначала необходимо "разложить на составляющие", т. е. на десятки и единицы ºС. После получения значения каждой цифры индикатора (символы "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", " ", "-", "º" и "С"), по этому значению выбирается тот или иной набор сегментов для данного знакоместа индикатора, отображающий требуемый символ. Четыре этих набора (по числу знакомест (цифр) на индикаторе) сохраняются в четырех ячейках (байтах) оперативной памяти.

Алгоритм обработки динамической индикации устроен так. В оперативной памяти назначена ячейка, которая представляет собой номер цифры, выводимой в данный момент динамической индикации. Значение этой ячейки с каждым прерыванием от Таймера №0 увеличивается на единицу, а по достижении значения "4" обнуляется. Таким образом, значение этой ячейки "пробегает" ряд значений 0, 1, 2, 3, затем снова 0, 1... и т. д. Значение "0" соответствует первой цифре индикатора, "1" - второй, ... , "3" - четвертой. Именно по значению этой ячейки алгоритм динамической индикации выбирает цифру индикатора, которую необходимо включить в течение времени до следующего прерывания Таймера №0. На сегментные провода индикатора выводится комбинация сигналов именно для этой цифры индикатора (как раз одна из тех четырех, которые сохранены в оперативной памяти алгоритмом подготовки значений для индикатора). И на общий провод именно этой цифры подается разрешающий ее свечение "+" (лог. "1"). Таким образом, каждая цифра светится в течении периода времени между прерываниями от Таймера №0, т. е. в течение 1/500сек. Поскольку цифр всего четыре, индикатор обновляется с частотой 125Гц.

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

Алгоритм обработки прерывания от АЦП производит следующие действия. В оперативной памяти микроконтроллера назначена ячейка (из 2-ух байт), работающая счетчиком выполненных преобразований АЦП (что тоже самое - счетчиком полученных результатов АЦП). С каждым прерыванием по завершению очередного преобразования АЦП, значение этой ячейки увеличивается на единицу. Кроме того, в оперативной памяти назначена еще одна ячейка (из 3-ех байт), используемая для суммирования результатов АЦП. С каждым прерыванием по завершению очередного преобразования АЦП, к имеющемуся значению этой ячейки добавляется новый полученный результат АЦП.

По достижении счетчиком выполненных преобразований АЦП значения 16384, этот счетчик обнуляется и начинает считать заново, а сумма результатов АЦП делится на 16384, результат запоминается, а сама сумма затем также обнуляется для накопления суммы следующих 16384 результатов преобразований АЦП.

Результат деления суммы на 16384 представляет собой усредненное значение результатов АЦП по 16384 результатам. Усреднение необходимо для увеличения стабильности показаний, устранения мелькания цифры младшего разряда. Усредненное значение используется для вычисления температуры в Кельвинах . Для пересчета результата преобразования АЦП в Кельвины необходимо результат АЦП умножить на некий коэффициент. Этот коэффициент определить очень просто.

Для расчета некоего коэффициента микропрограмма микроконтроллера изменяется таким образом, что на индикатор выводится не температура, а непосредственно усредненное значение результатов АЦП. Датчик помещается в стакан с водой, в которой плавают кусочки льда и все это месиво интенсивно перемешивается для стабилизации температуры в стакане и уравнивания с ней температуры датчика (датчик при этом, естественно, должен быть уже защищен от влаги (см. ниже), иначе вода замкнет его выводы и сильно исказит результаты). Температура смеси воды со льдом, как всем известно, составляет 0ºС или 273.15К. Предположим, что при этом усредненный результат АЦП составил 761 единицу. Тогда наш искомый коэффициент равен 761 / 273.15 = 2.786. Собственно, после деления усредненного результата АЦП на этот коэффициент и получается температура в К . Это значение температуры в Кельвинах сохраняется в одной из ячеек оперативной памяти микроконтроллера, чтобы затем быть использованным алгоритмом подготовки значений, выводимых на индикаторы (см. выше).

Получение усредненного результата АЦП происходит примерно 1 раз в 2 сек. Именно с такой частотой меняются показания электронного термометра при резком изменении температуры датчика .

На последок хочу отметить, что на время, пока производится определение первого усредненного значения результатов АЦП (т. е. примерно на 2 сек.), на индикаторе включаются все используемые сегменты, т. е. "8 8 8 8". Сделано это для возможности быстро проконтролировать исправность всех используемых сегментов индикатора в случае необходимости.

По просьбам посетителей сайта, предоставляю исходники и прошивку на микропрограмму микроконтроллера электронного термометра с подробными комментариями:

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

Страница USB-программатор микроконтроллеров AVR для Algorithm Builder рассказывает о том, как собрать более продвинутый программатор для программирования микроконтроллеров из этой среды.

Кроме того, будет необходимо запрограммировать его так называемые "Fuse bits". Эти биты определяют ряд важнейших параметров микроконтроллера, например, такие, как источник тактовой частоты и метод программирования. Установить нужные значения Fuse bits можно в меню "Опции" - "Опции проекта..." - вкладка "Fuse bits", либо из окна программирования по ссылке Fuse bits... В любом случае, эти биты устанавливаются в окне установки Fuse bits, и должны быть установлены В ТОЧНОСТИ как на картинке ниже:

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

Для тех, кто собрался повторить данную конструкцию, выкладываю файлы трассировки этих плат:

T1.PCB.rar (37.6кБ) - файл трассировки печатных плат электронного термометра в программе P-CAD 2006:

После монтажа компонентов и отмывки от флюса, эти две платы с помощью штыревых гребенок типа PLS спаиваются между собой в единый блок:

Платы смонтированы в корпус G1015, выпускаемые фирмой Gainta Industries . Этот корпус необходимо немного доработать, вырезать окошко для индикатора и пару отверстий для крепления блока печатных плат.

Со стороны индикатора на корпус наклеено тонкое прозрачное оргстекло (плексиглас), вырезанное из коробки от CD-диска, на которое, затем, дважды наклеена тонировочная пленка для тонировки автомобильных стекол. Двойного слоя тонировочной пленки достаточно, чтобы с внешней стороны все стекло казалось непрозрачным (черным), однако светящиеся цифры индикатора сквозь него было хорошо видно:

За "ушки" корпуса электронный термометр можно прикрутить к стене или еще к чему-либо.

Датчик электронного термометра в первом варианте помещен в отрезок трубки от телескопической антенны и залит эпоксидным клеем:

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

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


Предлагаемый для самостоятельной сборки цифровой измеритель температуры позволяет в реальном времени измерить температуру в диапазоне от нуля до 99 градусов по Цельсию. Проект разработан на базе микроконтроллера PIC16F1825, драйвера CAT4016 для LED дисплея, температурного датчика DS18200 и двух 7-сегментных светодиодных индикатора с общим анодом. Этот маленький удобный термометр потребляет довольно малый ток и может работать с 4.5 вольтовой батарейкой, составленной из 3-х элементов АА. Яркость дисплея можно изменить, заменив значение резистора R1.

Электронный термометр - принципиальная схема

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

  • Диапазон температур от 00 до 99 градусов
  • Входное питание 4,5 - 5В DC
  • Ток потребления 20 мА


Несмотря на то, что сейчас пошла тенденция в качестве дисплея применять более экономичные ЖКИ, в данном приборе есть смысл поставить большие яркие светодиодные индикаторы, чтоб показания было видно издалека и даже в темноте. Схема соединений и подключения внешних элементов к плате показана выше.



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

error: