[Código aberto] Dispositivo de pesagem multifuncional

——Do Fórum de Desenvolvedores DWIN

Nesta edição, apresentamos o premiado case de código aberto do DWIN Developer Forum - Multi-function Weigher. O engenheiro adota uma tela inteligente COF de 4 polegadas e, por meio da interação de dados entre o núcleo do sistema operacional T5L e o módulo HX711 e o conjunto de sensores de pressão de 5 kg, os usuários podem facilmente realizar as funções de exibição de contagem, como peso, preço unitário, preço total, tara, etc. ., bem como as funções de contagem, rastreamento de curvas de mudança de peso e correção da precisão da balança, etc., para que seja fácil alternar entre diferentes cenários de aplicação para desfrutar de uma experiência de pesagem conveniente e eficiente.

1. Desenvolvimento de IU

f26af533d43728cd210e0f7af5e7acc

2. Projeto C51

Parte do código de referência para o pesador implementar a função de precificação é o seguinte:

//Página de preços===================

#define VALUATION_UNIT_PRICE_ADDR 0x1010

#define VALUATION_GRAM_ADDR 0x1000

#define VALUATION_TOTAL_PRICES_ADDR 0x1020

uint32_t avaliação_decorticate = 0; // Preço Tara Peso

uint32_t avaliação_unit_price = 0; //Preço unitário

// Atualização do preço unitário

página_avaliação_unit_price_refresh vazia()

