I-hotline yensiza
Imanuwali yomsebenzisi ye-SL-W-TRS-5.5Dx Digital Infrared Thermopile Demo Board
SLKOR iyibhizinisi lobuchwepheshe obuphezulu elihlanganisa ukuklama, ukuthuthukiswa, ukukhiqizwa nokuthengiswa kwemikhiqizo ye-elekthronikhi. Ihlinzeka amakhasimende ngemikhiqizo enokwethenjelwa kanye nezinsizakalo zobuchwepheshe ezihambisanayo. Ibhrendi "SLKOR"Ithuthuke kancane kancane yaba edume umhlaba wonke, inikezela ngemikhiqizo nezisombululo kumakhasimende angaphezu kuka-10,000 emhlabeni jikelele.
Emzamweni wokulwela ukunikeza amakhasimende uhla olugcwele lwemikhiqizo ehambisanayo, SLKOR yethule uchungechunge lwezincwadi zokusebenzisa amabhodi edemo wemiklamo yezinhlelo zokusebenza zokulinganisa izinga lokushisa le-infrared thermopile okungezona okuthintana nalo.
1.1 Igama: Incwadi Yomsebenzisi ye SLKOR Ibhodi Ledemo Yesicelo Sokukala Isilinganiso Sokushisa Kwedijithali ye-Infrared Infrared Thermopile
Izicelo: Imishini egqokekayo ehlakaniphile, amafoni ahlakaniphile, ukuqapha izinga lokushisa kwezimboni, ukukalwa kwezinga lokushisa komzimba womuntu okungathinteki, inzwa yokushisa ehlakaniphile nokulawula namanye amadivaysi anosayizi omncane wokulinganisa izinga lokushisa lebanga elifushane.
1.3 SL-W-TRS-5.5Dx Series Demo Board:
Isetshenziselwa ukuhlola nokuhlola izinhlobo ezahlukene zezinzwa. Imiphumela yokulinganisa izovezwa esikrinini futhi ingaphrintwa kusofthiwe ye-serial yokulungisa iphutha lembobo ku-PC nge-USB kuya kumbobo ye-serial. Incazelo yenkinobho: Inkinobho yangakwesokunxele eyokusethwa kabusha, futhi inkinobho yesokudla ingalawula ukuqala nokumiswa kohlelo.
2. Idizayini yezingxenyekazi zekhompuyutha ye-SL-W-TRS-5.5Dx Series
Izikhonkwane ze-chip zihlanganisa ukunikezwa kwamandla kanye nebhasi ye-I2C, enenani lamaphini angu-4. Ibanga elivumelekile le-voltage yokuhlinzeka ngu-2.3 - 3.6V. Inzwa ngokwayo inokusetshenziswa kwamandla okuphansi kakhulu. I-capacitor engu-0.1uF phakathi kwendawo yokunikeza amandla yanele. Uma inzwa ikude kakhulu nengxenye yokuphakelwa kwamandla, i-capacitor eyengeziwe engu-10uF ingacatshangelwa ukuze kuqinisekiswe ukunikezwa kwamandla okuzinzile nokunciphisa umsindo.
3. Incazelo ye-SL-W-TRS-5.5Dx Series Demo Board
3.1 Ibhodi ledemo linikwa amandla isokhethi yohlobo C, futhi amandla kagesi ebhodi ledemo ngu-5V. Uma isetshenziswa, xhuma ibhodi ledemo ku-PC ngo-Type-C, bese ungakwazi ukubuka imiphumela esikrinini. Uma udinga ukukhombisa idatha ngembobo ye-serial, kudingeka ukuthi ufake uhlelo lomshayeli lwe-WCH CH340 bese usebenzisa isofthiwe ye-serial yokulungisa iphutha lembobo ukuze usebenze. Izilungiselelo zokuxhumana kwembobo yochungechunge zimi kanje: Izinga le-Baud: 9600, Amabhithi edatha: 8, Amabhithi wokumisa: 1, futhi akukho ukuhlola kokulingana.
3.2 Ukuboniswa kwesikrini kwebhodi ledemo ukusuka phezulu kuye phansi kungokulandelayo: izinga lokushisa le-ambient (tamb), i-sensor output voltage (vtp_cor), izinga lokushisa lento (engaphezulu) (tobj), kanye nezinga lokushisa lomzimba womuntu (tbdy). Iyunithi yamanani okushisa angenhla ngu-°C, kanti iyunithi ye-voltage ingu-μV. Phakathi kwazo, amanani amathathu okuqala yimiphumela yasekuqaleni yedivayisi. Inani lokushisa komzimba libalwa ngokusekelwe kumanani okuqala kusetshenziswa i-algorithm yenkampani yethu futhi ingeyereferensi kuphela. Abasebenzisi bangacubungula idatha besebenzisa ama-algorithms abo okushisa komzimba ngokuya ngezidingo zabo.
Umphumela wokuboniswa kwembobo ye-serial
2. Isibonelo sohlelo lwebhodi ledemo lochungechunge lwe-SL-W-TRS-5.5Dx
/////////////////////////////////////////// /////////////////////////////////////////// //
// main.c
//XNUMX
#chaza FOR_CUSTOMER
#ifdef FOR_CUSTOMER
#ihlanganisa "drv_uart.h"
#ihlanganisa "drv_i2c.h"
#faka phakathi "drv_key.h"
#faka phakathi "oled/oled.h"
#faka phakathi "trs55d.h"
i-extern void SystemCoreClockupdate(engenalutho);
i-extern void delay_ms(int cnt);
int main (ayikho)
{
uint8_t ukhiye;
uint8_t run = 0x01;
I-SystemCoreClockupdate();
uma (SysTick_Config(SystemCoreClock / 1000))
ngenkathi(1);
uartInit();
drv_i2c_init();
drv_key_init();
OLED_Init();
OLED_Vuselela();
OLED_Sula();
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_Vuselela();
uartSendString("I-SL-W-TRS-5.5Dx Uhlelo lwedemo ");
ngenkathi(1) {
key = drv_key_read();
ngenkathi(drv_key_read());
uma (ukhiye) {
gijima = (gijima)?0:1;
}
uma (gijima) {
I-TRS55D_read();
OLED_Vuselela();
}
delay_ms(20);
}
}
/////////////////////////////////////////// /////////////////////////////////////////// //
//trs55d.h
//XNUMX
#ifndef _TRS55D_H_
#chaza _TRS55D_H_
#hlanganisa
#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)
#chaza _STATUS_DRDY_ 0x01 void TRS55D_read(engenalutho);
#okugcina
/////////////////////////////////////////// /////////////////////////////////////////// //
// trs55d.c
//XNUMX
#hlanganisa
#ihlanganisa "drv_i2c.h"
#faka phakathi "trs55d.h"
#faka phakathi "isimo_somzimba.h"
extern uint8_t uartSendString(const char* buf);
i-extern void OLED_ShowString(uint8_t x,uint8_t y, const char *chr,uint8_t size1,uint8_t mode);
i-extern void OLED_ShowBNum(uint8_t x,uint8_t y,float num,uint8_t len,
imodi ye-uint8_t size2,uint8_t); 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 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);
for(i = 0; i < count; i ++) { ackflag = (i < (count-1))? 1:0; buf[i]
= drv_i2c_readbyte(ackflag);
}
drv_i2c_stop();
buyisela kabusha;
}
i-void TRS55D_IIC_Write(uint8_t addr_dev, uint8_t addr_reg, uint8_t *buf, uint16_t count)
{
uint16_t i = 0;
drv_i2c_start();
drv_i2c_select_dev(addr_dev,DRV_I2C_OPWR);
drv_i2c_writebyte(addr_reg);
ngoba (i = 0; i < count; i ++)
{drv_i2c_writebyte(buf[i]);
}
drv_i2c_stop();
}
typedef union{
int16_t i16;
uint16_t u16;
yakha {
uint8_t u8l;
uint8_t u8h;
}un;
}uu16_t;
typedef union{
int32_t i32;
yakha {
uint8_t u8b0;
uint8_t u8b1;
uint8_t u8b2;
uint8_t u8b3;
}un;
}uu32_t;
i-static char buffer[264];
uu32_t tobj, tamb_cal;
uu32_t vtp_cor;
iflothi vtp_uv_f = 0.0;
iflothi vtp_cor_f = 0.0;
iflothi tambf = 0.0; i-float tobjf = 0.0;
i-float tbdyf = 0.0;
i-TRS55D_read(engenalutho)
{
uint8_t rbuf[4];
uint8_t raddr,rdat;
uint8_t waddr = 0x0, wdat = 0x0;
int timeout=0;
waddr = 0x30;
wdat = 0x09;
TRS55D_IIC_Write(ADDR_TRS55D, waddr, &wdat,1);
//start ukuguqulwa delay_ms(100);
// linda ukuguqulwa kudlule
raddr = 0x03;
yenza {
TRS55D_IIC_Read (ADDR_TRS55D, raddr, &rdat,1);
} ngenkathi(((rdat == 0xFF) || (!(rdat & 0x30))) && timeout++ <200);
raddr = 0x02;
yenza {
TRS55D_IIC_Read (ADDR_TRS55D, raddr, &rdat,1);
} ngenkathi(((rdat == 0xFF) || (!(rdat & 0x0B))) && timeout++ <200);
// inani le-voltage ngemuva kokulinganisa
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];
uma (vtp_cor.un.u8b2 & 0x80) {vtp_cor.un.u8b3 = 0xFF;
}okunye {
vtp_cor.un.u8b3 = 0x00;
// vtp ngemva kokulungiswa
}
vtp_cor_f = (ntanta)vtp_cor.i32/524288.0;
vtp_cor_f *= 1000;
// inani lokushisa elizungezile ngemva kokulinganisa
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 = (ntanta)tamb_cal.i32 / 16384.0; // izinga lokushisa elizungezile
// izinga lokushisa lezinto (ezingaphezulu) ngemuva kokulinganisa
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 = (ntanta)tobj.i32 / 16384.0;
// izinga lokushisa lento(ubuso).
// uthole ukushisa komzimba
tbdyf = get_body_temp(tambf,tobjf); // uthole ukushisa komzimba
// bonisa ku-uart sprintf(buffer, "tamb = %.2f, vtp_cor = %.2f, tobj = %.2f, tbdy = %.2f ", tambf, vtp_cor_f, tobjf, tbdyf); uartSendString(buffer);
// bonisa ku-oled
ama-float vals[4] = {tambf, vtp_cor_f, tobjf, tbdyf+0.05};
OLED_ShowBNum (64, 0, vals[0], 4, 16, 1); // Tamb
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); // Thobe
OLED_ShowBNum (64, 48, vals[3], 4, 16, 1); // Tbdy
}


粤公网安备44030002007346号