उपाय
उपाय

SL-W-TRS-5.5Dx डिजिटल इन्फ्रारेड थर्मोपाइल डेमो बोर्डसाठी वापरकर्ता पुस्तिका

2024-12-13 1652
SLKOR मायक्रो सेमिकॉन कं, लिमिटेड, दक्षिण कोरियातील सिंघुआ विद्यापीठ आणि योन्सेई विद्यापीठातून त्याचे तांत्रिक पाठबळ आले आहे. हे नवीन साहित्य, नवीन प्रक्रिया आणि नवीन उत्पादनांसह कंपनीच्या विकासाचे नेतृत्व करते आणि तिसऱ्या पिढीतील सेमीकंडक्टर सिलिकॉन कार्बाइड पॉवर डिव्हाइसेसच्या आंतरराष्ट्रीय स्तरावरील प्रगत तंत्रज्ञानामध्ये तुलनेने लवकर प्रभुत्व मिळवते.

 

SLKOR इलेक्ट्रॉनिक उत्पादनांचे डिझाईन, विकास, उत्पादन आणि विक्री एकत्रित करणारा एक उच्च-तंत्रज्ञान उपक्रम आहे. हे ग्राहकांना विश्वसनीय उत्पादने आणि संबंधित तांत्रिक सेवा प्रदान करते. ब्रँड "SLKORजगभरातील 10,000 हून अधिक ग्राहकांना उत्पादने आणि समाधाने ऑफर करून, हळूहळू आंतरराष्ट्रीय ख्यातीचे बनले आहे.

 

ग्राहकांना पूरक उत्पादनांची संपूर्ण श्रेणी प्रदान करण्याचा प्रयत्न करण्याच्या प्रयत्नात, SLKOR ने डिजिटल इन्फ्रारेड थर्मोपाइल नॉन-कॉन्टॅक्ट तापमान मापन ऍप्लिकेशन डिझाइन्सच्या डेमो बोर्डसाठी वापरकर्ता पुस्तिकांची मालिका सुरू केली आहे.

 

1.1 नाव: साठी वापरकर्ता मॅन्युअल SLKOR डिजिटल इन्फ्रारेड थर्मोपाइल नॉन-संपर्क तापमान मापन अनुप्रयोग डिझाइन डेमो बोर्ड

२.२ अनुप्रयोग: स्मार्ट घालण्यायोग्य उपकरणे, स्मार्ट फोन, औद्योगिक तापमान निरीक्षण, संपर्क नसलेल्या मानवी शरीराच्या पृष्ठभागाचे तापमान मापन, बुद्धिमान तापमान संवेदन आणि नियंत्रण आणि लहान-श्रेणी तापमान मोजण्यासाठी इतर लहान-आकाराची उपकरणे.

1.3 SL-W-TRS-5.5Dx मालिका डेमो बोर्ड:

हे विविध प्रकारच्या सेन्सर्सचे मूल्यांकन आणि चाचणीसाठी वापरले जाते. मोजमाप परिणाम स्क्रीनवर प्रदर्शित केले जातील आणि USB ते सिरीयल पोर्ट द्वारे पीसीवरील सिरीयल पोर्ट डीबगिंग सॉफ्टवेअरवर मुद्रित केले जाऊ शकतात. बटण वर्णन: डावे बटण रीसेट करण्यासाठी आहे, आणि उजवे बटण प्रोग्राम सुरू आणि विराम नियंत्रित करू शकते.

image.png 

2. SL-W-TRS-5.5Dx मालिकेचे हार्डवेअर डिझाइन

 

चिप पिनमध्ये एकूण 2 पिनसह वीज पुरवठा आणि I4C बस समाविष्ट आहे. पुरवठा व्होल्टेजची स्वीकार्य श्रेणी 2.3 - 3.6V आहे. सेन्सरचा स्वतःचा वीज वापर खूप कमी आहे. वीज पुरवठा ग्राउंड दरम्यान एक 0.1uF कॅपेसिटर पुरेसे आहे. सेन्सर वीज पुरवठा भागापासून तुलनेने दूर असल्यास, स्थिर वीज पुरवठा सुनिश्चित करण्यासाठी आणि आवाज कमी करण्यासाठी अतिरिक्त 10uF कॅपेसिटरचा विचार केला जाऊ शकतो.

image.png 

 

 

3. SL-W-TRS-5.5Dx मालिका डेमो बोर्डचे वर्णन

 

