Solutions
Solutions

Buka ea mosebelisi bakeng sa SL-W-TRS-5.5Dx Digital Infrared Thermopile Demo Board

2024-12-13 1652
SLKOR Micro Semicon Co., Ltd. e na le mokokotlo oa eona oa tekheniki o tsoang Univesithing ea Tsinghua le Univesithi ea Yonsei e Korea Boroa. E etella pele nts'etsopele ea k'hamphani ka lisebelisoa tse ncha, lits'ebetso tse ncha le lihlahisoa tse ncha, 'me e tseba theknoloji e tsoetseng pele ea machaba ea lisebelisoa tsa motlakase tsa semiconductor silicon carbide pele ho nako.

 

SLKOR ke khoebo ea theknoloji e phahameng e kopanyang moralo, nts'etsopele, tlhahiso le thekiso ea lihlahisoa tsa elektroniki. E fa bareki lihlahisoa tse tšepahalang le lits'ebeletso tse tsamaellanang tsa tekheniki. Lebitso "SLKOR"E se e fetohile e tsebahalang lefatšeng ka bophara, e fana ka lihlahisoa le tharollo ho bareki ba fetang 10,000 lefatšeng ka bophara.

 

E le ho leka ho fa bareki mefuta e mengata ea lihlahisoa tse tlatselletsang, SLKOR e phatlalalitse letoto la libuka tsa mosebelisi bakeng sa liboto tsa demo tsa dijithale tsa infrared thermopile meralo ea ts'ebeliso ea lisebelisoa tsa ho metha mocheso.

 

1.1 Lebitso: Buka ea mosebelisi bakeng sa SLKOR Digital Infrared Thermopile Non-Contact Temperature Measurement Application Design Demo Board

1.2 Likopo: Lisebelisoa tse bohlale tse aparoang, lifono tse bohlale, tlhahlobo ea mocheso oa indasteri, tekanyo ea mocheso oa 'mele oa motho e sa amaneng le motho, ho lemoha le ho laola mocheso le lisebelisoa tse ling tse nyane bakeng sa ho metha mocheso oa nako e khuts'oane.

1.3 SL-W-TRS-5.5Dx Series Demo Board:

E sebelisetsoa ho lekola le ho etsa liteko tsa mefuta e fapaneng ea li-sensor. Liphetho tsa litekanyo li tla hlahisoa skrineng 'me li ka hatisoa ho software ea serial port debugging ho PC ka USB ho ea ho serial port. Tlhaloso ea konopo: Konopo e ka letsohong le letšehali ke ea ho seta bocha, 'me konopo e nepahetseng e ka laola ho qala le ho emisa ha lenaneo.

image.png 

2. Moralo oa Hardware oa SL-W-TRS-5.5Dx Series

 

Li-chip pins li kenyelletsa phepelo ea motlakase le bese ea I2C, e nang le palo ea lipini tse 4. Mofuta o lumelletsoeng oa motlakase oa phepelo ke 2.3 - 3.6V. Sensor ka boeona e na le matla a tlaase haholo a sebelisoang. Capacitor ea 0.1uF lipakeng tsa sebaka sa phepelo ea motlakase e lekane. Haeba sensor e batla e le hole le karolo ea phepelo ea matla, ho ka nahanoa ka capacitor e eketsehileng ea 10uF ho netefatsa phepelo e tsitsitseng ea matla le ho fokotsa lerata.

image.png 

 

 

3. Tlhaloso ea SL-W-TRS-5.5Dx Series Demo Board

 

3.1 Boto ea demo e tsamaisoa ke sokete ea Mofuta oa C, 'me motlakase oa phepelo ea motlakase bakeng sa boto ea demo ke 5V. Ha e sebelisoa, hokela boto ea demo ho PC ka Mofuta oa C, 'me u ka sheba liphetho skrineng. Haeba o hloka ho bonts'a data ka boema-kepe ba serial, o kopuoa ho kenya lenaneo la mokhanni oa WCH CH340 ebe o sebelisa software ea serial port debugging ho sebetsa. Litlhophiso tsa likhokahano tsa serial port li tjena: Sekhahla sa Baud: 9600, Likotoana tsa data: 8, Stop bits: 1, 'me ha ho cheke ea tekano.

 

