Пирометр своими руками схема

Инфракрасный термометр своими руками на MLX90614

Для изготовления нашего бесконтактного термометра будем использовать датчик-пирометр MLX90614 — это инфракрасный датчик, позволяющий определять температуру бесконтактным методом.

Такой датчик позволяет практически моментально считывать температуру тела, измеряя инфракрасное излучение объекта. Сейчас познакомимся с ним поближе и разберем работу в Bascom-AVR.

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

Во-первых, они различаются по напряжению питания, бывают 3-х и 5-и вольтовые версии.

Во-вторых, различаются количеством сенсоров внутри датчика: бывают с одним сенсором и двумя:

Также есть версия датчика, в которой два сенсора, но показания с них суммируются и усредняются. Именно такой датчик и попал ко мне.

В-третьих, различие в угле обзора. Бывают, как на картинке выше, с открытым окном, у которых угол обзора стремится к 180°. А есть версии с уменьшенным до 35°, 10° и 5° углом. Я приобрел датчик с углом обзора 10°, но как оказалось ничего хитрого там нет, просто на корпус датчика запрессована черная трубка, обрезающая часть обзора. Поэтому можно брать открытые датчики, они дешевле, и уже самим приклеить трубочку. Но интересней было бы добавить пару линз, только найти такие, чтобы пропускали инфракрасное излучение наверно будет не просто.

Все датчики подключаются по стандартному интерфейсу I2C. Распиновка со стороны ножек.

На шине I2C датчик имеет настраиваемый адрес, по умолчанию отзывается на &hB4 (&b10110100) Для считывания температуры измеряемого объекта нужно обратится по адресу &h07 (&b00000111) для первого сенсора, и &h08 (&b00001000) для второго (если датчик имеет два отдельных сенсора).

Для моего варианта, в котором два сенсора объединены, показания считываются только с первого сенсора. Также датчик может измерить собственную температуру, ее значение хранится по адресу &h06 (&b00000110)

К слову об измеряемых температурах. Предел температур для измеряемого объекта составляет -70 ÷ 380 °C, а для самого датчика -40 ÷ 125°C.

Данные в датчике хранятся в сыром виде и занимают два байта, поэтому для перевода их в градусы Цельсия необходимо преобразование: поделить значение на 50 и затем вычесть из результата 273,15. Еще нужно учитывать одну особенность — датчик сперва отправляет младший байт, а затем старший. Поэтому полученные данные перед преобразованием приходится «переворачивать».

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

Читайте также:  Мини бизиборд своими руками для мальчика

Программа в Bascom-AVR:

‘конфигурация дисплея
Config Lcd = 16 * 2
Config Lcdpin = Pin , Rs = Portb . 5 , E = Portb . 4 , Db4 = Portb . 3 , Db5 = Portb . 2 , Db6 = Portb . 1 , Db7 = Portb . 0

‘подключение датчика
Config Scl = Portc . 0
Config Sda = Portc . 1

Dim Value As Byte ‘принимаемый байт
Dim Temp As Single ‘температура
Dim Tempword As Word ‘вспомогательная переменная
Dim Irtemp As String * 8 ‘температура объекта
Dim Senstemp As String * 8 ‘температура датчика
Dim Cmd As Byte ‘команды для датчика

