[Código abierto] Instrumento de medición de cantidades múltiples de cemento

——Del foro de desarrolladores de DWIN

El galardonado estuche de código abierto recomendado por el foro DWIN se puede utilizar en la industria de la construcción para detectar el contenido de componentes de cemento: un instrumento de medición de cantidades múltiples de cemento basado en la pantalla inteligente T5L.Los ingenieros utilizan la pantalla inteligente T5L para controlar el módulo electrónico de detección de peso, el módulo de medición de temperatura, el módulo de calentamiento, el sensor de humedad y el módulo de mezcla para realizar la función de detección del contenido de componentes de solución sólida y cemento líquido, y admitir la visualización de la tasa en tiempo real. Configuración de temperatura, registro histórico, configuración de parámetros de etapa y otras funciones.

1. Estructura del programa

acdsb (1)

2. Visualización de materiales de la interfaz de usuario

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

3.Ejemplo de desarrollo de UI

acdsb (6)

4.Diseño de software C51

El programa de comando de inicialización para que el ingeniero se comunique con el tablero de control usando el puerto serie 2 del T5L es el siguiente:

anular app_init()

{

está_prueba = 0;

test_run_time = 0;

es_sec = 0;

periodo1 = 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+INICIO\r\n",sizeof("AT+INICIO\r\n")-1);

}

El programa principal de la pantalla inteligente T5L que interactúa con el tablero de control para realizar la función de detección de la composición del cemento es el siguiente:

anular btn_click_handler()

{

#definir BTN_VAL_ADDR 0x1000

u16 btn_val;

si(is_testing&&is_sec)

{

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

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

{

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

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

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

}de lo contrario si(uart2buf[0]==0x03&&uart2buf[1]==0x07)

{

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

disp_val += (velocidad_val*2.45f);

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

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

{

núm_total = uart2buf[1]*256+uart2buf[2];

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

{

is_en_tmp = uart2buf[2];

}

uart2rxsta = 0;

}

}

si(es_periodo1)

{

is_period1 = 0;

t_muestra();

si(is_testing&&is_en_tmp)

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

}

si(is_btn_scan==0)

devolver;

is_btn_scan = 0;

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

si(btn_val==0)

devolver;

si(btn_val<=0x10)

start_win_btn_click_handler(btn_val);

 

btn_val = 0;

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

}

 

Consulte el código fuente para obtener más información.


Hora de publicación: 02-dic-2023