Главная arrow Проекты arrow По группам arrow Микроконтроллеры arrow Индикатор температуры тела  
14.10.2024 г.
Главная
Проекты
Статьи
Начинающим
Архив новостей
Ссылки
Контакты
Поиск
Файлы
Форум
Карта сайта
Авторизация





Забыли пароль?
Ещё не зарегистрированы? Регистрация
Поддержи наш сайт!
Через WebMoney

 R785211844650
 Z210696637574
 E368177590409

Индикатор температуры тела Печать E-mail
Рейтинг: / 32
ХудшаяЛучшая 
Автор ARV   
09.06.2009 г.

Устройство предназначено для оперативного контроля температуры тела человека и может быть полезно в случаях, когда быстрая оценка температуры важнее знания ее точного значения (ведь не секрет, что в большинстве случаев мы удовлетворяемся значениями «нормальная» или «повышенная», не уточняя конкретные цифры). Изюминкой устройства является то, что оно собрано на крохотном микроконтроллере attiny13 и обладает следующими параметрами:

  • индикация 5 уровней температуры тела - от пониженной до очень высокой при помощи одного RGB-светодиода
  • питание от 2-х "таблеточных" батареек
  • в схеме всего 13 элементов, включая 2 батарейки
  • контроль напряжения питающих батарей
  • автонастройка на параметры компонентов схемы
  • полуавтоматическая калибровка датчика температуры
  • внутренняя точность измерения лучше 0,02°С
  • нет дорогих или дефицитных компонентов

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

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

Основа конструкции - микроконтроллер attiny13. Он должен быть настроен на работу от встроенного RC-генератора 9,6 МГц с включенным делителем на 8 (именно с такими настройками эти контроллеры выпускаются производителем). Если контроллер уже побывал в работе, необходимо запрограммировать в нем следующие fuse-биты: DWEN=1, CKDIV8=0 и CKSEL=10. Для повышенной экономичности (все-таки, батарейная конструкция) желательно заблокировать встроенную систему контроля напряжения питания, т.е. установить fuse-биты BODLEVEL=11. Бит RSTDSBL обязательно должен быть равен 1 (это на случай, если у вас фирменный программатор)! Все прочие fuse-биты принципиальной роли не играют.

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

Кнопка SB1 - тактовая, любого типа, служит для управления работой индикатора при калибровке и для включения режима измерения при эксплуатации.

Питание устройства осуществляется от двух «таблеточных» батареек GB1 и GB2. Конденсатор C1 - электролитический, емкостью от 10 мкФ, напряжением 5 и более вольт, с малым током утечки. Он сглаживает пульсации напряжения при подсевших батарейках и, в принципе, является необязательным компонентом. Выключателя питания у устройства нет, т.к. потребление энергии происходит в основном во время измерении температуры и индикации, т.е. относительно короткое время, а большую часть времени микроконтроллер «спит» и потребляемый ток практически равен току утечки C1.

RGB-светодиод HL1 типа KAA-3528EMBSGC. Этот SMD-вариант может быть заменен на любой другой. В крайнем случае можно использовать 3 отдельных разноцветных светодиода.

Резистор R1 используется для контроля напряжения батарей питания - он входит в состав делителя напряжения вместе со встроенным в микроконтроллер pull-up резистором, сопротивление которого лежит в пределах 20...50К. На резисторе R1 должно быть примерно от 1/3 до 1/6 напряжения питания, т.е. при свежих батарейках GB1 и GB2 от 0,5 до 1В.

Резисторы R2...R4 ограничивают ток кристаллов светодиода. На схеме указаны ориентировочные значения сопротивлений этих резисторов, конкретные их значения следует рассчитать, ориентируясь на параметры конкретно примененного светодиода. Для увеличения срока службы элементов питания желательно выбирать ток через любой кристалл светодиода HL1 не более 5 мА.

 

