6 فایل پیوست
ماژول دماسنج غیر تماسی - سنسور حرارت مادون قرمز mlx90614
ماژول سنسور دما غیر تماسی MLX90614
ماژول MLX90614ESF-AAA یک ترمومتر اینفرارد(مادون قرمز) است که برای سنجش دما بدون تماس طراحی شده است. داشتن 17 بیت ADC داخلی و یک پردازشگر سیگنال قدرتمند نظیر آردوینو امکان اندازه گیری دقیق و درست را برای این ماژول فراهم می کند. این ماژول کاربرد گسترده ای در اندازه گیری دمای بدن و تشخیص حرکت دارد. این ماژول خروجی را به دو روش PWM و (SMBUS (TWI,I2C فراهم می کند. خروجی 10 بیتی PWM دارای دقتی برابر با 0.14 درجه سانتی گراد است درحالی که ارتباط TWI دارای دقت 0.02 درجه سانتی گراد می باشد. مقدار اندازه گیری شده توسط ماژول میانگین دمای همه اشیاء موجود در میدان قابل سنجش سنسور این ماژول است.ماژول MLX90614 در دمای اتاق دقت اندازه گیری برابر 0.5 درجه سانتی گراد را ارائه می دهد.
فایل پیوست 583
ویژگی ها
کالیبره شده در کارخانه
SMBUS سازگار با رابط دیجیتال
خروجی PWM قابل برنامه ریزی برای خواندن مداوم
40- تا +85 درجه سانتی گراد محدوده دمای سنسور (دمای خود سنسور نماید از این محدوده تجاوز نماید)
70- تا +380 درجه سانتی گراد محدوده اندازه گیری دمای اجسام توسط سنسور
ولتاژ تغذیه: 4.5V تا 5V
دقت اندازه گیری :0.02 درجه سانتی گراد
دارای نشانگر LED به هنگام اتصال به تغذیه
مثال
در مثال زیر با نزدیک کردن دست خود به سنسور متصل به آردوینو می توانید اندازه گیری دقیق دما را توسط این سنسور درSerial Monitor مشاهده کنید.
فایل پیوست 584
فایل پیوست 585
کد:
#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;
float fahrenheit = (celcius*1.8) + 32;
Serial.print("Celcius: ");
Serial.println(celcius);
Serial.print("Fahrenheit: ");
Serial.println(fahrenheit);
delay(1000); // wait a second before printing again
}
مرجع:
MLX90614 Contactless Temperature Sensor Module (unassembled) [SEN_TEM_MLX_01A] - $26.50 : Elechouse, Arduino Play House
جهت سفارش این کالا، به این بخش در فروشگاه آفتاب رایانه مراجعه نمایید.
ماژول دماسنج مادون قرمز - ترمومتر غیرتماسی mlx90615
سلام، متاسفانه ایرادی که در حین کار با سنسور MLX90614 پیش اومده بود موقع استفاده از ماژول MLX90615 هم که به صورت اسمبل شده است، ظاهر شد. این ماژول درسته که از یه سنسور دیگه استفاده می کنه ولی پین های خروجیش به راحتی قابل دسترسیه. من از برد آردوینو اونو استفاده کردم و البته کد برنامه متناسب با این سنسور رو هم پیدا کردم، ولی موقع ران کردن برنامه یه پیغام . . . Setup نشون می ده و تمام. به نظرم پیامی از پایه ها نمی گیره. کاش مسوولین سایت کنترل بکنند و اگه لازمه درایور یا برنامه تست شده رو تو سایت قرار بدن.
ممنون از توجه و پیگیری مسوولین سایت