Вы здесь:
Главная » Все записи » Инфракрасный термометр своими руками на MLX90614

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

$regfile = "m8def.dat"
$crystal = 8000000

'конфигурация дисплея
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

I2cinit

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                             'команды для датчика

Cls
Cursor Off

Do

 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"                'выводим температуру датчика

 Waitms 500

Loop

'подпрограмма опроса датчика
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

Return

 

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

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

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

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

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

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

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

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

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

Скачать документацию, исходник и прошивку (1,2Mb).

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

Источник:avrproject.ru



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



П О П У Л Я Р Н О Е:

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

    Как известно, любое вещество может находиться в 3-х состояниях: твердом, жидком и газообразном.

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

    Подробнее…

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

    Подробнее…

  • Использование микроконтроллера на дачном участке. Часть 1
  • Использование звуков на садовом участке

    Звук на садовом участке

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

    Подробнее…


Популярность: 2 099 просм.
Вы можете следить за комментариями к этой записи через RSS 2.0. Вы можете оставить комментарий:.

Ваш комментарий


- НАВИГАТОР -




Прислать свою поделку!

А ТАКЖЕ ЕЩЁ ИНТЕРЕСНОЕ:



MasterVintik