Solutions
Solutions

Llawlyfr Defnyddiwr ar gyfer Bwrdd Demo Thermopil Is-goch Digidol SL-W-TRS-5.5Dx

2024-12-13 1652
SLKOR Micro Semicon Co, Ltd, mae ei asgwrn cefn technegol yn dod o Brifysgol Tsinghua a Phrifysgol Yonsei yn Ne Korea. Mae'n arwain datblygiad y cwmni gyda deunyddiau newydd, prosesau newydd a chynhyrchion newydd, ac yn meistroli'r dechnoleg ddatblygedig ryngwladol o ddyfeisiau pŵer carbid silicon lled-ddargludyddion trydydd cenhedlaeth yn gymharol gynnar.

 

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.

image.png 

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.

image.png 

 

 

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. 

image.png 

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

}

Argymhellion Cysylltiedig
whatsapp

Gwifren Gwasanaeth

ffôn: +86 755 83044319

WhatsApp

Whatsapp: + 8618073002950