[Open Source] Przyrząd do pomiaru wielu ilości cementu

—— Z forum programistów DWIN

Wielokrotnie nagradzana obudowa typu open source, rekomendowana przez forum DWIN, może znaleźć zastosowanie w branży budowlanej do wykrywania zawartości składników cementu - wieloilościowy przyrząd pomiarowy cementu oparty na inteligentnym ekranie T5L.Inżynierowie używają inteligentnego ekranu T5L do sterowania elektronicznym modułem wykrywania masy, modułem pomiaru temperatury, modułem grzewczym, czujnikiem wilgoci i modułem mieszania, aby zrealizować funkcję wykrywania zawartości stałego roztworu i składników płynnego cementu oraz wspierać wyświetlanie szybkości w czasie rzeczywistym, ustawienie temperatury, zapis historii, ustawienie parametrów etapu i inne funkcje.

1. Struktura programu

ACDSb (1)

2. Wyświetlacz materiału interfejsu użytkownika

ACDSb (2)
ACDSB (4)
ACDSB (3)
ACDSB (5)

3.Przykład rozwoju interfejsu użytkownika

ACDSB (6)

4. Projektowanie oprogramowania C51

Program poleceń inicjujących umożliwiający inżynierowi komunikację z płytą sterującą za pomocą portu szeregowego 2 T5L jest następujący:

unieważnij aplikację_init()

{

is_testowanie = 0;

czas_testowania = 0;

is_sec = 0;

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

}

Główny program inteligentnego ekranu T5L współpracującego z centralą sterującą w celu realizacji funkcji wykrywania składu cementu jest następujący:

unieważnij btn_click_handler()

{

#zdefiniuj 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;

}

}

jeśli(is_okres1)

{

is_period1 = 0;

t_przykład();

if(is_testing&&is_en_tmp)

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

}

if(is_btn_scan==0)

powrót;

is_btn_scan = 0;

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

if(btn_val==0)

powrót;

if(btn_val<=0x10)

start_win_btn_click_handler(btn_val);

 

btn_val = 0;

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

}

 

Więcej informacji znajdziesz w kodzie źródłowym.


Czas publikacji: 02-12-2023