خبریں
خبریں
SL-W-TRS-5.5Dx ڈیجیٹل انفراریڈ تھرموپائل ڈیمو بورڈ کے لیے صارف دستی
2024-12-13 1849
SLKOR Micro Semicon Co., Ltd. اس کی تکنیکی ریڑھ کی ہڈی سنگھوا یونیورسٹی اور جنوبی کوریا کی یونسی یونیورسٹی سے آتی ہے۔ یہ نئے مواد، نئے عمل اور نئی مصنوعات کے ساتھ کمپنی کی ترقی کی رہنمائی کرتا ہے، اور تیسری نسل کے سیمی کنڈکٹر سلیکون کاربائیڈ پاور ڈیوائسز کی بین الاقوامی سطح پر جدید ٹیکنالوجی میں نسبتاً جلد مہارت حاصل کرتا ہے۔

 

SLKOR الیکٹرانک مصنوعات کے ڈیزائن، ترقی، پیداوار اور فروخت کو مربوط کرنے والا ایک ہائی ٹیک انٹرپرائز ہے۔ یہ صارفین کو قابل اعتماد مصنوعات اور متعلقہ تکنیکی خدمات فراہم کرتا ہے۔ برانڈ"SLKORدنیا بھر میں 10,000 سے زیادہ صارفین کو مصنوعات اور حل پیش کرتے ہوئے آہستہ آہستہ ایک بین الاقوامی شہرت یافتہ بن گیا ہے۔

 

صارفین کو تکمیلی مصنوعات کی مکمل رینج فراہم کرنے کی کوشش کرنے کی کوشش میں، SLKOR نے ڈیجیٹل انفراریڈ تھرموپائل نان کنٹیکٹ درجہ حرارت کی پیمائش ایپلی کیشن ڈیزائن کے ڈیمو بورڈز کے لیے یوزر مینوئلز کا ایک سلسلہ شروع کیا ہے۔

 

1.1 نام: کے لیے صارف دستی SLKOR ڈیجیٹل انفراریڈ تھرموپائل غیر رابطہ درجہ حرارت کی پیمائش ایپلی کیشن ڈیزائن ڈیمو بورڈ

1.2 درخواستیں: سمارٹ پہننے کے قابل آلات، سمارٹ فونز، صنعتی درجہ حرارت کی نگرانی، غیر رابطہ انسانی جسم کی سطح کے درجہ حرارت کی پیمائش، ذہین درجہ حرارت سینسنگ اور کنٹرول اور مختصر فاصلے کے درجہ حرارت کی پیمائش کے لیے دیگر چھوٹے سائز کے آلات۔

1.3 SL-W-TRS-5.5Dx سیریز ڈیمو بورڈ:

یہ مختلف قسم کے سینسروں کی جانچ اور جانچ کے لیے استعمال ہوتا ہے۔ پیمائش کے نتائج اسکرین پر دکھائے جائیں گے اور پی سی پر سیریل پورٹ ڈیبگنگ سافٹ ویئر پر USB کے ذریعے سیریل پورٹ تک پرنٹ کیا جا سکتا ہے۔ بٹن کی تفصیل: بائیں بٹن دوبارہ ترتیب دینے کے لیے ہے، اور دائیں بٹن پروگرام کے آغاز اور توقف کو کنٹرول کر سکتا ہے۔

image.png 

2. SL-W-TRS-5.5Dx سیریز کا ہارڈ ویئر ڈیزائن

 

چپ پنوں میں پاور سپلائی اور I2C بس شامل ہیں، کل 4 پنوں کے ساتھ۔ سپلائی وولٹیج کی قابل اجازت حد 2.3 - 3.6V ہے۔ خود سینسر کی بجلی کی کھپت بہت کم ہے۔ پاور سپلائی گراؤنڈ کے درمیان ایک 0.1uF کپیسیٹر کافی ہے۔ اگر سینسر پاور سپلائی والے حصے سے نسبتاً دور ہے، تو بجلی کی مستحکم فراہمی کو یقینی بنانے اور شور کو کم کرنے کے لیے ایک اضافی 10uF کپیسیٹر پر غور کیا جا سکتا ہے۔

image.png 

 

 

3. SL-W-TRS-5.5Dx سیریز ڈیمو بورڈ کی تفصیل

 

