[Open Source] Cement Multi-amount måleinstrument

——Fra DWIN Developer Forum

Den prisvindende open source-case anbefalet af DWIN-forummet kan bruges i byggebranchen til at detektere indhold af cementkomponenter - et cement-måleinstrument med flere mængder baseret på T5L-smartskærm.Ingeniører bruger T5L-smartskærmen til at styre det elektroniske vægtdetekteringsmodul, temperaturmålingsmodul, varmemodul, fugtsensor og blandingsmodul til at realisere detektionsfunktionen af ​​fast opløsning og flydende cementkomponentindhold og understøtte realtidsvisning af rate, temperaturindstilling, historieregistrering, faseparameterindstilling og andre funktioner.

1. Programstruktur

acdsb (1)

2. UI Materiale Display

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

3.UI udvikling eksempel

acdsb (6)

4.C51 softwaredesign

Initialiseringskommandoprogrammet for ingeniøren til at kommunikere med kontrolkortet ved hjælp af T5L seriel port 2 er som følger:

void app_init()

{

is_testing = 0;

test_run_time = 0;

er_sek = 0;

periode1 = 0;

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

}

Hovedprogrammet for den intelligente T5L-skærm, der interagerer med kontrolpanelet for at realisere funktionen af ​​detektion af cementsammensætning, er som følger:

void btn_click_handler()

{

#define BTN_VAL_ADDR 0x1000

u16 btn_val;

if(er_tester&&er_sek.)

{

er_sek = 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 += (hastighed_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;

}

}

hvis(er_periode1)

{

er_periode1 = 0;

t_sample();

if(er_tester&&er_da_tmp)

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

}

if(er_btn_scan==0)

Vend tilbage;

is_btn_scan = 0;

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

if(btn_val==0)

Vend tilbage;

if(btn_val<=0x10)

start_win_btn_click_handler(btn_val);

 

btn_val = 0;

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

}

 

Se kildekoden for mere.


Posttid: Dec-02-2023