[Open source] Alat Timbangan Multifungsi

——Ti DWIN Forum pamekar

Dina masalah ieu, urang nyorong kasus open-source anu meunang pangajén tina DWIN Developer Forum - Multi-function Weigher. Insinyur ngadopsi layar pinter COF 4 inci, sareng ngaliwatan interaksi data antara inti T5L OS sareng modul HX711 sareng set sensor tekanan 5kg, pangguna tiasa gampang ngawujudkeun fungsi tampilan cacah sapertos beurat, harga unit, harga total, tare, jsb. ., Kitu ogé fungsi cacah, nyukcruk kurva robah beurat, sarta koréksi akurasi weigher, jsb, ku kituna gampang pikeun pindah antara skenario aplikasi béda pikeun ngarasakeun pangalaman timbangan merenah tur efisien.

1. Pangwangunan UI

f26af533d43728cd210e0f7af5e7acc

2.C51 Desain

Bagian tina kode rujukan pikeun timbangan pikeun nerapkeun fungsi harga nyaéta kieu:

// Harga Kaca ====================

#define VALUATION_UNIT_PRICE_ADDR 0x1010

#define VALUATION_GRAM_ADDR 0x1000

#define VALUATION_TOTAL_PRICES_ADDR 0x1020

uint32_t valuation_decorticate = 0; // Beurat Tare Beurat

uint32_t valuation_unit_price = 0; //Harga hijian

// Refresh Harga Unit

batal page_valuation_unit_price_refresh()

{

uint8_t test_display [10] = {0};

upami(harga_unit_nilai

{

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

test_display [1] = '.';

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

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

dgus_show_text_value_set(VALUATION_UNIT_PRICE_ADDR, test_display, 4);

}

lain lamun (harga_unit_nilai

{

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

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

test_display [2] = '.';

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

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

dgus_show_text_value_set(VALUATION_UNIT_PRICE_ADDR, test_display, 4);

}

lain lamun(harga_unit_nilai

{

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

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

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

test_display [3] = '.';

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

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

dgus_show_text_value_set(VALUATION_UNIT_PRICE_ADDR, test_display, 4);

}

lain lamun(harga_unit_nilai

{

test_display [0] = valuation_unit_price / 100000 % 10 + 0x30;

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

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

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

test_display [4] = '.';

test_display [5] = valuation_unit_price / 10 % 10 + 0x30;

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

dgus_show_text_value_set(VALUATION_UNIT_PRICE_ADDR, test_display, 4);

}

}

 

// Beurat Anyarkeun

batal page_valuation_weight_refresh()

{

uint8_t test_display [10] = {0x30};

uint32_t gram_display = 0;

lamun(gram_value>= valuation_decorticate)

{

gram_display = gram_value - valuation_decorticate;

lamun(gram_display

{

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

dgus_show_text_value_set(VALUATION_GRAM_ADDR, test_display, 3);

}

lain lamun (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);

}

lain lamun (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);

}

lain lamun (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);

}

lain lamun (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);

}

}

lain

{

dgus_show_text_value_set(VALUATION_GRAM_ADDR, test_display, 3);

}

}

 

// Total Harga Refresh

batal page_valuation_price_refresh()

{

uint32_t price_value = 0;

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

lamun(gram_value>= valuation_decorticate)

{

price_value = (gram_value - valuation_decorticate) * valuation_unit_price * 2 / 1000;

lamun(harga_nilai

{

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

test_display [1] = '.';

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

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

dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, test_display, 4);

}

lain lamun (harga_nilai

{

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

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

test_display [2] = '.';

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

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

dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, test_display, 4);

}

lain lamun (harga_nilai

{

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

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

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

test_display [3] = '.';

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

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

dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, test_display, 4);

}

lain lamun (harga_nilai

{

test_display [0] = harga_harga / 100000 % 10 + 0x30;

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

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

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

test_display [4] = '.';

test_display [5] = harga_harga / 10 % 10 + 0x30;

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

dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, test_display, 4);

}

}

lain

{

dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, test_display, 4);

}

}

batal page_valuation_decorticate()

{

valuation_decorticate = nilai_gram;

page_valuation_weight_refresh();

}

void page_valuation_1()

{

lamun(harga_unit_nilai

{

valuation_unit_price = valuation_unit_price * 10 + 1;

page_valuation_unit_price_refresh();

}

}

void page_valuation_2()

{

lamun(harga_unit_nilai

{

valuation_unit_price = valuation_unit_price * 10 + 2;

page_valuation_unit_price_refresh();

}

}

void page_valuation_3()

{

lamun(harga_unit_nilai

{

valuation_unit_price = valuation_unit_price * 10 + 3;

page_valuation_unit_price_refresh();

}

}

void page_valuation_4()

{

lamun(harga_unit_nilai

{

valuation_unit_price = valuation_unit_price * 10 + 4;

page_valuation_unit_price_refresh();

}

}

void page_valuation_5()

{

lamun(harga_unit_nilai

{

valuation_unit_price = valuation_unit_price * 10 + 5;

page_valuation_unit_price_refresh();

}

}

void page_valuation_6()

{

lamun(harga_unit_nilai

{

valuation_unit_price = valuation_unit_price * 10 + 6;

page_valuation_unit_price_refresh();

}

}

void page_valuation_7()

{

lamun(harga_unit_nilai

{

valuation_unit_price = valuation_unit_price * 10 + 7;

page_valuation_unit_price_refresh();

}

}

void page_valuation_8()

{

lamun(harga_unit_nilai

{

valuation_unit_price = valuation_unit_price * 10 + 8;

page_valuation_unit_price_refresh();

}

}

void page_valuation_9()

{

lamun(harga_unit_nilai

{

valuation_unit_price = valuation_unit_price * 10 + 9;

page_valuation_unit_price_refresh();

}

}

batal page_valuation_0()

{

lamun(harga_unit_nilai

{

valuation_unit_price = valuation_unit_price * 10 + 0;

page_valuation_unit_price_refresh();

}

}

batal page_valuation_back()

{

valuation_unit_price = valuation_unit_price / 10;

page_valuation_unit_price_refresh();

}

void page_valuation_clear()

{

valuation_unit_price = 0;

page_valuation_unit_price_refresh();

}


waktos pos: Apr-28-2024