[Código Aberto] Instrumento de Medição de Múltiplas Quantidades de Cimento

——Do Fórum de Desenvolvedores DWIN

O premiado sistema de código aberto recomendado pelo fórum DWIN pode ser utilizado na indústria da construção civil para detectar a composição do cimento – um instrumento de medição de múltiplos componentes de cimento baseado na tela inteligente T5L. Os engenheiros utilizam a tela inteligente T5L para controlar o módulo eletrônico de detecção de peso, o módulo de medição de temperatura, o módulo de aquecimento, o sensor de umidade e o módulo de mistura, realizando a função de detecção da composição do cimento, tanto em solução sólida quanto líquida, e suportando a exibição em tempo real da taxa de dosagem, configuração de temperatura, registro de histórico, configuração de parâmetros de estágio e outras funções.

1. Estrutura do Programa

acdsb (1)

2. Exibição de Material Design da Interface do Usuário

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

3. Exemplo de Desenvolvimento de Interface do Usuário

acdsb (6)

4.C51 projeto de software

O programa de comando de inicialização para o engenheiro se comunicar com a placa de controle usando a porta serial 2 do T5L é o seguinte:

void app_init()

{

é_teste = 0;

tempo_de_execução_de_teste = 0;

is_sec = 0;

período1 = 0;

is_period1 = 0;

uart2_init(115200);

enviar_bytes("AT+INIT=0\r\n",sizeof("AT+INIT=0\r\n")-1);

sys_delay_ms(2500);

sys_pic(1);

enviar_bytes("AT+START\r\n",sizeof("AT+START\r\n")-1);

}

O programa principal da tela inteligente T5L, que interage com a placa de controle para realizar a função de detecção da composição do cimento, é o seguinte:

void btn_click_handler()

{

#define BTN_VAL_ADDR 0x1000

u16 botão_val;

se(é_teste&&é_segundo)

{

is_sec = 0;

tempo_de_execução_de_teste++;

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

se(uart2rxsta&UART2_PACKET_OK)

{

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

{

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

init_weight *= (*(float*)flashdata);

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

} senão se(uart2buf[0]==0x02&&uart2buf[1]==0x05)

{

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

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

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

} senão se(uart2buf[0]==0x03&&uart2buf[1]==0x07)

{

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

disp_val += (speed_val*2.45f);

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

} senão se(uart2buf[0]==0x04)

{

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

} senão se(uart2buf[0]==0x05)

{

is_en_tmp = uart2buf[2];

}

uart2rxsta = 0;

}

}

se(é_período1)

{

is_period1 = 0;

t_sample();

se(is_testing&&is_en_tmp)

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

}

se(is_btn_scan==0)

retornar;

is_btn_scan = 0;

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

se (btn_val==0)

retornar;

se(btn_val

iniciar_manipulador_de_clique_do_botão_win(btn_val);

 

btn_val = 0;

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

}

 

Consulte o código-fonte para mais detalhes.


Data da publicação: 02/12/2023