{

uint8_t test_display[10] = {0};

if(avaliação_unit_price

{

test_display[0] = avaliação_unit_price / 100% 10 + 0x30;

test_display[1] = '.';

test_display[2] = avaliação_unit_price / 10% 10 + 0x30;

test_display[3] = avaliação_unit_price / 1% 10 + 0x30;

dgus_show_text_value_set(VALUATION_UNIT_PRICE_ADDR, test_display, 4);

}

senão if(avaliação_unit_price

{

test_display[0] = avaliação_unit_price / 1000% 10 + 0x30;

test_display[1] = avaliação_unit_price / 100% 10 + 0x30;

test_display[2] = '.';

test_display[3] = avaliação_unit_price / 10% 10 + 0x30;

test_display[4] = avaliação_unit_price / 1% 10 + 0x30;

dgus_show_text_value_set(VALUATION_UNIT_PRICE_ADDR, test_display, 4);

}

senão if(avaliação_unit_price

{

test_display[0] = avaliação_unit_price / 10000% 10 + 0x30;

test_display[1] = avaliação_unit_price / 1000% 10 + 0x30;

test_display[2] = avaliação_unit_price / 100% 10 + 0x30;

test_display[3] = '.';

test_display[4] = avaliação_unit_price / 10% 10 + 0x30;

test_display[5] = avaliação_unit_price / 1% 10 + 0x30;

dgus_show_text_value_set(VALUATION_UNIT_PRICE_ADDR, test_display, 4);

}

senão if(avaliação_unit_price

{

test_display[0] = avaliação_unit_price / 100000% 10 + 0x30;

test_display[1] = avaliação_unit_price / 10000% 10 + 0x30;

test_display[2] = avaliação_unit_price / 1000% 10 + 0x30;

test_display[3] = avaliação_unit_price / 100% 10 + 0x30;

test_display[4] = '.';

test_display[5] = avaliação_unit_price / 10% 10 + 0x30;

test_display[6] = avaliação_unit_price / 1% 10 + 0x30;

dgus_show_text_value_set(VALUATION_UNIT_PRICE_ADDR, test_display, 4);

}

}

 

// Atualização de peso

vazio page_avaliação_weight_refresh()

{

uint8_t test_display[10] = {0x30};

uint32_t gram_display = 0;

if(gram_value >= avaliação_decorticate)

{

gram_display = gram_value - avaliação_decorticate;

if(gram_display

{

test_display[0] = gram_display / 1% 10 + 0x30;

dgus_show_text_value_set(VALUATION_GRAM_ADDR, test_display, 3);

}

senão if(gram_display

{

test_display[0] = gram_display / 10% 10 + 0x30;

test_display[1] = gram_display / 1% 10 + 0x30;

dgus_show_text_value_set(VALUATION_GRAM_ADDR, test_display, 3);

}

senão if(gram_display

{

test_display[0] = gram_display / 100% 10 + 0x30;

test_display[1] = gram_display / 10% 10 + 0x30;

test_display[2] = gram_display / 1% 10 + 0x30;

dgus_show_text_value_set(VALUATION_GRAM_ADDR, test_display, 3);

}

senão if(gram_display

{

test_display[0] = gram_display / 1000% 10 + 0x30;

test_display[1] = gram_display / 100% 10 + 0x30;

test_display[2] = gram_display / 10% 10 + 0x30;

test_display[3] = gram_display / 1% 10 + 0x30;

dgus_show_text_value_set(VALUATION_GRAM_ADDR, test_display, 3);

}

senão if(gram_display

{

test_display[0] = gram_display / 10000% 10 + 0x30;

test_display[1] = gram_display / 1000% 10 + 0x30;

test_display[2] = gram_display / 100% 10 + 0x30;

test_display[3] = gram_display / 10% 10 + 0x30;

test_display[4] = gram_display / 1% 10 + 0x30;

dgus_show_text_value_set(VALUATION_GRAM_ADDR, test_display, 3);

}

}

outro

{

dgus_show_text_value_set(VALUATION_GRAM_ADDR, test_display, 3);

}

}

 

// Atualização total do preço

nula página_avaliação_preço_refresh()

{

uint32_t preço_valor = 0;

uint8_t test_display[10] = {0x30, '.', 0x30, 0x30};

if(gram_value >= avaliação_decorticate)

{

preço_valor = (grama_valor - avaliação_decorticado) * avaliação_unit_preço * 2/1000;

if(preço_valor

{

test_display[0] = preço_valor / 100% 10 + 0x30;

test_display[1] = '.';

test_display[2] = preço_valor / 10% 10 + 0x30;

test_display[3] = preço_valor / 1% 10 + 0x30;

dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, test_display, 4);

}

senão if(valor_preço

{

test_display[0] = preço_valor / 1000% 10 + 0x30;

test_display[1] = preço_valor / 100% 10 + 0x30;

test_display[2] = '.';

test_display[3] = preço_valor / 10% 10 + 0x30;

test_display[4] = preço_valor / 1% 10 + 0x30;

dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, test_display, 4);

}

senão if(valor_preço

{

test_display[0] = preço_valor / 10000% 10 + 0x30;

test_display[1] = preço_valor / 1000% 10 + 0x30;

test_display[2] = preço_valor / 100% 10 + 0x30;

test_display[3] = '.';

test_display[4] = preço_valor / 10% 10 + 0x30;

test_display[5] = preço_valor / 1% 10 + 0x30;

dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, test_display, 4);

}

senão if(valor_preço

{

test_display[0] = preço_valor / 100000% 10 + 0x30;

test_display[1] = preço_valor / 10000% 10 + 0x30;

test_display[2] = preço_valor / 1000% 10 + 0x30;

test_display[3] = preço_valor / 100% 10 + 0x30;

test_display[4] = '.';

test_display[5] = preço_valor / 10% 10 + 0x30;

test_display[6] = preço_valor / 1% 10 + 0x30;

dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, test_display, 4);

}

}

outro

{

dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, test_display, 4);

}

}

página vazia_avaliação_decorticate()

{

avaliação_decorticate = grama_valor;

page_avaliação_weight_refresh();

}

página_avaliação_1 vazia()

{

if(avaliação_unit_price

{

avaliação_unit_price = avaliação_unit_price * 10 + 1;

page_avaliação_unit_price_refresh();

}

}

página_avaliação_2 vazia()

{

if(avaliação_unit_price

{

avaliação_unit_price = avaliação_unit_price * 10 + 2;

page_avaliação_unit_price_refresh();

}

}

página nula_avaliação_3()

{

if(avaliação_unit_price

{

avaliação_unit_price = avaliação_unit_price * 10 + 3;

page_avaliação_unit_price_refresh();

}

}

página nula_avaliação_4()

{

if(avaliação_unit_price

{

avaliação_unit_price = avaliação_unit_price * 10 + 4;

page_avaliação_unit_price_refresh();

}

}

página_avaliação_5 vazia()

{

if(avaliação_unit_price

{

avaliação_unit_price = avaliação_unit_price * 10 + 5;

page_avaliação_unit_price_refresh();

}

}

página nula_avaliação_6()

{

if(avaliação_unit_price

{

avaliação_unit_price = avaliação_unit_price * 10 + 6;

page_avaliação_unit_price_refresh();

}

}

página nula_avaliação_7()

{

if(avaliação_unit_price

{

avaliação_unit_price = avaliação_unit_price * 10 + 7;

page_avaliação_unit_price_refresh();

}

}

página nula_avaliação_8()

{

if(avaliação_unit_price

{

avaliação_unit_price = avaliação_unit_price * 10 + 8;

page_avaliação_unit_price_refresh();

}

}

página nula_avaliação_9()

{

if(avaliação_unit_price

{

avaliação_unit_price = avaliação_unit_price * 10 + 9;

page_avaliação_unit_price_refresh();

}

}

página_avaliação_0 vazia()

{

if(avaliação_unit_price

{

avaliação_unit_price = avaliação_unit_price * 10 + 0;

page_avaliação_unit_price_refresh();

}

}

página_avaliação_back nula()

{

avaliação_unit_price = avaliação_unit_price / 10;

page_avaliação_unit_price_refresh();

}

página vazia_avaliação_clear()

{

avaliação_unit_price = 0;

page_avaliação_unit_price_refresh();

}


Horário da postagem: 28 de abril de 2024