Nieuws
Nieuws
Gebruiksaanwijzing voor SL-W-TRS-5.5Dx digitale infrarood thermozuil demobord
2024-12-13 1849
SLKOR Micro Semicon Co., Ltd., heeft zijn technische ruggengraat afkomstig van Tsinghua University en Yonsei University in Zuid-Korea. Het leidt de ontwikkeling van het bedrijf met nieuwe materialen, nieuwe processen en nieuwe producten, en beheerste de internationaal geavanceerde technologie van de derde generatie halfgeleider siliciumcarbide-vermogensapparaten relatief vroeg.

 

SLKOR is een hightechonderneming die het ontwerp, de ontwikkeling, de productie en de verkoop van elektronische producten integreert. Het biedt klanten betrouwbare producten en bijbehorende technische diensten. Het merk "SLKOR"heeft zich geleidelijk ontwikkeld tot een internationaal gerenommeerd bedrijf dat producten en oplossingen levert aan meer dan 10,000 klanten wereldwijd.

 

Om klanten een volledig assortiment aan complementaire producten te kunnen bieden, SLKOR heeft een reeks gebruikershandleidingen gelanceerd voor de demoborden van digitale infrarood thermozuilen voor contactloze temperatuurmeting.

 

1.1 Naam: Gebruikershandleiding voor SLKOR Digitale infraroodthermozuil Contactloze temperatuurmeting Toepassingsontwerp Demobord

1.2-toepassingen: Slimme draagbare apparaten, smartphones, industriële temperatuurbewaking, contactloze meting van de temperatuur van het menselijk lichaamsoppervlak, intelligente temperatuurmeting en -regeling en andere kleine apparaten voor temperatuurmeting op korte afstand.

1.3 SL-W-TRS-5.5Dx-serie demobord:

Het wordt gebruikt voor evaluatie en testen van verschillende soorten sensoren. De meetresultaten worden weergegeven op het scherm en kunnen worden afgedrukt naar de seriële poort debugging software op de PC via USB naar seriële poort. Knopbeschrijving: De linkerknop is voor reset, en de rechterknop kan de start en pauze van het programma regelen.

afbeelding.png 

2. Hardwareontwerp van de SL-W-TRS-5.5Dx-serie

 

De chippinnen omvatten voeding en I2C-bus, met in totaal 4 pinnen. Het toegestane bereik van de voedingsspanning is 2.3 - 3.6 V. De sensor zelf heeft een zeer laag stroomverbruik. Een 0.1 uF-condensator tussen de voedingsaarde is voldoende. Als de sensor relatief ver van het voedingsgedeelte is, kan een extra 10 uF-condensator worden overwogen om een ​​stabiele voeding te garanderen en ruis te verminderen.

afbeelding.png 

 

 

3. Beschrijving van SL-W-TRS-5.5Dx-serie demobord

 

3.1 Het demobord wordt gevoed door een Type-C-aansluiting en de voedingsspanning voor het demobord is 5V. Sluit het demobord tijdens gebruik aan op de pc via Type-C en u kunt de resultaten op het scherm bekijken. Als u gegevens via de seriële poort wilt weergeven, moet u het WCH CH340-stuurprogramma installeren en vervolgens seriële poort-debuggingsoftware gebruiken om te werken. De communicatie-instellingen voor de seriële poort zijn als volgt: Baudsnelheid: 9600, Databits: 8, Stopbits: 1 en geen pariteitscontrole.

 

3.2 De schermweergave van het demobord is van boven naar beneden als volgt: omgevingstemperatuur (tamb), sensoruitgangsspanning (vtp_cor), object (oppervlakte) temperatuur (tobj) en menselijke lichaamstemperatuur (tbdy). De eenheid van de bovenstaande temperatuurwaarden is °C en de eenheid van spanning is μV. De eerste drie waarden zijn de originele uitgangen van het apparaat. De lichaamstemperatuurwaarde wordt berekend op basis van de originele waarden met behulp van het algoritme van ons bedrijf en is alleen ter referentie. Gebruikers kunnen de gegevens verwerken met behulp van hun eigen lichaamstemperatuuralgoritmen volgens hun behoeften. 

afbeelding.png 

Seriële poort weergave-effect

 

 2. Demobordprogrammavoorbeeld van de SL-W-TRS-5.5Dx-serie

 

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

 // hoofd.c

 //////

 #define VOOR_KLANT

 #ifdef VOOR_KLANT

 #include "drv_uart.h"

 

#include "drv_i2c.h"

#include "drv_key.h"

#include "oled/oled.h"

#include "trs55d.h"

 

extern void SystemCoreClockupdate(void);

extern void delay_ms(int cnt);

 int main (void)