3.1 ڈیمو بورڈ ٹائپ-C ساکٹ سے چلتا ہے، اور ڈیمو بورڈ کے لیے پاور سپلائی وولٹیج 5V ہے۔ جب استعمال میں ہو، ڈیمو بورڈ کو پی سی سے ٹائپ سی کے ذریعے جوڑیں، اور پھر آپ اسکرین پر نتائج دیکھ سکتے ہیں۔ اگر آپ کو سیریل پورٹ کے ذریعے ڈیٹا ڈسپلے کرنے کی ضرورت ہے، تو آپ کو WCH CH340 ڈرائیور پروگرام انسٹال کرنا ہوگا اور پھر آپریٹ کرنے کے لیے سیریل پورٹ ڈیبگنگ سافٹ ویئر استعمال کرنا ہوگا۔ سیریل پورٹ کمیونیکیشن سیٹنگز درج ذیل ہیں: باؤڈ ریٹ: 9600، ڈیٹا بٹس: 8، اسٹاپ بٹس: 1، اور کوئی برابری کی جانچ نہیں۔

 

3.2 اوپر سے نیچے تک ڈیمو بورڈ کا اسکرین ڈسپلے اس طرح ہے: محیط درجہ حرارت (ٹیمب)، سینسر آؤٹ پٹ وولٹیج (vtp_cor)، آبجیکٹ (سطح) کا درجہ حرارت (tobj)، اور انسانی جسم کا درجہ حرارت (tbdy)۔ مندرجہ بالا درجہ حرارت کی قدروں کی اکائی °C ہے، اور وولٹیج کی اکائی μV ہے۔ ان میں سے، پہلی تین قدریں ڈیوائس کی اصل آؤٹ پٹ ہیں۔ جسمانی درجہ حرارت کی قدر کا حساب ہماری کمپنی کے الگورتھم کا استعمال کرتے ہوئے اصل اقدار کی بنیاد پر کیا جاتا ہے اور یہ صرف حوالہ کے لیے ہے۔ صارفین اپنی ضروریات کے مطابق اپنے جسمانی درجہ حرارت کے الگورتھم کا استعمال کرتے ہوئے ڈیٹا پر کارروائی کر سکتے ہیں۔ 

image.png 

سیریل پورٹ ڈسپلے اثر

 

 2. SL-W-TRS-5.5Dx سیریز کے ڈیمو بورڈ پروگرام کی مثال

 

////////////////////////////////////////// ////////////////////////////////////////// //

 // main.c

 //////

 # FOR_CUSTOMER کی وضاحت کریں۔

 #ifdef FOR_CUSTOMER

 # "drv_uart.h" شامل کریں

 

# "drv_i2c.h" شامل کریں

# "drv_key.h" شامل کریں

# "oled/oled.h" شامل کریں

# "trs55d.h" شامل کریں

 

extern void SystemCoreClockupdate(void)؛

extern void delay_ms(int cnt)؛

 انٹرفیس (صفر)

{

uint8_t کلید؛

 uint8_t run = 0x01;

 SystemCoreClockupdate();

اگر (SysTick_Config(SystemCoreClock / 1000))

جبکہ (1)؛

 uartInit ()؛

drv_i2c_init ()؛

drv_key_init ()؛

 

OLED_Init();

 OLED_Refresh();

OLED_Clear();

OLED_ShowString(8,0,"Tamb:",16,1);

OLED_ShowString(8,16,"Vtp:",16,1);

 OLED_ShowChinese(8,32,0,16,1);

OLED_ShowChinese(24,32,2,16,1);

OLED_ShowChinese(40,32,3,16,1);

OLED_ShowChinese(8,48,1,16,1);

 OLED_ShowChinese(24,48,2,16,1);

OLED_ShowChinese(40,48,3,16,1);

OLED_Refresh();

uartSendString("SL-W-TRS-5.5Dx ڈیمو پروگرام ")؛

جبکہ (1) {

key = drv_key_read();

جبکہ(drv_key_read())؛

اگر (کلید) {

 run = (رن)؟ 0:1؛

}

اگر (چلائیں) {

 TRS55D_read();

OLED_Refresh();

}

delay_ms(20)؛

}

}

 

////////////////////////////////////////// ////////////////////////////////////////// //

 //trs55d.h

 //////

#ifndef _TRS55D_H_

# _TRS55D_H_ کی وضاحت کریں

# شامل کریں

#TRS55D_NORMAL_Tobj_MSB_R 0x10 کی وضاحت کریں۔