3.1 डेमो बोर्ड टाइप-सी सॉकेटद्वारे समर्थित आहे आणि डेमो बोर्डसाठी वीज पुरवठा व्होल्टेज 5V आहे. वापरात असताना, Type-C द्वारे डेमो बोर्ड पीसीशी कनेक्ट करा आणि त्यानंतर तुम्ही स्क्रीनवर परिणाम पाहू शकता. तुम्हाला सिरीयल पोर्टद्वारे डेटा प्रदर्शित करायचा असल्यास, तुम्हाला WCH CH340 ड्राइव्हर प्रोग्राम स्थापित करणे आवश्यक आहे आणि नंतर ऑपरेट करण्यासाठी सीरियल पोर्ट डीबगिंग सॉफ्टवेअर वापरणे आवश्यक आहे. सीरियल पोर्ट कम्युनिकेशन सेटिंग्ज खालीलप्रमाणे आहेत: बॉड रेट: 9600, डेटा बिट: 8, स्टॉप बिट्स: 1, आणि पॅरिटी चेक नाही.

 

3.2 वरपासून खालपर्यंत डेमो बोर्डचा स्क्रीन डिस्प्ले खालीलप्रमाणे आहे: सभोवतालचे तापमान (tamb), सेन्सर आउटपुट व्होल्टेज (vtp_cor), ऑब्जेक्ट (पृष्ठभाग) तापमान (tobj), आणि मानवी शरीराचे तापमान (tbdy). वरील तापमान मूल्यांचे एकक °C आहे आणि व्होल्टेजचे एकक μV आहे. त्यापैकी, पहिली तीन मूल्ये डिव्हाइसचे मूळ आउटपुट आहेत. शरीराचे तापमान मूल्य आमच्या कंपनीच्या अल्गोरिदमचा वापर करून मूळ मूल्यांवर आधारित मोजले जाते आणि ते केवळ संदर्भासाठी आहे. वापरकर्ते त्यांच्या गरजेनुसार त्यांच्या शरीराचे तापमान अल्गोरिदम वापरून डेटावर प्रक्रिया करू शकतात. 

image.png 

सिरीयल पोर्ट प्रदर्शन प्रभाव

 

 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 delay_ms(int cnt);

 इंट मेन (शून्य)

{

uint8_t की;

 uint8_t रन = 0x01;

 सिस्टमकोरक्लॉकअपडेट();

जर (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) {

की = drv_key_read();

असताना(drv_key_read());

जर (की) {

 रन = (धाव)?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 परिभाषित करा

 #ADDR_TRS55D 0xFE //(0x7F << 1) परिभाषित करा

 #परिभाषित करा _STATUS_DRDY_ 0x01 void TRS55D_read(void);

#शेवट

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

// trs55d.c

//////

# अंतर्भूत

 # "drv_i2c.h" समाविष्ट करा

 # "trs55d.h" समाविष्ट करा

 # "body_temp.h" समाविष्ट करा

 extern uint8_t uartSendString(const char* buf);

बाह्य शून्य OLED_ShowString(uint8_t x,uint8_t y, const char *chr,uint8_t size1,uint8_t मोड);

 बाह्य शून्य OLED_ShowBNum(uint8_t x,uint8_t y,float num,uint8_t len,

uint8_t आकार2, 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 < count; 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;

 }अन;

}uu16_t;

 

टाइपडेफ युनियन{

int32_t i32;

रचना {

uint8_t u8b0;

uint8_t u8b1;

uint8_t u8b2;

uint8_t u8b3;

}अन;

 }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; फ्लोट 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);

 //प्रारंभ रूपांतरण delay_ms(100);

 

// रूपांतरणाची प्रतीक्षा करा

raddr = 0x03;

करा {

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

} तर((rdat == 0xFF) || (!(rdat & 0x30)) && कालबाह्य++ < 200);

raddr = 0x02;

 करा {

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

} तर(((rdat == 0xFF) || (!(rdat & 0x0B))) && कालबाह्य++ < 200);

 

 // कॅलिब्रेशन नंतर व्होल्टेज मूल्य

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 वर प्रदर्शित करा(बफर, "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); // Tobj

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

}

संबंधित शिफारसी
whatsapp

सेवा हॉटलाइन

दूरध्वनीः + 86 755 83044319

व्हाट्सअँप

व्हॉट्सअ‍ॅप: +8618073002950