Նորություններ
Նորություններ
Օգտագործողի ձեռնարկ SL-W-TRS-5.5Dx թվային ինֆրակարմիր ջերմաչափի ցուցադրական տախտակի համար
2024-12-13 1650
SLKOR Micro Semicon Co., Ltd., ունի իր տեխնիկական ողնաշարը, որը գալիս է Ցինհուա համալսարանից և Հարավային Կորեայի Յոնսեի համալսարանից: Այն առաջնորդում է ընկերության զարգացումը նոր նյութերով, նոր գործընթացներով և նոր արտադրանքներով, և համեմատաբար վաղ յուրացրել է երրորդ սերնդի կիսահաղորդչային սիլիցիումի կարբիդային էներգիայի սարքերի միջազգային առաջադեմ տեխնոլոգիան:

 

SLKOR բարձր տեխնոլոգիական ձեռնարկություն է, որն ինտեգրում է էլեկտրոնային արտադրանքի նախագծումը, մշակումը, արտադրությունը և վաճառքը: Այն հաճախորդներին տրամադրում է հուսալի ապրանքներ և համապատասխան տեխնիկական ծառայություններ: Ապրանքանիշը «SLKOR« աստիճանաբար վերածվել է միջազգայնորեն ճանաչվածի՝ առաջարկելով ապրանքներ և լուծումներ ավելի քան 10,000 հաճախորդների ամբողջ աշխարհում:

 

Ձգտելով հաճախորդներին տրամադրել լրացուցիչ ապրանքների ամբողջական տեսականի, SLKOR գործարկել է մի շարք օգտատիրոջ ձեռնարկներ թվային ինֆրակարմիր ջերմաչափերի ոչ կոնտակտային ջերմաստիճանի չափման հավելվածների ցուցադրական տախտակների համար:

 

1.1 ԱնունՕգտագործողի ձեռնարկ SLKOR Թվային ինֆրակարմիր ջերմաչափի ոչ կոնտակտային ջերմաստիճանի չափման հավելվածի դիզայնի ցուցադրական տախտակ

1.2 դիմումներԽելացի կրելի սարքեր, խելացի հեռախոսներ, արդյունաբերական ջերմաստիճանի մոնիտորինգ, մարդու մարմնի մակերեսի ոչ կոնտակտային ջերմաստիճանի չափում, ջերմաստիճանի խելացի զգայարան և վերահսկում և փոքր չափի այլ սարքեր՝ փոքր հեռավորության վրա ջերմաստիճանի չափման համար:

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

Այն օգտագործվում է տարբեր տեսակի սենսորների գնահատման և փորձարկման համար: Չափման արդյունքները կցուցադրվեն էկրանին և կարող են տպագրվել ԱՀ-ի սերիական պորտի վրիպազերծման ծրագրային ապահովման մեջ USB-ի սերիական միացքի միջոցով: Կոճակի նկարագրությունը. Ձախ կոճակը վերակայման համար է, իսկ աջ կոճակը կարող է կառավարել ծրագրի մեկնարկը և դադարը:

image.png 

2. SL-W-TRS-5.5Dx սերիայի ապարատային դիզայն

 

Չիպային պինները ներառում են էլեկտրամատակարարում և I2C ավտոբուս, ընդհանուր 4 կապում: Մատակարարման լարման թույլատրելի միջակայքը 2.3 - 3.6 Վ է: Սենսորն ինքնին ունի շատ ցածր էներգիայի սպառում: Էլեկտրաէներգիայի մատակարարման հիմքի միջև 0.1 uF կոնդենսատորը բավարար է: Եթե ​​սենսորը համեմատաբար հեռու է էլեկտրամատակարարման մասից, կարելի է համարել լրացուցիչ 10uF կոնդենսատոր՝ ապահովելու կայուն էներգիայի մատակարարում և նվազեցնել աղմուկը:

image.png 

 

 

3. SL-W-TRS-5.5Dx Series Demo Board-ի նկարագրությունը

 

3.1 Դեմո տախտակը սնուցվում է Type-C վարդակից, իսկ դեմո տախտակի սնուցման լարումը 5 Վ է: Երբ օգտագործվում է, միացրեք ցուցադրական տախտակը համակարգչին Type-C-ի միջոցով, այնուհետև կարող եք դիտել արդյունքները էկրանին: Եթե ​​Ձեզ անհրաժեշտ է տվյալներ ցուցադրել սերիական միացքի միջոցով, ապա ձեզանից պահանջվում է տեղադրել WCH CH340 վարորդի ծրագիրը, այնուհետև օգտագործել սերիական նավահանգիստների վրիպազերծման ծրագրակազմը գործելու համար: Սերիական նավահանգիստների հաղորդակցման կարգավորումները հետևյալն են. Baud rate՝ 9600, Տվյալների բիթերը՝ 8, կանգառի բիթերը՝ 1, և հավասարության ստուգում չկա:

 