#TRS55D_NORMAL_Tobj_CSB_R 0x11 کی وضاحت کریں۔

#TRS55D_NORMAL_Tobj_LSB_R 0x12 کی وضاحت کریں۔

 #TRS55D_NORMAL_TEMP_MSB_R 0x16 کی وضاحت کریں۔

#TRS55D_NORMAL_TEMP_CSB_R 0x17 کی وضاحت کریں۔

#TRS55D_NORMAL_TEMP_LSB_R 0x18 کی وضاحت کریں۔

 #TRS55D_NORMAL_DATA1_MSB_R 0x19 کی وضاحت کریں۔

#TRS55D_NORMAL_DATA1_CSB_R 0x1A کی وضاحت کریں۔

 #TRS55D_NORMAL_DATA1_LSB_R 0x1B کی وضاحت کریں۔

 #TRS55D_NORMAL_DATA2_MSB_R 0x1C کی وضاحت کریں۔

 #TRS55D_NORMAL_DATA2_CSB_R 0x1D کی وضاحت کریں۔

#TRS55D_NORMAL_DATA2_LSB_R 0x1E کی وضاحت کریں۔

 #TRS55D_RAW_DATA1_MSB_R 0x22 کی وضاحت کریں۔

 #TRS55D_RAW_DATA1_CSB_R 0x23 کی وضاحت کریں۔

#TRS55D_RAW_DATA1_LSB_R 0x24 کی وضاحت کریں۔

 #TRS55D_RAW_DATA2_MSB_R 0x25 کی وضاحت کریں۔

 #TRS55D_RAW_DATA2_CSB_R 0x26 کی وضاحت کریں۔

 #TRS55D_RAW_DATA2_LSB_R 0x27 کی وضاحت کریں۔

 #TRS55D_RAW_TEMP_MSB_R 0x28 کی وضاحت کریں۔

 #TRS55D_RAW_TEMP_CSB_R 0x29 کی وضاحت کریں۔

#TRS55D_RAW_TEMP_LSB_R 0x2A کی وضاحت کریں۔

 #define ADDR_TRS55D 0xFE //(0x7F << 1)

 # define _STATUS_DRDY_ 0x01 void TRS55D_read(void)؛

#ختم کرو اگر

////////////////////////////////////////// ////////////////////////////////////////// //

// trs55d.c

//////

# شامل کریں

 # "drv_i2c.h" شامل کریں

 # "trs55d.h" شامل کریں

 # "body_temp.h" شامل کریں

 extern uint8_t uartSendString(const char* buf)؛