Cmd = & B00000111 ‘адрес чтения температуры объекта
Gosub Read_mlx ‘опрашиваем датчик
Irtemp = Fusing ( temp , «##.##» )

Cmd = & B00000110 ‘адрес чтения температуры датчика
Gosub Read_mlx ‘опрашиваем датчик
Senstemp = Fusing ( temp , «##.##» )

Cls
Locate 1 , 1
Lcd «To » ; Irtemp ; «°C» ‘выводим температуру объекта
Lowerline
Lcd «Ts » ; Senstemp ; «°C» ‘выводим температуру датчика

‘подпрограмма опроса датчика
Read_mlx :

I2cstart
I2cwbyte & B10110100 &nbsnbsp; ‘отправляем адрес датчика
I2cwbyte Cmd ‘отправляем команду с адресом

I2cstart
I2cwbyte & B10110101 ‘отправляем адрес датчика с битом чтения
I2crbyte Value , Ack ‘принимаем первый байт
Tempword = Value
Shift Tempword , Left , 8

I2crbyte Value , Ack ‘принимаем второй байт
Tempword = Tempword Or Value ‘складываем два байта

I2cstop ‘окончание опроса датчика

Rotate Tempword , Left , 8 ‘меняем местами два байта в переменной

Temp = Tempword * 0 . 02 ‘преобразование данных в температуру по Цельсию
Temp = Temp — 273 . 15

Программа выводит на дисплей две температуры. В верхней строке температуру измеряемого объекта, в нижней — температуру самого датчика.

Фото с экспериментов

Температура горячего чайника

Чайник только вскипел, но температура пластикового корпуса выше 80 не поднималась.

Температура в морозилке

А вот интересная картинка из даташита, показывающая погрешность датчика в зависимости от внешних факторов.
To — измеряемая температура объекта, Ts — температура окружающей среды

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

Датчик недорого можно купить в Китае.

ПОДЕЛИТЕСЬ С ДРУЗЬЯМИ

П О П У Л Я Р Н О Е:

«ЖИВАЯ» И «МЁРТВАЯ» ВОДА СВОИМИ РУКАМИ

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

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

Солнечное отопление — это просто!

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

Читайте также:  Книжка с тактильными вставками своими руками

Источник

Компактный бесконтактный ИК-термометр своими руками

Atmel ATmega328P

ThermoPen – так автор назвал результат своей выпускной работы по физике в начале 2021 года. Целью данного проекта было создание компактного и точного бесконтактного термометра (Рисунок 1). Прибор был разработан, в частности, для проверки перегрева электронных компонентов на печатной плате и для устранения общих неисправностей. Благодаря компактным размерам (термометр выполнен в форме ручки), он пользовался широким спросом среди преподавателей и студентов, имеющих дело с электроникой.

Термометр оснащен инфракрасным (ИК) датчиком, преобразующим ИК излучение от объекта в электрический сигнал, который в дальнейшем преобразуется в температуру с помощью микроконтроллера. Что отличает ThermoPen от базовой концепции и других подобных приборов, так это дополнительные функции, полезные для пользователя, и миниатюрные размеры.

Таким образом, была разработана миниатюрная печатная плата, содержащая микроконтроллер (МК) ATmega328P (тот же МК, что установлен на платах Arduino Nano/Uno), схему питания (повышающий преобразователь напряжения) и схему зарядки Li-Ion аккумулятора. Все проектные файлы (САПР KiCad) доступны для скачивания в разделе загрузок и в репозитории на сайте github.com [1].

Рисунок 1. ThermoPen – компактный ИК-термометр в форме ручки.

Отличительные особенности ИК-термометра:

  • OLED дисплей, на котором отображается температура объекта, температура окружающей среды, максимальная и минимальная температура объекта;
  • Звуковая индикация;
  • Активация нажатием одной кнопки;
  • Работа от Li-Ion аккумулятора, встроенная схема зарядки;
  • Лазерный светодиод, действующий как указатель.

Принцип работы

Перед сборкой ИК-термометра важно понять, как он устроен, и как работает. Блок-схема ИК-термометра изображена на Рисунке 2.

Рисунок 2. Блок-схема ИК-термометра ThermoPen.

При нажатии кнопки на схему подается питание и запускается инициализация периферии МК, раздается звук включения. Через 1 секунду включается лазерный диод, и на OLED дисплее в реальном времени отображаются данные, считанные с датчика термометра. В коде программы также вычисляются минимальная и максимальная температура, напряжение и емкость аккумулятора. После отпускания кнопки питания прибор работает еще 4-5 секунд, что возможно благодаря конденсаторам.

Единственное назначение лазерного светодиода – дать пользователю представление о том, где измеряется температура. «Настоящее волшебство» стало возможным благодаря датчику температуры MLX90614 производства Melexis, использующему физический принцип, согласно которому любой объект испускает определенное количество ИК излучения, зависящее от его температуры. Датчик преобразует принятые ИК волны в электрический сигнал, пропорциональный температуре, который далее персчитывается МК в температуру в градусах Цельсия.

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

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

Принципиальная схема ИК-термометра изображена на Рисунк 3. МК ATmega328P кварцевым резонатором с частотой 8 МГц (у Arduino Nano 16 МГц), что связано с повышением эффективности работы от аккумулятора. ИК-датчик и OLED-дисплей подключаются к МК по интерфейсу I 2 C, управление лазерным диодом и зуммером осуществляется цифровыми портами МК. Напряжение аккумулятора измеряется внутренним АЦП МК (канал A0).

Читайте также:  Копилка своими руками гипс
Рисунок 3. Принципиальная схема ИК-термометра ThermoPen.

Схема питания прибора представляет собой повышающий преобразователь, выполненный на микросхеме TPS61090. Выходное напряжение преобразователя стабилизировано на уровне 5 В. Схема включения TPS61090 взята от платы расширения Arduino Adafruit Power Boost 500 для питания устройств от Li-Ion аккумулятора [2].

Схема зарядки Li-Ion аккумулятора выполнена на микросхеме MCP73831. В начале зарядки загорается желтый светодиод (D1); об окончании зарядки свидетельствует зеленый светодиод (D2).

Схема и печатная плата разрабатывались в бесплатной САПР KiCad. Для минимизации размеров печатной платы ИК-термометра большинство резисторов и конденсаторов выбраны в корпусах для поверхностного монтажа типоразмера 0805.

Корпус прибора

Автор также разработал корпус ИК-термометра для печати на 3D принтере (Рисунок 4). 3D модель разрабатывалась в САПР Solidworks. Для укладки проводов внутри корпуса, надежного крепления аккумулятора типоразмера 18650 и печатной платы, был выбран квадратный профиль. Для максимальной точности лазерный светодиод расположен непосредственно рядом с ИК-датчиком. При таком расположении лазерный диод не заметен. В корпусе предусмотрены два отверстия для светодиодов состояния зарядки. Корпус спроектирован со сдвижной нижней крышкой с пластиковой защелкой. Пластиковые защелки надежно удерживают печатную плату в корпусе.

Рисунок 4. Проект корпуса ИК-термометра и 3D вид.

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

Рисунок 5. Компоновка компонентов ИК-термометра в корпусе.

Монтаж компонентов

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

Рисунок 6. Внешний вид печатной платы ИК-термометра.

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

На плате вы заметите несколько сквозных отверстий под разъемы. Эти отверстия предназначены для подключения компонентов за пределами печатной платы: лазерного светодиода, OLED дисплея, разъема microUSB для зарядки, контактов отсека аккумулятора, а также сигналов интерфейса внутрисхемного программирования МК.

Программный код и программирование МК

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

Для программирования микроконтроллера на плате предусмотрены контакты подключения внутрисхемного программатора, но можно в качестве программатора использовать другую плату Arduino Uno/Nano (Arduino as ISP; соответствующий скетч поставляется с Arduino IDE) [3].

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

Точность измерения температуры зависит только от ИК-датчика и его состояния, поскольку калибруется он в заводских условиях. Зуммер срабатывает при превышении установленного порога температуры, значение которой задается в программе МК (установлено значение 120 °С).

Источник

Оцените статью
Своими руками