[Open Source] Zement Multi-Quantitéit Miessinstrument

——Vum DWIN Entwéckler Forum

De Präis-Zouschlag Open Source Fall recommandéiert vum DWIN Forum kann an der Bauindustrie benotzt ginn fir Zementkomponentinhalt z'entdecken - en Zement Multi-Betrag Messinstrument baséiert op T5L Smart Screen.Ingenieuren benotzen den T5L Smart Écran fir den elektronesche Gewiichtserkennungsmodul, Temperaturmessmodul, Heizmodul, Feuchtigkeitsensor a Mëschmodul ze kontrolléieren fir d'Erkennungsfunktioun vu festen Léisung a flëssege Zementkomponentinhalt ze realiséieren, an Echtzäit Display vum Taux z'ënnerstëtzen, Temperatur Astellung, Geschicht Rekord, Stage Parameter Astellung an aner Funktiounen.

1. Programm Struktur

acdsb (1)

2.UI Material Display

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

3.UI Entwécklung Beispill

acdsb (6)

4.C51 Software Design

Den Initialiséierungskommandoprogramm fir den Ingenieur fir mat der Kontrollplat ze kommunizéieren mam T5L Serienport 2 ass wéi follegt:

void app_init()

{

ass_test = 0;

test_run_zeit = 0;

ass_sec = 0;

Period1 = 0;

ass_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);

}

Den Haaptprogramm vum T5L intelligenten Bildschierm interagéiert mat der Kontrollplat fir d'Funktioun vun der Zementkompositiounserkennung ze realiséieren ass wéi follegt:

void btn_click_handler()

{

#define BTN_VAL_ADDR 0x1000

u16 btn_val;

wann (ass_testen&&ass_sec)

{

ass_sec = 0;

test_run_Zäit++;

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);

} anescht wann (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;

}

}

wann (ass_period1)

{

ass_period1 = 0;

t_sample();

if(ass_testing&&is_en_tmp)

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

}

wann (is_btn_scan==0)

zréck;

is_btn_scan = 0;

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

wann(btn_val==0)

zréck;

wann(btn_val<=0x10)

start_win_btn_click_handler(btn_val);

 

btn_val = 0;

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

}

 

Kuckt de Quellcode fir méi.


Post Zäit: Dez-02-2023