Mohala oa Tšebeletso
Buka ea mosebelisi bakeng sa SL-W-TRS-5.5Dx Digital Infrared Thermopile Demo Board
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.
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.
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.
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
}


粤公网安备44030002007346号