[Open Source] Instrument de mesure multi-quantités de ciment

——Depuis le forum des développeurs DWIN

Le cas open source primé recommandé par le forum DWIN peut être utilisé dans l'industrie de la construction pour détecter la teneur en composants de ciment - un instrument de mesure de quantités multiples de ciment basé sur l'écran intelligent T5L.Les ingénieurs utilisent l'écran intelligent T5L pour contrôler le module de détection électronique du poids, le module de mesure de la température, le module de chauffage, le capteur d'humidité et le module de mélange afin de réaliser la fonction de détection de la solution solide et du contenu des composants de ciment liquide, et de prendre en charge l'affichage en temps réel du taux, réglage de la température, enregistrement de l'historique, réglage des paramètres de scène et autres fonctions.

1. Structure du programme

acdsb (1)

2. Affichage du matériel de l'interface utilisateur

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

3.Exemple de développement d'interface utilisateur

acdsb (6)

Conception du logiciel 4.C51

Le programme de commande d'initialisation permettant à l'ingénieur de communiquer avec la carte de commande à l'aide du port série 2 du T5L est le suivant :

annuler app_init()

{

est_testing = 0 ;

test_run_time = 0 ;

est_sec = 0 ;

période1 = 0 ;

est_période1 = 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);

}

Le programme principal de l'écran intelligent T5L interagissant avec le tableau de commande pour réaliser la fonction de détection de la composition du ciment est le suivant :

annuler btn_click_handler()

{

#définir BTN_VAL_ADDR 0x1000

u16 btn_val;

si (is_testing&&is_sec)

{

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

si(uart2rxsta&UART2_PACKET_OK)

{

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

{

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

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

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

}sinon si(uart2buf[0]==0x02&&uart2buf[1]==0x05)

{

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

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

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

}sinon si(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);

}sinon si(uart2buf[0]==0x04)

{

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

}sinon si(uart2buf[0]==0x05)

{

is_en_tmp = uart2buf[2];

}

uart2rxsta = 0;

}

}

si (est_période1)

{

est_période1 = 0 ;

t_échantillon();

si(is_testing&&is_en_tmp)

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

}

si(is_btn_scan==0)

retour;

est_btn_scan = 0 ;

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

si(btn_val==0)

retour;

si(btn_val<=0x10)

start_win_btn_click_handler(btn_val);

 

btn_val = 0 ;

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

}

 

Reportez-vous au code source pour en savoir plus.


Heure de publication : 02 décembre 2023