{

uint8_t-sleutel;

 uint8_t uitvoeren = 0x01;

 SysteemKernKlokupdate();

als (SysTick_Config(SystemCoreClock / 1000))

terwijl(1);

 uartInit();

drv_i2c_init();

drv_key_init();

 

OLED_Init();

 OLED_Vernieuwen();

OLED_Duidelijk();

OLED_ShowString(8,0,"Totaal:",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_Vernieuwen();

uartVerzendString("SL-W-TRS-5.5Dx Demoprogramma ");

terwijl(1) {

sleutel = drv_key_read();

terwijl(drv_key_read());

als (sleutel) {

 uitvoeren = (uitvoeren)?0:1;

}

als (run) {

 TRS55D_lezen();

OLED_Vernieuwen();

}

vertraging_ms(20);

}

}

 

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

 //trs55d.h

 //////

#als_def_TRS55D_H_

#define_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_NORMALE_TEMP_MSB_R 0x16

#define TRS55D_NORMALE_TEMP_CSB_R 0x17

#define TRS55D_NORMALE_TEMP_LSB_R 0x18

 #define TRS55D_NORMALE_DATA1_MSB_R 0x19

#define TRS55D_NORMALE_DATA1_CSB_R 0x1A

 #define TRS55D_NORMALE_DATA1_LSB_R 0x1B

 #define TRS55D_NORMALE_DATA2_MSB_R 0x1C

 #define TRS55D_NORMALE_DATA2_CSB_R 0x1D

#define TRS55D_NORMALE_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(void);

#stop als

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

// trs55d.c

//////

#include

 #include "drv_i2c.h"

 #include "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 mode);

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

uint8_t grootte2,uint8_t modus); uint8_t TRS55D_IIC_Read(uint8_t addr_dev, uint8_t addr_reg,

uint8_t *buf, uint16_t aantal)

{

uint8_t ret;

uint8_t erkenningsvlag;

uint16_t ik = 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);

voor(i = 0; i < aantal; i ++) { ackflag = (i < (aantal-1)) ? 1:0; buf[i]

 = drv_i2c_readbyte(ackflag);

 }

drv_i2c_stop();

 retour ret;

 }

 

void TRS55D_IIC_Write(uint8_t addr_dev, uint8_t addr_reg, uint8_t *buf, uint16_t aantal)

 {

 uint16_t ik = 0;

drv_i2c_start();

drv_i2c_select_dev(addr_dev,DRV_I2C_OPWR);

drv_i2c_writebyte(addr_reg);

 voor (i = 0; i < aantal; i ++)

 { drv_i2c_writebyte(buf[i]);

}

drv_i2c_stop();

}

 typedef unie{

int16_t i16;

uint16_t u16;

structureren {

uint8_t u8l;

uint8_t u8h;

 }on;

}uu16_t;

 

typedef unie{

int32_t i32;

structureren {

uint8_t u8b0;

uint8_t u8b1;

uint8_t u8b2;

uint8_t u8b3;

}on;

 }uu32_t;

 

statische char-buffer[264];

 uu32_t tobj, tamb_cal;

 

uu32_t vtp_cor;

vlotter vtp_uv_f = 0.0;

vlotter vtp_cor_f = 0.0;

vlotter tambf = 0.0; vlotter tobjf = 0.0;

 vlotter tbdyf = 0.0;

 ongeldig TRS55D_read(ongeldig)

{

uint8_t rbuf[4];

uint8_t raddr,rdat;

 uint8_t waddr = 0x0, wdat = 0x0;

int time-out=0;

 

waddr = 0x30;

wdat = 0x09;

TRS55D_IIC_Write(ADDR_TRS55D, waddr, &wdat,1);

 //start conversievertraging_ms(100);

 

// wacht op conversie

raddr = 0x03;

Doen {

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

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

raddr = 0x02;

 Doen {

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

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

 

 // spanningswaarde na kalibratie

raddr = TRS55D_NORMALE_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];

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

} anders {

vtp_cor.un.u8b3 = 0x00;

// vtp na correctie

}

vtp_cor_f = (float)vtp_cor.i32/524288.0;

vtp_cor_f *= 1000;

// omgevingstemperatuurwaarde na kalibratie

 raddr = TRS55D_NORMALE_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; // omgevingstemperatuur

 

// object(oppervlakte)temperatuur na kalibratie

raddr = TRS55D_NORMAAL_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 = (zwevend)tobj.i32 / 16384.0;

// object(oppervlakte)temperatuur

 

// lichaamstemperatuur ophalen

tbdyf = get_body_temp(tambf,tobjf); // haal bodytemp op

 

// weergeven op uart sprintf(buffer, "tamb = %.2f, vtp_cor = %.2f, tobj = %.2f, tbdy = %.2f ", tambf, vtp_cor_f, tobjf, tbdyf); uartSendString(buffer);

 

// weergeven op oled

 float-waarden[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, waarden[2], 4, 16, 1); // Tobj

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

}

whatsapp

Service Hotline

tel: +86 755 83044319

WhatsApp

Whatsapp:+8618073002950