[Avoin lähdekoodi] Sementti usean määrän mittauslaite

——DWIN-kehittäjäfoorumista

DWIN-foorumin suosittelemaa palkittua avoimen lähdekoodin koteloa voidaan käyttää rakennusteollisuudessa sementin komponenttipitoisuuden havaitsemiseen - T5L-älynäyttöön perustuva sementin monimääräinen mittauslaite.Insinöörit käyttävät T5L-älynäyttöä elektronisen painontunnistusmoduulin, lämpötilan mittausmoduulin, lämmitysmoduulin, kosteusanturin ja sekoitusmoduulin ohjaamiseen kiinteän liuoksen ja nestemäisen sementin komponenttien tunnistustoiminnon toteuttamiseksi ja nopeuden reaaliaikaisen näytön tukemiseksi, lämpötilan asetus, historiatietue, vaiheparametrien asetus ja muut toiminnot.

1. Ohjelman rakenne

acdsb (1)

2. Käyttöliittymän materiaalinäyttö

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

3. Käyttöliittymän kehitysesimerkki

acdsb (6)

4.C51 ohjelmistosuunnittelu

Alustuskomentoohjelma, jonka insinööri voi kommunikoida ohjauskortin kanssa T5L-sarjaportin 2 avulla, on seuraava:

void app_init()

{

on_testaus = 0;

testiajon_aika = 0;

is_sec = 0;

jakso 1 = 0;

on_jakso1 = 0;

uart2_init(115200);

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

sys_delay_ms(2500);

sys_pic(1);

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

}

T5L-älynäytön pääohjelma, joka on vuorovaikutuksessa ohjauskortin kanssa sementin koostumuksen havaitsemisen toteuttamiseksi, on seuraava:

void btn_click_handler()

{

#define BTN_VAL_ADDR 0x1000

u16 btn_val;

if(on_testing&&on_sec)

{

is_sec = 0;

test_run_time++;

btn_val = sprintf(commbuff,"%02u:%02u",(u16)(testin_ajoaika/60),(u16)(testin_ajoaika%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)

{

aloituspaino = *(kelluke*)(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)

{

nopeus_arvo = *(kelluke*)(uart2buf+2);

disp_val += (nopeus_arvo*2.45f);

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

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

{

kokonaismäärä = uart2buf[1]*256+uart2buf[2];

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

{

is_en_tmp = uart2buf[2];

}

uart2rxsta = 0;

}

}

jos(on_jakso1)

{

on_jakso1 = 0;

t_sample();

if(on_testing&&is_en_tmp)

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

}

if(is_btn_scan==0)

palata;

is_btn_scan = 0;

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

if(btn_val==0)

palata;

if(btn_val<=0x10)

start_win_btn_click_handler(btn_val);

 

btn_val = 0;

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

}

 

Katso lisätietoja lähdekoodista.


Postitusaika: 02.12.2023