[Open Source] Zementmessgerät für mehrere Mengen

——Vom DWIN-Entwicklerforum

Das preisgekrönte Open-Source-Gehäuse, das vom DWIN-Forum empfohlen wird, kann in der Bauindustrie zur Erkennung des Zementbestandteilgehalts verwendet werden – ein Messgerät für mehrere Zementmengen, das auf dem T5L-Smart-Screen basiert.Ingenieure verwenden den T5L-Smart-Screen zur Steuerung des elektronischen Gewichtserkennungsmoduls, des Temperaturmessmoduls, des Heizmoduls, des Feuchtigkeitssensors und des Mischmoduls, um die Erkennungsfunktion des Gehalts an fester Lösung und flüssigen Zementkomponenten zu realisieren und die Echtzeitanzeige der Rate zu unterstützen. Temperatureinstellung, Verlaufsaufzeichnung, Stufenparametereinstellung und andere Funktionen.

1. Programmstruktur

acdsb (1)

2.UI-Materialanzeige

acdsb (2)
acdsb (4)
acdsb (3)
acdsb (5)

3.Beispiel für die UI-Entwicklung

acdsb (6)

4.C51 Softwaredesign

Das Initialisierungsbefehlsprogramm für den Techniker zur Kommunikation mit der Steuerplatine über den seriellen T5L-Port 2 lautet wie folgt:

void app_init()

{

is_testing = 0;

test_run_time = 0;

is_sec = 0;

Periode1 = 0;

is_period1 = 0;

uart2_init(115200);

send_bytes("AT+INIT=0\r\n",sizeof("AT+INIT=0\r\n")-1);

sys_delay_ms(2500);

sys_pic(1);

send_bytes("AT+START\r\n",sizeof("AT+START\r\n")-1);

}

Das Hauptprogramm des intelligenten T5L-Bildschirms, der mit der Steuerplatine interagiert, um die Funktion der Erkennung der Zementzusammensetzung zu realisieren, ist wie folgt:

void btn_click_handler()

{

#define BTN_VAL_ADDR 0x1000

u16 btn_val;

if(is_testing&&is_sec)

{

is_sec = 0;

test_run_time++;

btn_val = sprintf(commbuff,"%02u:%02u",(u16)(test_run_time/60),(u16)(test_run_time%60));

commbuff[btn_val+1] = 0;

sys_write_vp(TEST_TIME_VP,commbuff,5);

if(uart2rxsta&UART2_PACKET_OK)

{

if(uart2buf[0]==0x01&&uart2buf[1]==0x02)

{

init_weight = *(float*)(uart2buf+2);

init_weight *= (*(float*)flashdat);

sys_write_vp(0x1178, (u8*)&init_weight, 2);

}else if(uart2buf[0]==0x02&&uart2buf[1]==0x05)

{

init_ml = *(float*)(uart2buf+2);

init_ml /= (*(float*)flashdat+20);

sys_write_vp(0x1180, (u8*)&init_ml, 2);

}else if(uart2buf[0]==0x03&&uart2buf[1]==0x07)

{

speed_val = *(float*)(uart2buf+2);

disp_val += (speed_val*2.45f);

sys_write_vp(0x1180, (u8*)&disp_val, 2);

}else if(uart2buf[0]==0x04)

{

total_num = uart2buf[1]*256+uart2buf[2];

}else if(uart2buf[0]==0x05)

{

is_en_tmp = uart2buf[2];

}

uart2rxsta = 0;

}

}

if(is_period1)

{

is_period1 = 0;

t_sample();

if(is_testing&&is_en_tmp)

sys_write_vp(0x1170,(u8*)&tmp,2);

}

if(is_btn_scan==0)

zurückkehren;

is_btn_scan = 0;

sys_read_vp(BTN_VAL_ADDR,(u8*)&btn_val,1);

if(btn_val==0)

zurückkehren;

if(btn_val<=0x10)

start_win_btn_click_handler(btn_val);

 

btn_val = 0;

sys_write_vp(BTN_VAL_ADDR,(u8*)&btn_val,1);

}

 

Weitere Informationen finden Sie im Quellcode.


Zeitpunkt der Veröffentlichung: 02.12.2023