Перейти к содержимому






Фотография
- - - - -

Бесконтактный датчик температуры (ID:850)

Написано admin , 26 April 2015 · 3986 Просмотров

MLX90614
Бесконтактный датчик температуры (ID:850) Датчик представляет собой небольшую платку с установленным на ней термочувствительным сенсором, четырех контактным разъемом.
VCC- контакт для подключения напряжения питания 3,3 Вольт.
GND- контакт для подключения общего провода.
SDA- последовательный интерфейс.
SCL- последовательный интерфейс.
Один из примеров использования датчика будет такой:
Подключаем питание 3,3 Вольт к плате сенсора.
SDA вывод платы сенсора подключаем к Arduino на аналоговый вход А4.
SCL вывод платы сенсора подключаем к Arduino на аналоговый вход А5.



Скачайте библиотеку 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 см.
Прикрепленное изображение: Снимок экрана от 2015-04-19 21:12:13.png
Ссылка на витрину магазина http://dvrobot.ru/238/855.html





Trackbacks для записи [ Trackback URL ]

Для данной записи нет trackbacks.

Последние комментарии