extern void OLED_ShowString(uint8_t x,uint8_t y, const char *chr,uint8_t size1,uint8_t موڈ)؛

 extern void OLED_ShowBNum(uint8_t x,uint8_t y,float num,uint8_t len,

uint8_t size2، uint8_t موڈ؛ uint8_t TRS55D_IIC_Read(uint8_t addr_dev, uint8_t addr_reg،

uint8_t *buf، uint16_t شمار)

{

uint8_t ret;

uint8_t ackflag؛

uint16_t i = 0;

drv_i2c_start();

drv_i2c_select_dev(addr_dev,DRV_I2C_OPWR)؛

 

drv_i2c_writebyte(addr_reg)؛

 drv_i2c_start();

drv_i2c_select_dev(addr_dev,DRV_I2C_OPRD)؛

برائے (i = 0؛ i < شمار؛ i ++) { ackflag = (i < (count-1)) ? 1:0؛ بوف [میں]

 = drv_i2c_readbyte(ackflag)؛

 }

drv_i2c_stop();

 واپسی ریٹ؛

 }

 

void TRS55D_IIC_Write(uint8_t addr_dev, uint8_t addr_reg, uint8_t *buf, uint16_t شمار)

 {

 uint16_t i = 0;

drv_i2c_start();

drv_i2c_select_dev(addr_dev,DRV_I2C_OPWR)؛

drv_i2c_writebyte(addr_reg)؛

 کے لیے (i = 0؛ i < شمار؛ i ++)

 { drv_i2c_writebyte(buf[i])؛

}

drv_i2c_stop();

}

 ٹائپ ڈیف یونین{

int16_t i16;

uint16_t u16;

ساخت {

uint8_t u8l;

uint8_t u8h;

 }un

}uu16_t;

 

ٹائپ ڈیف یونین{

int32_t i32;

ساخت {

uint8_t u8b0;

uint8_t u8b1;

uint8_t u8b2;

uint8_t u8b3;

}un

 }uu32_t;

 

جامد چار بفر[264]؛

 uu32_t tobj, tamb_cal;

 

uu32_t vtp_cor؛

فلوٹ vtp_uv_f = 0.0;

فلوٹ vtp_cor_f = 0.0;

فلوٹ tambf = 0.0؛ float tobjf = 0.0؛

 فلوٹ tbdyf = 0.0؛

 void TRS55D_read(void)

{

uint8_t rbuf[4]؛

uint8_t raddr,rdat;

 uint8_t waddr = 0x0, wdat = 0x0;

int ٹائم آؤٹ = 0؛

 

waddr = 0x30;

wdat = 0x09;

TRS55D_IIC_Write(ADDR_TRS55D, waddr, &wdat,1);

 // تبادلوں کا آغاز تاخیر_ms(100)؛

 

// تبادلوں کا انتظار کریں۔

raddr = 0x03؛

کیا {

TRS55D_IIC_Read (ADDR_TRS55D, raddr, &rdat,1);

} جبکہ((rdat == 0xFF) || (!(rdat & 0x30))) && ٹائم آؤٹ ++

raddr = 0x02؛

 کیا {

TRS55D_IIC_Read (ADDR_TRS55D, raddr, &rdat,1);

} جبکہ(((rdat == 0xFF) || (!(rdat & 0x0B))) && ٹائم آؤٹ ++

 

 // انشانکن کے بعد وولٹیج کی قیمت

raddr = TRS55D_NORMAL_DATA1_MSB_R؛

TRS55D_IIC_Read (ADDR_TRS55D, raddr,&rbuf[0],3);

vtp_cor.un.u8b2 = rbuf[0]؛

 vtp_cor.un.u8b1 = rbuf[1]؛

vtp_cor.un.u8b0 =rbuf[2]؛

 اگر (vtp_cor.un.u8b2 & 0x80) { vtp_cor.un.u8b3 = 0xFF؛

}اور {

vtp_cor.un.u8b3 = 0x00;

// درست کرنے کے بعد vtp

}

vtp_cor_f = (float)vtp_cor.i32/524288.0؛

vtp_cor_f *= 1000؛

// انشانکن کے بعد محیط درجہ حرارت کی قدر

 raddr = TRS55D_NORMAL_TEMP_MSB_R؛

TRS55D_IIC_Read (ADDR_TRS55D,raddr,&rbuf[0],3);

 tamb_cal.un.u8b2 = rbuf[0]؛

tamb_cal.un.u8b1 =rbuf[1]؛

tamb_cal.un.u8b0 =rbuf[2]؛

tambf = (float) tamb_cal.i32 / 16384.0؛ // محیطی درجہ حرارت

 

// انشانکن کے بعد آبجیکٹ (سطح) کا درجہ حرارت

raddr = TRS55D_NORMAL_Tobj_MSB_R؛

TRS55D_IIC_Read (ADDR_TRS55D,raddr,&rbuf[0],3);

 tobj.un.u8b2 = rbuf[0]؛ tobj.un.u8b1 = rbuf[1]؛

tobj.un.u8b0 =rbuf[2]؛ tobjf = (float)tobj.i32 / 16384.0؛

// آبجیکٹ (سطح) کا درجہ حرارت

 

// جسمانی درجہ حرارت حاصل کریں۔

tbdyf = get_body_temp(tambf,tobjf)؛ // جسمانی درجہ حرارت حاصل کریں۔

 

// uart sprintf پر ڈسپلے (buffer, "tamb = %.2f, vtp_cor = %.2f, tobj = %.2f, tbdy = %.2f ", tambf, vtp_cor_f, tobjf, tbdyf)؛ uartSendString(بفر)؛

 

// oled پر ڈسپلے

 float vals[4] = {tambf, vtp_cor_f, tobjf, tbdyf+0.05};

 OLED_ShowBNum (64, 0, vals[0], 4, 16, 1); // ٹمب

OLED_ShowBNum (48, 16, vals[1], 6, 16, 1); // vtp

OLED_ShowString(112,16, "uv", 16, 1);

OLED_ShowBNum (64, 32, vals[2], 4, 16, 1); // ٹوبج

OLED_ShowBNum (64, 48, vals[3], 4, 16, 1); // Tbdy

}

whatsapp

Service Hotline

tel: +86 755 83044319

WhatsApp

Whatsapp:+8618073002950