Так как суммарное напряжение GB1 и GB2 получается не более 3В, а прямое падение напряжения на синем кристалле HL1 вряд ли будет менее 3,6В (для примененного светодиода KAA-3528EMBSGC оно составляет минимум 4В), напрямую от порта микроконтроллера засветить его не получится - не хватит напряжения. Чтобы обойти эту проблему, использована схема удвоения напряжения на элементах R4C2VD2. Работает эта схема так: когда необходимо зажечь синий кристалл светодиода, микроконтроллер формирует меандр с частотой около 35 кГц на выводе 5. Когда на выводе 5 присутствует высокий уровень (3В), конденсатор С2 заряжается через резистор R4 и последовательно включенный диод VD2, причем правая по схеме обкладка С2 имеет минусовый потенциал. Когда уровень на выводе 5 сменяется на низкий, т.е. соединяется с минусом батареи питания, конденсатор С2 оказывается включенным последовательно с батарейками, диод DV2 запирается обратным напряжением на обкладках С2. Так как С2 был заряжен примерно до 3В, то к синему кристаллу светодиода будет приложено практически 6В - он обязательно засветится.

В данной схеме параметры элементов C2, R4 и VD2 играют важную роль. Чем больше емкость С2, тем больший ток сможет обеспечить схема удвоения, однако, тем больший средний ток перезаряда C2 будет протекать по выводу контроллера. Чтобы ограничить его на допустимом уровне, используется R4, одновременно ограничивающий и ток через синий кристалл светодиода. Его сопротивление так же следует рассчитать исходя из требований ограничения тока через порт микроконтроллера на уровне не более 10 мА (максимум - 40 мА), при этом ток через кристалл светодиода так же не должен превышать допустимый, причем при расчете тока через кристалл следует помнить, что среднее напряжение питания его около 6В. При указанном на схеме сопротивлении R4 в 100 Ом обеспечивается приемлемая яркость синего кристалла светодиода KAA-3528EMBSGC и достаточно хорошая экономичность всей схемы. В качестве VD2 неплохо применить диод Шоттки или германиевый диод, чтобы снизить падения напряжения на нем и тем самым поднять эффективность преобразователя.

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

Измерение температуры основано на том факте, что прямое падение напряжения на кремниевом диоде линейно зависит от температуры, причем температурный коэффициент практически одинаков для любых типов диодов и составляет около -2 мВ/°С (т.е. с ростом температуры напряжение уменьшается). VD1 смещен в прямом направлении благодаря встроенному в микроконтроллер pull-up резистору. Сопротивление этого резистора, как было сказано ранее, колеблется в технологических пределах 20...50 килоом. Естественно, каждый экземпляр микроконтроллера может иметь свое сопротивление, каждый экземпляр диода при этом будет иметь свое падение напряжения при одинаковой температуре, т.е. для обеспечения высокой точности измерения, что необходимо для медицинских применений, обязательно нужно провести калибровку термодатчика. Этот процесс автоматизирован и выполняется следующим образом.

Первоначально собранное устройство не откалибровано, и при первом включении перейдет в режим калибровки, поэтому желательно заранее подготовиться к этому, наколов льда из морозильника в чашку и поставив на плиту чайник. Тающий лед обеспечит нам первую образцовую температуру в 0°С, а кипящий чайник - вторую в 100°С.
Калибровка начинается с фиксации 0°С. Следует поместить VD1 в тающий лед (конечно, предварительно обернув его полиэтиленом или изолировав от воды как-то иначе), подождать некоторое время, пока VD1 охладится до нулевой температуры (этот процесс желательно контролировать образцовым термометром) и нажать кнопку SB1. HL1 начнет мигать синим: вам отводится 20 секунд, чтобы повторным нажатием SB1 зафиксировать нулевую температуру. Если этого не сделать за 20 секунд - устройство выключится автоматичеки, а при повторном включении снова даст вам 20 секунд для фиксации точки и т.д.

После фиксации нулевой образцовой точки, следует поместить VD1 в кипящую воду и аналогичным образом (только теперь HL1 будет мигать красным цветом) зафиксировать точку 100°С. Процесс успешной калибровки завершится миганием зеленым цветом.

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

