Gwifren Gwasanaeth
Llawlyfr Defnyddiwr ar gyfer Bwrdd Demo Thermopil Is-goch Digidol SL-W-TRS-5.5Dx
SLKOR yn fenter uwch-dechnoleg sy'n integreiddio dylunio, datblygu, cynhyrchu a gwerthu cynhyrchion electronig. Mae'n darparu cwsmeriaid gyda chynhyrchion dibynadwy a gwasanaethau technegol cyfatebol. Mae'r brand"SLKOR" wedi datblygu'n raddol i fod yn un o fri rhyngwladol, gan gynnig cynhyrchion ac atebion i fwy na 10,000 o gwsmeriaid ledled y byd.
Mewn ymdrech i ymdrechu i ddarparu ystod lawn o gynhyrchion cyflenwol i gwsmeriaid, SLKOR wedi lansio cyfres o lawlyfrau defnyddwyr ar gyfer y byrddau arddangos o ddyluniadau cais mesur tymheredd di-gyswllt thermopile isgoch digidol.
1.1 Enw: Llawlyfr Defnyddiwr ar gyfer SLKOR Thermopile Digidol Isgoch Di-gyswllt Mesur Tymheredd Cais Dylunio Bwrdd Demo
1.2 Ceisiadau: Dyfeisiau gwisgadwy smart, ffonau smart, monitro tymheredd diwydiannol, mesur tymheredd arwyneb corff dynol digyswllt, synhwyro a rheoli tymheredd deallus a dyfeisiau bach eraill ar gyfer mesur tymheredd amrediad byr.
1.3 Bwrdd Demo Cyfres SL-W-TRS-5.5Dx:
Fe'i defnyddir ar gyfer gwerthuso a phrofi gwahanol fathau o synwyryddion. Bydd y canlyniadau mesur yn cael eu harddangos ar y sgrin a gellir eu hargraffu i'r meddalwedd dadfygio porthladd cyfresol ar y cyfrifiadur trwy USB i borth cyfresol. Disgrifiad botwm: Mae'r botwm chwith ar gyfer ailosod, a gall y botwm dde reoli cychwyn ac oedi'r rhaglen.
2. Dylunio Caledwedd o Gyfres SL-W-TRS-5.5Dx
Mae'r pinnau sglodion yn cynnwys cyflenwad pŵer a bws I2C, gyda chyfanswm o 4 pin. Yr ystod a ganiateir o foltedd cyflenwad yw 2.3 - 3.6V. Mae gan y synhwyrydd ei hun ddefnydd pŵer isel iawn. Mae cynhwysydd 0.1uF rhwng y ddaear cyflenwad pŵer yn ddigon. Os yw'r synhwyrydd yn gymharol bell o'r rhan cyflenwad pŵer, gellir ystyried cynhwysydd 10uF ychwanegol i sicrhau cyflenwad pŵer sefydlog a lleihau sŵn.
3. Disgrifiad o Fwrdd Demo Cyfres SL-W-TRS-5.5Dx
3.1 Mae'r bwrdd demo yn cael ei bweru gan soced Math-C, a foltedd y cyflenwad pŵer ar gyfer y bwrdd demo yw 5V. Pan gaiff ei ddefnyddio, cysylltwch y bwrdd arddangos â'r PC trwy Math-C, ac yna gallwch weld y canlyniadau ar y sgrin. Os oes angen i chi arddangos data trwy'r porthladd cyfresol, mae'n ofynnol i chi osod rhaglen gyrrwr WCH CH340 ac yna defnyddio meddalwedd dadfygio porthladd cyfresol i weithredu. Mae gosodiadau cyfathrebu'r porthladd cyfresol fel a ganlyn: Cyfradd Baud: 9600, Darnau Data: 8, Didau Stop: 1, a dim gwiriad cydraddoldeb.
3.2 Mae arddangosfa sgrin y bwrdd demo o'r top i'r gwaelod fel a ganlyn: tymheredd amgylchynol (tamb), foltedd allbwn synhwyrydd (vtp_cor), tymheredd gwrthrych (wyneb) (tobj), a thymheredd y corff dynol (tbdy). Uned y gwerthoedd tymheredd uchod yw °C, a'r uned foltedd yw μV. Yn eu plith, y tri gwerth cyntaf yw allbynnau gwreiddiol y ddyfais. Cyfrifir gwerth tymheredd y corff yn seiliedig ar y gwerthoedd gwreiddiol gan ddefnyddio algorithm ein cwmni ac mae ar gyfer cyfeirio yn unig. Gall defnyddwyr brosesu'r data gan ddefnyddio eu algorithmau tymheredd y corff eu hunain yn unol â'u hanghenion.
Effaith arddangos porthladd cyfresol
2. Enghraifft o raglen bwrdd arddangos o gyfres SL-W-TRS-5.5Dx
/////////////////////////////////////////////////// /////////////////////////////////////////////////// //
// prif.c
//////
#diffiniad FOR_CUSTOMER
#ifdef FOR_CUSTOMER
#cynnwys "drv_uart.h"
#cynnwys "drv_i2c.h"
#cynnwys "drv_key.h"
#cynnwys "oled/oled.h"
#cynnwys "trs55d.h"
gwag allanol SystemCoreClockupdate(gwag);
oedi_ms gwag allanol(int cnt);
int prif (gwag)
{
allwedd uint8_t;
uint8_t rhedeg = 0x01;
DiweddariadClocCraiddSystem();
os (SysTick_Config(SystemCoreClock / 1000))
tra(1);
uartInit();
drv_i2c_init();
drv_key_init();
OLED_Init();
OLED_Adnewyddu();
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_Adnewyddu();
uartSendString ("SL-WRhaglen Demo -TRS-5.5Dx ");
tra (1) {
allwedd = drv_key_read();
tra (drv_key_read());
os (allwedd) {
rhedeg = (rhedeg)?0:1;
}
os (rhedeg) {
TRS55D_read();
OLED_Adnewyddu();
}
oedi_ms(20);
}
}
/////////////////////////////////////////////////// /////////////////////////////////////////////////// //
//trs55d.h
//////
#ifdef _TRS55D_H_
#diffinio _TRS55D_H_
#include
#diffinio TRS55D_NORMAL_Tobj_MSB_R 0x10
#diffinio 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
#diffinio TRS55D_NORMAL_DATA1_MSB_R 0x19
#define TRS55D_NORMAL_DATA1_CSB_R 0x1A
#define TRS55D_NORMAL_DATA1_LSB_R 0x1B
#diffinio TRS55D_NORMAL_DATA2_MSB_R 0x1C
#define TRS55D_NORMAL_DATA2_CSB_R 0x1D
#define TRS55D_NORMAL_DATA2_LSB_R 0x1E
#diffinio TRS55D_RAW_DATA1_MSB_R 0x22
#diffinio TRS55D_RAW_DATA1_CSB_R 0x23
#diffinio TRS55D_RAW_DATA1_LSB_R 0x24
#diffinio TRS55D_RAW_DATA2_MSB_R 0x25
#diffinio TRS55D_RAW_DATA2_CSB_R 0x26
#diffinio TRS55D_RAW_DATA2_LSB_R 0x27
#diffinio TRS55D_RAW_TEMP_MSB_R 0x28
#diffinio TRS55D_RAW_TEMP_CSB_R 0x29
#define TRS55D_RAW_TEMP_LSB_R 0x2A
#define ADDR_TRS55D 0xFE //(0x7F << 1)
#define _STATUS_DRDY_ 0x01 gwag TRS55D_read(gwag);
#endif
/////////////////////////////////////////////////// /////////////////////////////////////////////////// //
// trs55d.c
//////
#include
#cynnwys "drv_i2c.h"
#cynnwys "trs55d.h"
#cynnwys "body_temp.h"
allanol uint8_t uartSendString(const torgoch* buf);
gwagle allanol OLED_ShowString (uint8_t x, uint8_t y, torgoch const * chr, uint8_t size1, modd uint8_t);
gwagle allanol OLED_ShowBNum(uint8_t x,uint8_t y, rhif arnofio, uint8_t len,
uint8_t maint2, modd uint8_t); uint8_t TRS55D_IIC_Read(uint8_t addr_dev, uint8_t addr_reg,
uint8_t *buf, uint16_t cyfrif)
{
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);
ar gyfer(i = 0; i < cyfrif; i ++) { ackflag = (i < (cyfrif-1)) ? 1:0; bw[i]
= drv_i2c_readbyte(ackflag);
}
drv_i2c_stop();
dychwelyd ret;
}
gwag 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);
ar gyfer (i = 0; i < cyfrif; i ++)
{ drv_i2c_writebyte(buf[i]);
}
drv_i2c_stop();
}
undeb teipio{
int16_t i16;
uint16_t u16;
strwythur {
uint8_t u8l;
uint8_t u8h;
}un;
}uu16_t;
undeb teipio{
int32_t i32;
strwythur {
uint8_t u8b0;
uint8_t u8b1;
uint8_t u8b2;
uint8_t u8b3;
}un;
}uu32_t;
byffer torgoch statig[264];
uu32_t tobj, tamb_cal;
uu32_t vtp_cor;
arnofio vtp_uv_f = 0.0;
arnofio vtp_cor_f = 0.0;
tambf arnofio = 0.0; arnofio tobjf = 0.0;
arnofio tbdyf = 0.0;
gwag TRS55D_read(gwag)
{
uint8_t rbuf[4];
uint8_t raddr,rdat;
uint8_t waddr = 0x0, wdat = 0x0;
terfyn amser int=0;
waddr = 0x30;
wat = 0x09;
TRS55D_IIC_Write(ADDR_TRS55D, waddr, &wdat,1);
//dechrau oedi trosi_ms(100);
// waite for trosi drosodd
raddr = 0x03;
wneud {
TRS55D_IIC_Read (ADDR_TRS55D, raddr, &rdat,1);
} tra ((((rdat == 0xFF) || (!(rdat & 0x30)))) && terfyn amser ++ < 200);
raddr = 0x02;
wneud {
TRS55D_IIC_Read (ADDR_TRS55D, raddr, &rdat,1);
} tra((((rdat == 0xFF) ||(!(rdat & 0x0B)))) && terfyn amser++ < 200);
// gwerth foltedd ar ôl graddnodi
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];
os (vtp_cor.un.u8b2 & 0x80) { vtp_cor.un.u8b3 = 0xFF;
}arall {
vtp_cor.un.u8b3 = 0x00;
// vtp ar ôl cywiro
}
vtp_cor_f = (arnofio)vtp_cor.i32/524288.0;
vtp_cor_f *= 1000;
// gwerth tymheredd amgylchynol ar ôl graddnodi
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 = (arnofio)tamb_cal.i32 / 16384.0; // tymheredd amgylchynol
// gwrthrych (wyneb) tymheredd ar ôl graddnodi
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 = (arnofio)tobj.i32 / 16384.0;
// gwrthrych (wyneb) tymheredd
// cael bodytemp
tbdyf = get_body_temp(tambf,tobjf); // cael bodytemp
// arddangos ar uart sprintf(byffer, "tamb = %.2f, vtp_cor = %.2f, tobj = %.2f, tbdy = %.2f ", tambf, vtp_cor_f, tobjf, tbdyf); uartSendString(byffer);
// display on oled
arnofio 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); // Tobj
OLED_ShowBNum (64, 48, vals[3], 4, 16, 1); // Tbdy
}


粤公网安备44030002007346号