3.2 Դեմո տախտակի էկրանի ցուցադրումը վերևից ներքև հետևյալն է՝ շրջակա միջավայրի ջերմաստիճանը (tamb), սենսորի ելքային լարումը (vtp_cor), օբյեկտի (մակերեսի) ջերմաստիճանը (tobj) և մարդու մարմնի ջերմաստիճանը (tbdy): Վերոնշյալ ջերմաստիճանի արժեքների միավորը °C է, իսկ լարման միավորը՝ μV։ Դրանց թվում առաջին երեք արժեքներն են սարքի բնօրինակ ելքերը: Մարմնի ջերմաստիճանի արժեքը հաշվարկվում է սկզբնական արժեքների հիման վրա՝ օգտագործելով մեր ընկերության ալգորիթմը և նախատեսված է միայն հղման համար: Օգտագործողները կարող են մշակել տվյալները՝ օգտագործելով իրենց սեփական մարմնի ջերմաստիճանի ալգորիթմները՝ ըստ իրենց կարիքների: 

image.png 

Սերիական պորտի ցուցադրման էֆեկտ

 

 2: Դեմո տախտակի ծրագրի օրինակ SL-W-TRS-5.5Dx սերիայի

 

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

 // հիմնական.գ

 //////

 #define FOR_CUSTOMER-ի համար

 #ifdef_ՀԱՃԱԽՈՐԴԻ ՀԱՄԱՐ

 #include «drv_uart.h»

 

#include «drv_i2c.h»

#include «drv_key.h»

#include «oled/oled.h»

#ներառել «trs55d.h»

 

արտաքին void SystemCoreClockupdate(void);

extern void delay_ms (int cnt);

 int հիմնական (անվավեր)

{

uint8_t ստեղն;

 uint8_t գործարկում = 0x01;

 SystemCoreClockupdate();

եթե (SysTick_Config (SystemCoreClock / 1000))

while (1);

 uartInit ();

drv_i2c_init ();

drv_key_init();

 

OLED_Init();

 OLED_Refresh();

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_Refresh();

uartSendString ("SL-W-TRS-5.5Dx ցուցադրական ծրագիր ");

մինչդեռ (1) {

բանալին = drv_key_read ();

while(drv_key_read());

եթե (բանալի) {

 վազել = (վազել)?0:1;

}

եթե (վազել) {

 TRS55D_read();

OLED_Refresh();

}

ուշացում_ms (20);

}

}

 

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

 //trs55d.h

 //////

#ifndef _TRS55D_H_

#սահմանել _TRS55D_H_

#include

#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

 #սահմանել ADDR_TRS55D 0xFE //(0x7F << 1)

 #define _STATUS_DRDY_ 0x01 void TRS55D_read(void);

#վերջ

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

// trs55d.c

//////

#include

 #include «drv_i2c.h»

 #ներառել «trs55d.h»

 #include "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 ռեժիմ);

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

uint8_t չափ 2, uint8_t ռեժիմ); uint8_t TRS55D_IIC_Read(uint8_t addr_dev, uint8_t addr_reg,

uint8_t *buf, uint16_t հաշվում)

{

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 < հաշվում; i ++) { ackflag = (i < (հաշվում-1)) ? 1:0; buf[i]

 = drv_i2c_readbyte (ackflag);

 }

drv_i2c_stop ();

 վերադարձ ret;

 }

 

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

 համար (i = 0; i < հաշվում; i ++)

 { drv_i2c_writebyte (buf[i]);

}

drv_i2c_stop ();

}

 typedef միություն{

int16_t i16;

uint16_t u16;

կառուցվածք {

uint8_t u8l;

uint8_t u8h;

 }un;

}u16_t;

 

typedef միություն{

int32_t i32;

կառուցվածք {

uint8_t u8b0;

uint8_t u8b1;

uint8_t u8b2;

uint8_t u8b3;

}un;

 }u32_t;

 

ստատիկ նիշերի բուֆեր[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;

 void TRS55D_read (անվավեր)

{

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

 //սկսել փոխակերպման հետաձգում_ms(100);

 

// սպասել փոխակերպման ավարտին

raddr = 0x03;

անել {

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

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

raddr = 0x02;

 անել {

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

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

 

 // լարման արժեքը տրամաչափումից հետո

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

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

}այլ {

vtp_cor.un.u8b3 = 0x00;

// vtp ուղղվելուց հետո

}

vtp_cor_f = (float)vtp_cor.i32/524288.0;

vtp_cor_f *= 1000;

// շրջակա միջավայրի ջերմաստիճանի արժեքը չափաբերումից հետո

 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; // շրջակա միջավայրի ջերմաստիճանը

 

// օբյեկտի (մակերեսի) ջերմաստիճանը չափաբերումից հետո

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;

// օբյեկտի (մակերեսի) ջերմաստիճանը

 

// ստանալ մարմնի ջերմաստիճան

tbdyf = get_body_temp (tambf, tobjf); // ստանալ մարմնի ջերմաստիճան

 

// ցուցադրում uart sprintf(buffer, "tamb = %.2f, vtp_cor = %.2f, tobj = %.2f, tbdy = %.2f ", tambf, vtp_cor_f, tobjf, tbdyf); uartSendString(buffer);

 

// ցուցադրել oled-ում

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

 OLED_ShowBNum (64, 0, vals[0], 4, 16, 1); // Թամբ

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); // Թոբջ

OLED_ShowBNum (64, 48, vals[3], 4, 16, 1); // Tbdy

}

Առնչվող առաջարկություններ
whatsapp

Ծառայության թեժ գիծ

Հեռ: + 86 755 83044319

WhatsApp

Whatsapp ՝ +8618073002950