โซลูชันโอเพ่นซอร์ส: ระบบการจัดการตู้อัจฉริยะที่ใช้หน้าจอ DWIN T5L

การใช้ชิป T5L เป็นตัวควบคุมหลัก และชิป T5L จะขับเคลื่อนเซอร์โวบัสอนุกรมเพื่อควบคุมสวิตช์ประตู และประมวลผลข้อมูลเซ็นเซอร์ที่รวบรวมโดยตัวควบคุมเสริม และขับเคลื่อนหน้าจอ LCD สำหรับการแสดงข้อมูล มีฟังก์ชั่นเตือนที่ผิดปกติ และระบบไฟอัตโนมัติ ซึ่งสามารถใช้งานได้ตามปกติในสภาวะแสงสลัว

wps_doc_0

1. คำอธิบายโปรแกรม

(1) หน้าจอ T5L ใช้เป็นตัวควบคุมหลักในการขับเคลื่อนเซอร์โวบัสอนุกรมโดยตรง การใช้ชุดพวงมาลัย Feite STS แรงบิดมีตั้งแต่ 4.5KG ถึง 40KG และโปรโตคอลเป็นแบบสากล

(2) เฟืองพวงมาลัยบัสอนุกรมมีฟังก์ชันป้องกันกระแส แรงบิด อุณหภูมิ และแรงดันไฟฟ้า และมีความปลอดภัยสูงกว่ามอเตอร์ทั่วไป

(3) พอร์ตอนุกรมหนึ่งพอร์ตรองรับการควบคุมเซอร์โว 254 ตัวพร้อมกัน

2.การออกแบบโครงการ

(1) แผนภาพบล็อกโครงการ

wps_doc_1

(2) แผนภาพโครงสร้างเครื่องกล

เพื่อป้องกันไม่ให้ไฟฟ้าดับของประตูตู้อัจฉริยะไม่สามารถควบคุมได้ การออกแบบนี้จึงใช้การออกแบบเฟืองบังคับเลี้ยวแบบคู่ หลังจากไฟฟ้าดับ เนื่องจากมีสลักประตูอยู่ แม้ว่าเซอร์โวเปิดประตูจะไม่ได้โหลดก็ตาม ตู้อัจฉริยะยังคงอยู่ในสถานะล็อค โครงสร้างทางกลแสดงในรูป:

wps_doc_2
wps_doc_3

แผนผังโครงสร้างช่องเปิด

แผนภาพของปิด โครงสร้าง

(3) การออกแบบ DGUS GUI

wps_doc_4 wps_doc_5

(4) แผนผังวงจร
แผนผังวงจรแบ่งออกเป็นสามส่วน: แผงวงจรหลัก (วงจรเซอร์โวไดรฟ์ + ตัวควบคุมเสริม + อินเทอร์เฟซ) วงจรสเต็ปดาวน์ และวงจรไฟ (ติดตั้งในตู้)

wps_doc_6

แผงวงจรหลัก

wps_doc_7

วงจรสเต็ปดาวน์

wps_doc_8

วงจรไฟส่องสว่าง

5. ตัวอย่างโปรแกรม

การตรวจจับอุณหภูมิและความชื้นและการรีเฟรช การอัพเดตเวลา (AHT21 ขับเคลื่อนโดยตัวควบคุมเสริม และข้อมูลอุณหภูมิและความชื้นจะถูกเขียนลงในหน้าจอ DWIN)
/****************** อัปเดตอุณหภูมิและความชื้น**********************/
เป็นโมฆะ dwin_Tempe_humi_update (เป็นโมฆะ)
-
uint8_t Tempe_humi_date[20]; //คำสั่งที่ส่งไปยังหน้าจอ LCD
AHT20_Read_CTdata(CT_data); //อ่านอุณหภูมิและความชื้น
        
เทมพี_humi_date[0]=0x5A;
Tempe_humi_date[1]=0xA5;
Tempe_humi_date[2]=0x07;
Tempe_humi_date[3]=0x82;
Tempe_humi_date[4]=(ADDR_TEMP_HUMI>>8)&0xff;
Tempe_humi_date[5]=ADDR_TEMP_HUMI&0xff;
Tempe_humi_date[6]=((CT_data[1] *200*10/1024/1024-500)>>8)&0xff;
Tempe_humi_date[7]=((CT_data[1] *200*10/1024/1024-500))&0xff;//คำนวณค่าอุณหภูมิ (ขยาย 10 เท่า ถ้า t1=245 แสดงว่าอุณหภูมิตอนนี้อยู่ที่ 24.5 °ซ)

Tempe_humi_date[8]=((CT_data[0]*1000/1024/1024)>>8)&0xff;
Tempe_humi_date[9]=((CT_data[0]*1000/1024/1024))&0xff; //คำนวณค่าความชื้น (ขยาย 10 เท่า ถ้า c1=523 แสดงว่าตอนนี้ความชื้นอยู่ที่ 52.3%)

Usart_SendString(USART_DWIN,เทมพี_humi_date,10);

-


เวลาโพสต์: Nov-08-2022