Внимание! При замкнутом R1 невозможно провести калибровку, поэтому не следует замыкать его на длительное время, достаточно перемкнуть его пинцетом непосредственно перед нажатием SB1, а как только HL1 засветится - убрать пинцет и нажать кнопку.

После успешной калибровки индикатор готов к использованию по прямому назначению. Пользоваться им очень просто: следует нажать на SB1 и поместить VD1 в подмышечную впадину. В процессе измерения температуры HL1 раз в секунду вспыхивает белым цветом (т.е. все 3 кристалла HL1 включаются одновременно - реально получающийся при этом цвет может отличаться от белого). Это будет продолжаться до тех пор, пока температура датчика не перестанет изменяться - ориентировочно до 60 секунд. После того, как температура измерена, HL1 начнет быстро мерцать, символизируя своим цветом уровень температуры:

  • СИНИЙ - температура низкая, менее 35,5°С.
  • ЗЕЛЕНЫЙ - нормальная температура, от 35,6 до 36,9°С.
  • ЖЕЛТЫЙ - слегка повышенная температура, от 37,0 до 37,4°С
  • МАЛИНОВЫЙ - высокая температура, от 37,5 до 38,2°С
  • КРАСНЫЙ - очень высокая температура - выше 38,2°С

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

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

Замечание о точности измерений. В программе реализовано измерение напряжения на VD1 с точностью лучше 0,1 мВ, поэтому погрешностью АЦП и т.п. можно пренебречь, а основная погрешность устройства определяется лишь качеством калибровки. В домашних условиях не всегда есть возможность измерять температуру в широком диапазоне с точностью выше 0,5°С: далеко не у всех имеется спиртовой лабораторный термометр (тем более прошедший поверку). Поэтому точность калибровки устройства целиком основана на «доверии» к двум физическим константам - температурам кристаллизации и кипения воды. Однако известно, что обе эти температуры зависят от количества примесей в воде, а температура кипения дополнительно зависит от высоты местности над уровнем моря. Для средней полосы России этими нюансами можно пренебречь, т.к. отклонение на 2-3 градуса каждой из этих температур даст в сумме погрешность измерения не более 0,06°, что вполне достаточно для медицинских целей. Но если вы проживаете значительно выше уровня моря - лучше найти способ проконтролировать температуру кипения воды, и если требуется, увеличить ее добавкой поваренной соли.

 

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

Макет собранного устройства
Собранный макет

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

  1. Соединить вывод 2 с выводом 4.
  2. Подключить программатор и запрограммировать с обязательным стиранием EEPROM
  3. Снять питание, впаять контроллер в схему, подключить батарейки.
  4. Должен замерцать сиреневым цветом - дождаться погасания. Если не замерцал - повторить с п.1 (что-то было сделано не так, как написано). В крайнем случае можно наглухо соединить вывод 1 с выводом 4 на все время нахождения микросхемы в программаторе.
  5. Нажать кнопку - HL1 должен замерцать синим, это готовность к калибровке нуля. Далее поступать по ранее указанной методике калибровки.
  6. Если на п.5 не HL1 замерцал синим - замкнуть 2 и 4, нажать кнопку. Пока светится красным - разомкнуть 2 и 4. дождаться погасания и повторить п. 5.

Добавить в любимые (5) | Просмотров: 50561

  Коментарии (14)
 1 Написал(а) Igor, в 21:54 10.06.2009
даже не знаю чем прибор хорош.... 
вернее чем будет полезен.....  
пожалуй только для людей со слабым зрением и отсутствием очков :) 
хотя может быть маленьким детям тоже можно его доверить.... хотя не.... проглотят :) 
задумка ИМХО так себе, а вот исполение (схема и программа) БЛЕСТЯЩЕЕ !
 2 Написал(а) Дмитрий, в 10:52 14.06.2009