3.2 Pontšo ea skrine ea boto ea demo ho tloha holimo ho ea tlase ke ka tsela e latelang: mocheso o potolohileng (tamb), sensor output voltage (vtp_cor), mocheso oa ntho (boholimo) (tobj), le mocheso oa 'mele oa motho (tbdy). Yuniti ea boleng ba mocheso o kaholimo ke °C, 'me yuniti ea motlakase ke μV. Har'a bona, litekanyetso tse tharo tsa pele ke lihlahisoa tsa pele tsa sesebelisoa. Theko ea mocheso oa 'mele e baloa ho ipapisitsoe le boleng ba mantlha ho sebelisoa algorithm ea k'hamphani ea rona 'me ke ea litšupiso feela. Basebelisi ba ka sebetsana le data ba sebelisa li-algorithms tsa bona tsa mocheso oa 'mele ho latela litlhoko tsa bona. 

image.png 

serial port display effect

 

 2. Mohlala oa lenaneo la boto ea demo ea letoto la SL-W-TRS-5.5Dx

 

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

 // ka sehloohong.c

 /////

 #define FOR_CUSTOMER

 #ifdef BAKENG SA_MOREKI

 # kenyeletsa "drv_uart.h"

 

#kenyelletsa "drv_i2c.h"

# kenyeletsa "drv_key.h"

#kenyelletsa "oled/oled.h"

#kenyelletsa "trs55d.h"

 

Extern void SystemCoreClockupdate(lefela);

extern void delay_ms(int cnt);

 int main (haelloang)

{

senotlolo sa uint8_t;

 uint8_t run = 0x01;

 SystemCoreClockupdate();

haeba (SysTick_Config(SystemCoreClock / 1000))

ha(1);

 uartInit();

drv_i2c_init();

drv_key_init();

 

OLED_Init();

 OLED_Refresh();

OLED_E hlakileng();

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 lenaneo la Demo ");

ha(1) {

key = drv_key_read();

ha (drv_key_read());

haeba (senotlolo) {

 matha = ( matha)?0:1;

}

haeba ( matha) {

 TRS55D_bala();

OLED_Refresh();

}

delay_ms(20);

}

}

 

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

 //trs55d.h

 /////

#ifndef _TRS55D_H_

#define _TRS55D_H_

Ho kopanya #

#define TRS55D_NORMAL_Tobj_MSB_R 0x10

#define TRS55D_NORMAL_Tobj_CSB_R 0x11

#define TRS55D_NORMAL_Tobj_LSB_R 0x12

 #define TRS55D_NORMAL_TEMP_MSB_R 0x16

#define TRS55D_NORMAL_TEMP_CSB_R 0x17

#define TRS55D_NORMAL_TEMP_LSB_R 0x18

 #define TRS55D_NORMAL_DATA1_MSB_R 0x19

#define TRS55D_NORMAL_DATA1_CSB_R 0x1A

 #define TRS55D_NORMAL_DATA1_LSB_R 0x1B

 #define TRS55D_NORMAL_DATA2_MSB_R 0x1C

 #define TRS55D_NORMAL_DATA2_CSB_R 0x1D

#define TRS55D_NORMAL_DATA2_LSB_R 0x1E

 #define TRS55D_RAW_DATA1_MSB_R 0x22

 #define TRS55D_RAW_DATA1_CSB_R 0x23

#define TRS55D_RAW_DATA1_LSB_R 0x24

 #define TRS55D_RAW_DATA2_MSB_R 0x25

 #define TRS55D_RAW_DATA2_CSB_R 0x26

 #define TRS55D_RAW_DATA2_LSB_R 0x27

 #define TRS55D_RAW_TEMP_MSB_R 0x28

 #define TRS55D_RAW_TEMP_CSB_R 0x29

