1
Бесконтактный датчик температуры (ID:850)
Написано
admin
,
26 April 2015
·
3986 Просмотров
MLX90614
Датчик представляет собой небольшую платку с установленным на ней термочувствительным сенсором, четырех контактным разъемом.
VCC- контакт для подключения напряжения питания 3,3 Вольт.
GND- контакт для подключения общего провода.
SDA- последовательный интерфейс.
SCL- последовательный интерфейс.
Один из примеров использования датчика будет такой:
Подключаем питание 3,3 Вольт к плате сенсора.
SDA вывод платы сенсора подключаем к Arduino на аналоговый вход А4.
SCL вывод платы сенсора подключаем к Arduino на аналоговый вход А5.
Скачайте библиотеку MLX90614.zip и поместите его в папку Libraries
Запишем в Arduino вот такой скетч:
Ссылка на витрину магазина http://dvrobot.ru/238/855.html
VCC- контакт для подключения напряжения питания 3,3 Вольт.
GND- контакт для подключения общего провода.
SDA- последовательный интерфейс.
SCL- последовательный интерфейс.
Один из примеров использования датчика будет такой:
Подключаем питание 3,3 Вольт к плате сенсора.
SDA вывод платы сенсора подключаем к Arduino на аналоговый вход А4.
SCL вывод платы сенсора подключаем к Arduino на аналоговый вход А5.
Библиотека: Бесконтактный датчик температуры (ID:850)
Последние обновленные 28 Oct 2022 01:25
Скачайте библиотеку MLX90614.zip и поместите его в папку Libraries
Запишем в Arduino вот такой скетч:
#include <i2cmaster.h> void setup(){ Serial.begin(9600); Serial.println("Setup..."); i2c_init(); //Initialise the i2c bus PORTC = (1 << PORTC4) | (1 << PORTC5);//enable pullups } void loop(){ int dev = 0x5A<<1; int data_low = 0; int data_high = 0; int pec = 0; i2c_start_wait(dev+I2C_WRITE); i2c_write(0x07); // read i2c_rep_start(dev+I2C_READ); data_low = i2c_readAck(); //Read 1 byte and then send ack data_high = i2c_readAck(); //Read 1 byte and then send ack pec = i2c_readNak(); i2c_stop(); //This converts high and low bytes together and processes temperature, MSB is a error bit and is ignored for temps double tempFactor = 0.02; // 0.02 degrees per LSB (measurement resolution of the MLX90614) double tempData = 0x0000; // zero out the data int frac; // data past the decimal point // This masks off the error bit of the high byte, then moves it left 8 bits and adds the low byte. tempData = (double)(((data_high & 0x007F) << 8) + data_low); tempData = (tempData * tempFactor)-0.01; float celcius = tempData - 273.15; Serial.print("Celcius: "); Serial.println(celcius); delay(1000); // wait a second before printing again }Записав скетч в Arduino и включив монитор порта, мы можем видеть как меняются показания датчика в зависимости от его направления. На рисунке представлен результат измерения температуры ладони, поднесенной к датчику на 10 см.
Ссылка на витрину магазина http://dvrobot.ru/238/855.html