Зря так говоришь. Например в походе он будет незаменим не таскать же с собой ртутный термометр а заводской подороже будет. Потом в машине тоже пригодиться вдруг куда та поедешь и приспичит померить температуру тоже вещь.
 3 Написал(а) ARV, в 13:29 14.06.2009
а еще - ночью :) не видел ни одного "настоящего" термометра с подсветкой :zzz
 4 Написал(а) Паятель, в 23:57 28.06.2009
[QUOTE]даже не знаю чем прибор хорош….[/QUOTE] 
Ну как же, ударопрочностью хотя бы. :) Мне понравилось. 
ARV, в статье небольшая опечатка. Там, где написано про способ зажигания синего светодиода, надо R3 исправить на R4.
 5 Написал(а) ARV, в 17:24 29.06.2009
Про R4 исправил, спасибо!
 6 Написал(а) Андрей, в 10:15 08.07.2009
[QUOTE] ...Замечание о точности измерений. В программе реализовано измерение напряжения на VD1 с точностью лучше 0,1 мВ,... [/QUOTE] 
А где бы почитать про такой метод?
 7 Написал(а) Лазарь Дерменжи, в 10:48 09.09.2009
А исходник на прошивку можно найти? Чтобы под другой проц переделать, и дополнительные функции навесить?
 8 Написал(а) ARV, в 19:16 11.09.2009
исходника пока не будет :)
 9 Написал(а) borodalugansk, в 00:33 01.10.2009
Прибор хорош и полезен. Вот только нельзя ли выложить прошивку для диодов с общим катодом? Еле нашел RGB диод, а он отличается по подключению. Заранее благодарю...
 10 Написал(а) Денис, в 21:30 10.07.2010
Извините мня конечно! Но разве возможно достичь точности лучше 0,1мВ при 10-битном АЦП и ИОН=1,1В???
 11 Написал(а) Владимир, в 12:19 29.08.2010
"Краткость-сестра таланта"(с) 
автору РЕСПЕКТ! МОЛОДЕЦ! 
максимально задействованы ресурсы микроконтроллера при всей простоте дешевизне и доступности компонентов. 
по поводу критики.. 
(а мож у кого получше получится и попроще? 
тогда выложите своё)
 12 Написал(а) mag58, в 12:26 29.08.2010
Автору РЕСПЕКТ! 
МОЛОДЕЦ! 
максимально задействовал ресурсы микроконтроллера 
при всей внешней простоте ,получилось очень удачное устройство,особенно с применением диода в качестве термодатчика.
 13 Написал(а) Владимир, в 19:55 11.12.2010
Статья интересна только с точки зрения схемотехники. Но с точки зрения теории и соответственно практического применения ни куда не годиться :sigh  
Был изготовлен один экземпляр, но чуточку для других целей (измерение температуры в помещении). 8) В результате практических а также теоретических (моделирование в Micro Cap) экспериментов пришел к выводу что диод в качестве датчика температуры для таких целей не годиться так как у него не только зависимость от температуры а и от приложенного напряжения( тока), и все эти параметры зависят от разрядки ИП. Падение напряжения на ИП на 0.1 вольт приводит к изменению показаний на ~1-2 градуса. 
Поэтому для датчика лучше использовать терморезистор а для ИОН АЦП установить источник питания. Нелинейность терморезистора не страшна так как нужно знать только несколько точек измерения.
 14 Написал(а) Алексей, в 23:35 14.02.2016
хотелось бы использовать данную конструкцию в подсветке для чайника  
можно ли переделать прошивку под плавное изменение цвета от синего к красному  
при изменении температуры от 10 - 110 градусов по Цельсию  
а то на радиокоте , ни какой помощи , да и схема не рабочая или прошивка... 
да к тому же + этой конструкции что в качестве датчика применяется обычный КД521 
а не дорогой DS18B20 
и если можно , то лучше привести скрин фьюзов в CodeVisionAVR 
а то с этими 1 и 0 запутаться легко 
заранее благодарен  
тому кто откликнится и поможет

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

 
« Пред.   След. »
Полезные материалы по сходным темам
BannerFans.com