#define TRS55D_RAW_TEMP_LSB_R 0x2A

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

 #define _STATUS_DRDY_ 0x01 void TRS55D_read(boid);

#ho qetela

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

// trs55d.c

/////

Ho kopanya #

 #kenyelletsa "drv_i2c.h"

 #kenyelletsa "trs55d.h"

 # kenyeletsa "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 mode);

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

uint8_t size2,uint8_t mode); uint8_t TRS55D_IIC_Read(uint8_t addr_dev, uint8_t addr_reg,

uint8_t *buf, uint16_t count)

{

uint8_t ret;

uint8_t ackflag;

uint16_t ke = 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);

bakeng sa(ke = 0; ke <bala; ke ++) {akflag = (ke <(palo-1))? 1:0; buf[i]

 = drv_i2c_readbyte(ackflag);

 }

drv_i2c_stop();

 return ret;

 }

 

lefeela TRS55D_IIC_Write(uint8_t addr_dev, uint8_t addr_reg, uint8_t *buf, uint16_t count)

 {

 uint16_t ke = 0;

drv_i2c_start();

drv_i2c_select_dev(addr_dev,DRV_I2C_OPWR);

drv_i2c_writebyte(addr_reg);

 bakeng sa (ke = 0; ke <bala; ke ++)

 {drv_i2c_writebyte(buf[i]);

}

drv_i2c_stop();

}

 typedef union{

int16_t i16;

uint16_t u16;

sebopeho {

uint8_t u8l;

uint8_t u8h;

 }un;

}uu16_t;

 

typedef union{

int32_t i32;

sebopeho {

uint8_t u8b0;

uint8_t u8b1;

uint8_t u8b2;

uint8_t u8b3;

}un;

 }uu32_t;

 

static char buffer[264];

 uu32_t tobj, tamb_cal;

 

uu32_t vtp_cor;

float vtp_uv_f = 0.0;

float vtp_cor_f = 0.0;

float tambf = 0.0; float tobjf = 0.0;

 float tbdyf = 0.0;

 lefeela TRS55D_read(void)

{

uint8_t rbuf[4];

uint8_t raddr,rdat;

 uint8_t waddr = 0x0, wdat = 0x0;

int timeout=0;

 

boima = 0x30;

wdat = 0x09;

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

 //start conversion delay_ms(100);

 

// Ho emela phetolo

raddr = 0x03;

etsa {

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

} ha(((rdat == 0xFF) || (!(rdat & 0x30))) && timeout++ <200);

raddr = 0x02;

 etsa {

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

} ha(((rdat == 0xFF) || (!(rdat & 0x0B))) && timeout++ <200);

 

 // boleng ba motlakase ka mor'a ho lekanya

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];

 haeba (vtp_cor.un.u8b2 & 0x80) {vtp_cor.un.u8b3 = 0xFF;

} tse ling {

vtp_cor.un.u8b3 = 0x00;

// vtp ka mora ho lokisoa

}

vtp_cor_f = (float)vtp_cor.i32/524288.0;

vtp_cor_f *= 1000;

// boleng ba mocheso o tikolohong kamora ho lekanya

 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; // Mocheso wa tikoloho

 

// Mocheso wa ntho (kahodimo) ka mora ho lekanya

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;

// Mocheso wa ntho (kahodimo).

 

// ho hema mmele

tbdyf = get_body_temp(tambf,tobjf); // ho hema mmele

 

// pontsho ho uart sprintf(buffer, "tamb = %.2f, vtp_cor = %.2f, tobj = %.2f, tbdy = %.2f ", tambf, vtp_cor_f, tobjf, tbdyf); uartSendString(buffer);

 

// pontsho hodima oled

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

 OLED_ShowBNum (64, 0, vals[0], 4, 16, 1); // Taba

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

}

Litlhahiso Tse Amanang
whatsapp

Mohala oa Tšebeletso

Mohala: + 86 755 83044319

whatsapp

Whatsapp: +8618073002950