Folosind cipul T5L ca control principal și cipul T5L conduce servo magistrala serial pentru a controla comutatorul ușii și procesează datele senzorului colectate de controlerul auxiliar și conduce ecranul LCD pentru afișarea datelor.Are o funcție de avertizare anormală și un sistem automat de iluminare, care poate fi folosit în mod normal în situații de lumină slabă.
1. Descrierea programului
(1) Ecranul T5L este folosit ca control principal pentru a conduce direct servo magistrala serial.Folosind mecanismul de direcție din seria Feite STS, cuplul variază de la 4,5 kg la 40 kg, iar protocolul este universal.
(2) Sistemul de direcție al magistralei serial are funcții de protecție a curentului, cuplului, temperatură și tensiune, iar siguranța sa este mai mare decât cea a motoarelor convenționale;
(3) Un port serial acceptă controlul simultan a 254 de servo-uri.
2.Scheme design
(1) Schema bloc
(2) Diagrama structurii mecanice
Pentru a preveni scăderea sub control a ușii inteligentei dulapului, acest design adoptă un design dublu al mecanismului de direcție.După o pană de curent, din cauza existenței zăvorului ușii, chiar dacă servo-ul de deschidere a ușii este descărcat, dulapul inteligent este încă în starea blocat.Structura mecanică este prezentată în figură:
Diagrama structurii deschiderii
Diagrama aînchidere structura
(3) DGUS GUI Design
(4) Schema circuitului
Schema circuitului este împărțită în trei părți: placa de circuit principal (circuit servo drive + controler auxiliar + interfață), circuit coborâtor și circuit de iluminat (instalat în dulap).
Placa de circuite principale
Circuit descendente
Circuit de iluminat
5. Exemplu de program
Detectarea și reîmprospătarea temperaturii și umidității, actualizare de timp (AHT21 este condus de controlerul auxiliar, iar datele de temperatură și umiditate sunt scrise în ecranul DWIN)
/********************Actualizare temperatură și umiditate************************/
void dwin_Tempe_humi_update( void)
{
uint8_t Tempe_humi_date[20];//Comenzile trimise pe ecranul LCD
AHT20_Read_CTdata(CT_data);//Citiți temperatura și umiditatea
Tempe_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;//Calculați valoarea temperaturii (mărită de 10 ori, dacă t1=245, înseamnă că temperatura este acum 24,5 °C)
Tempe_humi_date[8]=((CT_data[0]*1000/1024/1024)>>8)&0xff;
Tempe_humi_date[9]=((CT_data[0]*1000/1024/1024))&0xff;//Calculează valoarea umidității (mărită de 10 ori, dacă c1=523, înseamnă că acum umiditatea este de 52,3%)
Usart_SendString(USART_DWIN,Tempe_humi_date,10);
}
Ora postării: 08-nov-2022