บริการสายด่วน
คู่มือผู้ใช้สำหรับบอร์ดสาธิตเทอร์โมไพล์อินฟราเรดดิจิตอล SL-W-TRS-5.5Dx
SLKOR เป็นองค์กรเทคโนโลยีขั้นสูงที่บูรณาการการออกแบบ การพัฒนา การผลิต และการจำหน่ายผลิตภัณฑ์อิเล็กทรอนิกส์ โดยมอบผลิตภัณฑ์ที่เชื่อถือได้และบริการทางเทคนิคที่เกี่ยวข้องให้กับลูกค้า แบรนด์ "SLKOR" ได้พัฒนาจนเป็นที่ยอมรับในระดับนานาชาติ โดยนำเสนอผลิตภัณฑ์และโซลูชันให้กับลูกค้ามากกว่า 10,000 รายทั่วโลก
ในการพยายามที่จะมุ่งมั่นที่จะมอบผลิตภัณฑ์เสริมที่ครบครันให้กับลูกค้า SLKOR ได้เปิดตัวชุดคู่มือผู้ใช้สำหรับบอร์ดสาธิตของการออกแบบการใช้งานการวัดอุณหภูมิแบบไม่สัมผัสเทอร์โมไพล์อินฟราเรดดิจิทัล
1.1 ชื่อ: คู่มือการใช้งานสำหรับ SLKOR บอร์ดสาธิตการออกแบบการใช้งานการวัดอุณหภูมิแบบไม่สัมผัสเทอร์โมไพล์อินฟราเรดแบบดิจิทัล
1.2 การใช้งาน:อุปกรณ์สวมใส่อัจฉริยะ สมาร์ทโฟน การตรวจติดตามอุณหภูมิในอุตสาหกรรม การวัดอุณหภูมิพื้นผิวร่างกายมนุษย์แบบไม่สัมผัส การตรวจจับและควบคุมอุณหภูมิอัจฉริยะ และอุปกรณ์ขนาดเล็กอื่นๆ สำหรับการวัดอุณหภูมิระยะสั้น
1.3 บอร์ดสาธิตซีรีย์ SL-W-TRS-5.5Dx:
ใช้สำหรับประเมินและทดสอบเซนเซอร์ประเภทต่างๆ ผลการวัดจะแสดงบนหน้าจอและสามารถพิมพ์ไปยังซอฟต์แวร์ดีบักพอร์ตซีเรียลบนพีซีได้ผ่านพอร์ต USB ที่ต่อกับซีเรียล คำอธิบายปุ่ม: ปุ่มซ้ายใช้สำหรับรีเซ็ต ส่วนปุ่มขวาใช้สำหรับควบคุมการเริ่มต้นและหยุดชั่วคราวของโปรแกรม
2. การออกแบบฮาร์ดแวร์ของซีรีย์ SL-W-TRS-5.5Dx
พินชิปประกอบด้วยแหล่งจ่ายไฟและบัส I2C โดยมีทั้งหมด 4 พิน ช่วงแรงดันไฟฟ้าที่อนุญาตคือ 2.3 - 3.6V เซ็นเซอร์มีการใช้พลังงานต่ำมาก ตัวเก็บประจุ 0.1uF ระหว่างกราวด์ของแหล่งจ่ายไฟก็เพียงพอ หากเซ็นเซอร์อยู่ห่างจากส่วนแหล่งจ่ายไฟค่อนข้างมาก อาจพิจารณาใช้ตัวเก็บประจุ 10uF เพิ่มเติมเพื่อให้แน่ใจว่าแหล่งจ่ายไฟมีเสถียรภาพและลดสัญญาณรบกวน
3. คำอธิบายของบอร์ดสาธิตซีรีส์ SL-W-TRS-5.5Dx
3.1 บอร์ดสาธิตได้รับพลังงานจากซ็อกเก็ต Type-C และแรงดันไฟฟ้าของแหล่งจ่ายไฟสำหรับบอร์ดสาธิตคือ 5V เมื่อใช้งาน ให้เชื่อมต่อบอร์ดสาธิตกับพีซีผ่าน Type-C จากนั้นคุณจะสามารถดูผลลัพธ์บนหน้าจอได้ หากคุณต้องการแสดงข้อมูลผ่านพอร์ตซีเรียล คุณจะต้องติดตั้งโปรแกรมไดรเวอร์ WCH CH340 จากนั้นใช้ซอฟต์แวร์ดีบักพอร์ตซีเรียลเพื่อใช้งาน การตั้งค่าการสื่อสารพอร์ตซีเรียลมีดังนี้: อัตราบอด: 9600, บิตข้อมูล: 8, บิตหยุด: 1 และไม่มีการตรวจสอบพาริตี้
3.2 การแสดงผลบนหน้าจอของบอร์ดสาธิตจากบนลงล่างมีดังนี้: อุณหภูมิแวดล้อม (tamb), แรงดันเอาต์พุตของเซ็นเซอร์ (vtp_cor), อุณหภูมิวัตถุ (พื้นผิว) (tobj) และอุณหภูมิร่างกายมนุษย์ (tbdy) หน่วยของค่าอุณหภูมิข้างต้นคือ °C และหน่วยของแรงดันคือ μV โดยค่าสามค่าแรกเป็นค่าเอาต์พุตดั้งเดิมของอุปกรณ์ ค่าอุณหภูมิร่างกายคำนวณจากค่าดั้งเดิมโดยใช้อัลกอริทึมของบริษัทของเราและใช้สำหรับการอ้างอิงเท่านั้น ผู้ใช้สามารถประมวลผลข้อมูลโดยใช้อัลกอริทึมอุณหภูมิร่างกายของตนเองตามความต้องการ
เอฟเฟกต์การแสดงผลพอร์ตซีเรียล
2 ตัวอย่างโปรแกรมบอร์ดสาธิตของซีรีย์ SL-W-TRS-5.5Dx
-
// หลัก.c
//////
#กำหนดสำหรับลูกค้า
#ifdef สำหรับลูกค้า
#รวม "drv_uart.h"
#รวม "drv_i2c.h"
#รวม "drv_key.h"
#รวม "oled/oled.h"
#รวม "trs55d.h"
void ภายนอก SystemCoreClockupdate(void);
extern void delay_ms(int cnt);
int main (โมฆะ)
{
ปุ่ม uint8_t;
uint8_t รัน = 0x01;
SystemCoreClockupdate()
หาก (SysTick_Config(SystemCoreClock / 1000))
ในขณะที่(1);
uartInit() คำสั่ง
drv_i2c_init();
drv_key_init();
OLED_เริ่มต้น();
OLED_รีเฟรช();
OLED_Clear()
OLED_ShowString(8,0,"จำนวน:",16,1);
OLED_ShowString(8,16,"ค่าเบี่ยงเบนมาตรฐาน:",16,1);
OLED_แสดงจีน(8,32,0,16,1);
OLED_แสดงจีน(24,32,2,16,1);
OLED_แสดงจีน(40,32,3,16,1);
OLED_แสดงจีน(8,48,1,16,1);
OLED_แสดงจีน(24,48,2,16,1);
OLED_แสดงจีน(40,48,3,16,1);
OLED_รีเฟรช();
uartSendString("SL-W-โปรแกรมสาธิต TRS-5.5Dx ");
ขณะที่(1) {
คีย์ = drv_key_read();
ในขณะที่ (drv_key_read())
ถ้า (คีย์) {
วิ่ง = (วิ่ง)?0:1;
}
ถ้า (รัน) {
TRS55D_อ่าน();
OLED_รีเฟรช();
}
ล่าช้า_ms(20);
}
}
-
//trs55d.h
//////
#IFNDef_TRS55D_H_ สำคัญ:
#กำหนด_TRS55D_H_
#include
#กำหนด TRS55D_NORMAL_Tobj_MSB_R 0x10
#กำหนด TRS55D_NORMAL_Tobj_CSB_R 0x11
#กำหนด TRS55D_NORMAL_Tobj_LSB_R 0x12
#กำหนด TRS55D_NORMAL_TEMP_MSB_R 0x16
#กำหนด TRS55D_NORMAL_TEMP_CSB_R 0x17
#กำหนด TRS55D_NORMAL_TEMP_LSB_R 0x18
#กำหนด TRS55D_NORMAL_DATA1_MSB_R 0x19
#กำหนด TRS55D_NORMAL_DATA1_CSB_R 0x1A
#กำหนด TRS55D_NORMAL_DATA1_LSB_R 0x1B
#กำหนด TRS55D_NORMAL_DATA2_MSB_R 0x1C
#กำหนด TRS55D_NORMAL_DATA2_CSB_R 0x1D
#กำหนด TRS55D_NORMAL_DATA2_LSB_R 0x1E
#กำหนด TRS55D_RAW_DATA1_MSB_R 0x22
#กำหนด TRS55D_RAW_DATA1_CSB_R 0x23
#กำหนด TRS55D_RAW_DATA1_LSB_R 0x24
#กำหนด TRS55D_RAW_DATA2_MSB_R 0x25
#กำหนด TRS55D_RAW_DATA2_CSB_R 0x26
#กำหนด TRS55D_RAW_DATA2_LSB_R 0x27
#กำหนด TRS55D_RAW_TEMP_MSB_R 0x28
#กำหนด TRS55D_RAW_TEMP_CSB_R 0x29
#กำหนด TRS55D_RAW_TEMP_LSB_R 0x2A
#กำหนด ADDR_TRS55D 0xFE //(0x7F << 1)
#define _STATUS_DRDY_ 0x01 void TRS55D_read(void);
#เอนดิฟ
-
// trs55d.c
//////
#include
#รวม "drv_i2c.h"
#รวม "trs55d.h"
#รวม "อุณหภูมิร่างกาย"
ภายนอก uint8_t uartSendString(const char* buf);
ภายนอก void OLED_ShowString(uint8_t x, uint8_t y, const char * chr, uint8_t size1, uint8_t mode);
ช่องว่างภายนอก 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 รีท;
uint8_t ตอบรับธง;
uint16_t ฉัน = 0;
drv_i2c_เริ่มต้น();
drv_i2c_select_dev(เพิ่มdr_dev, DRV_I2C_OPWR)
drv_i2c_writebyte(เพิ่มreg);
drv_i2c_เริ่มต้น();
drv_i2c_select_dev(เพิ่มdr_dev,DRV_I2C_OPRD)
สำหรับ (i = 0; i < count; i ++) { ackflag = (i < (count-1)) ? 1:0; buf[i]
= drv_i2c_readbyte(รับทราบสถานะ);
}
drv_i2c_stop();
กลับ;
}
void TRS55D_IIC_Write(uint8_t addr_dev, uint8_t addr_reg, uint8_t *buf, uint16_t count)
{
uint16_t ฉัน = 0;
drv_i2c_เริ่มต้น();
drv_i2c_select_dev(เพิ่มdr_dev, DRV_I2C_OPWR)
drv_i2c_writebyte(เพิ่มreg);
สำหรับ (i = 0; i < count; i++)
{ drv_i2c_writebyte(buf[i]);
}
drv_i2c_stop();
}
สหภาพ typedef
int16_ที ไอ 16;
uint16_ต u16;
โครงสร้าง {
uint8_ต u8l;
uint8_t u8h;
}อัน;
}uu16_ต;
สหภาพ typedef
int32_ที ไอ 32;
โครงสร้าง {
uint8_t u8b0;
uint8_t u8b1;
uint8_t u8b2;
uint8_t u8b3;
}อัน;
}uu32_ต;
บัฟเฟอร์ถ่านแบบคงที่[264];
uu32_t โทบีเจ, tamb_cal;
uu32_t vtp_cor;
ลอย vtp_uv_f = 0.0;
ลอย vtp_cor_f = 0.0;
float tambf = 0.0; float tobjf = 0.0;
ลอย tbdyf = 0.0;
TRS55D_read เป็นโมฆะ(เป็นโมฆะ)
{
uint8_t rbuf[4];
uint8_t raddr, rdat;
uint8_t waddr = 0x0, wdat = 0x0;
เวลาหมดเวลา = 0;
วอดเดอร์ = 0x30;
wdat = 0x09;
TRS55D_IIC_Write(ADDR_TRS55D, waddr, &wdat,1);
//เริ่มการแปลง delay_ms(100);
// รอการแปลงเสร็จสิ้น
raddr = 0x03;
ทำ {
TRS55D_IIC_อ่าน (ADDR_TRS55D, raddr, &rdat,1);
} ในขณะที่(((rdat == 0xFF) || (!(rdat & 0x30))) && timeout++ < 200);
raddr = 0x02;
ทำ {
TRS55D_IIC_อ่าน (ADDR_TRS55D, raddr, &rdat,1);
} ในขณะที่(((rdat == 0xFF) || (!(rdat & 0x0B))) && timeout++ < 200);
//ค่าแรงดันไฟหลังการสอบเทียบ
raddr = TRS55D_NORMAL_DATA1_MSB_R;
TRS55D_IIC_อ่าน (ADDR_TRS55D, เรดาร์,&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;
} else {
vtp_cor.un.u8b3 = 0x00;
// vtp หลังจากแก้ไขแล้ว
}
vtp_cor_f = (ลอยตัว)vtp_cor.i32/524288.0;
vtp_cor_f *= 1000;
// ค่าอุณหภูมิแวดล้อมหลังการสอบเทียบ
อุณหภูมิห้อง = TRS55D_NORMAL_TEMP_MSB_R;
TRS55D_IIC_อ่าน (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_อ่าน (ADDR_TRS55D,raddr,&rbuf[0],3);
tobj.un.u8b2 = rbuf[0]; tobj.un.u8b1 = rbuf[1];
tobj.un.u8b0 =rbuf[2]; tobjf = (ลอย)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[4] = {tambf, vtp_cor_f, tobjf, tbdyf+0.05};
OLED_ShowBNum (64, 0, ค่า [0], 4, 16, 1); // แทม
OLED_ShowBNum (48, 16, vals[1], 6, 16, 1); // vtp
OLED_ShowString(112,16, "ยูวี",16, 1);
OLED_ShowBNum (64, 32, vals[2], 4, 16, 1); // กำหนด
OLED_ShowBNum (64, 48, vals[3], 4, 16, 1); // สุดท้าย
}


粤公网安备44030002007346号