Ap3_G: Arduino váha s tenzometry a HX711

Autor: František Hruška

Projekt Apl3_G je řešení aplikace Arduino pro řešení vah, procesu vážení neboli měření hmotnosti. Vážení je potřebná metoda používaná doma i mimo domov, pomocí přírůstku se sleduje změna technologie nebo i přírůstky hmotnosti člověka, včel, zvířat atd.

Obr.6

Vyhodnocovací jednotka a zobrazovací displej OLED 1,3"

Hardware – co budete potřebovat

Popis řešení

Princip řešení je na obr. 1. Obsahuje snímač (1), převodník (2), vyhodnocovací mikropočítačovou jednotku (3), zobrazovací zařízení (4) případně mobilní telefon (5).

Obr_1

Obr.1 Systémová struktura měření síly, a hmotnosti

Reálné řešení aplikace vychází z prvků systému Arduino a vyvinutým aplikačním softwarem. Snímače jsou voleny z dostupných deformačních snímačů síly a hmotnosti v profesionálním nebo amatérském provedení. Lze najít hodně vyřazených a nefunkčních osobních vah, kde lze s výhodou použít tenzometrické senzory, které jsou prakticky nezničitelné.

Popisovaný návrh vychází z obr. 2. Obsahuje blok senzorů, propojovací DPS, modul HX711, Arduino UNO, propojení HC05 bluetooth, displej OLED a zdroj baterie 9V. Realizace vytvořila dvě části, blok snímání s můstkem senzorů a vyhodnocovací jednotku obsahující Arduino UNO a desku SOIC nesoucí modul HX711, modul HC05, displej OLED a zdroj baterie 9V.

Obr_2

Obr. 2 Blokové schéma aplikace Ap3_G_bee.

Signál ze senzorů je nutné zapojit na převodník odpor–napětí, jednotku pro zesílení a úpravu před propojením s mikropočítačovou jednotkou. V systému Arduino je nabízen modul HX711, obsahuje integrovaný zesilovač malých napětí ze senzorů v můstkovém zapojení a až 24bitový ADC převodník.

Ze systému Arduino je použit také mikropočítačový modul UNO, lze volit typy UNO R3, UNO R4 MINIMA a UNO R4 WiFi. Pro místní zobrazení se nabízí displej OLED o velikosti 0,96" nebo 1,3" nebo i mobilní telefon s připojením bluetooth. Schéma celé sestavy HW aplikace je na obr. 2.

Snímače hmotnosti

Jako snímač hmotnosti se obecně používají deformační členy s tenzometrickým senzorem. Tento tenzometrický senzor využívá princip změny elektrické rezistence (elektrického odporu) podle změny jeho délky působením zátěže hmotnosti. Tenzometr je kovové nebo polovodičové tělísko ve tvaru folie nebo drátku nalepené do plochy citlivé na působení síly.

Obr_3

Obr.3 Tenzometr drátový na keramickém tělísku nebo foliový

Praktické provedení snímače hmotnosti, síly apod. ukazuje obr. níže:

Obr_4

Obr.4 Deformační snímače sil: ½ můstek, 1/1 můstek ohybový, 1/1 můstek tlak nebo tah.

V amatérské aplikaci lze použít senzor ze staré osobní váhy, jednotlivý tenzometr má jmenovitý elektrický odpor 1000 Ω. Tenzometry se musí pro převod změny elektrického odporu na malé elektrické napětí zapojit do odporového můstku. Můstek je používán také pro svoji vysokou citlivost a má možnost také kompenzovat vnější negativní vlivy. Pro popisovanou aplikaci je použito zapojení dvou dvojitých senzorů v zapojení podle obr. 5.

Obr_5

Obr.5 Zapojení senzorů do můstku a zapojení propojení snímací části.

Jsou použity snímače s dvěma tenzometry, dolní R1+R3 a horní R2 a R4, vždy zatíženy společně, ale zapojeny tak, že jeden zvětšuje odpor a druhý jej snižuje. Mezi senzory je ještě použit přídavný odpor Rp pro správné nastavení výstupního napětí můstku a eliminaci velkého rozdílu odporů senzorů.

Na obrázku 5 je také schéma provedení plošného spoje pro správné spojení dvou snímačů a zapojení přídavného odporu Rp, který na obr. 5 je ve větvi (A-), protože nerovnováha použitých tenzometrů v můstku dává velký kladný rozdíl napětí (A+)-(A-). V případě záporného rozdílu na (A+)-(A-) se umístí Rp na větvi (A+) místo propojky v kruhu na obr.5. Hodnota Rp se volí tak, aby rozdíl napětí na (A+)-(A-) byl mírně v záporné hodnotě blízko nuly.

Na obr. 5 je také zapojení pro kódování můstku v případě, že aplikace potřebuje vážit na více místech, např. pro více úlů. Jedná se o kódování spojováním tří vodičů s váhou 1 vodič (1), s váhou 2 vodič (2) a váhou 4 vodič (4) s GND. Podle osmi kombinací spojení se dá kódovat můstky od kódu 0 do 7.

Spojení můstku přes desku propojení s jednou vyhodnocovací jednotkou je kabely W3a a W3b. Kabel W3a s vodiči z můstku má navíc ještě vodič stínění, svorku S0. Na obr. 5 je ještě zobrazeno spojení snímací části s vyhodnocovací jednotkou pomocí konektorů Canon.

Vyhodnocovací jednotka

Vyhodnocování výstupů případně řízení funkce vah provádí obsluha přes vyhodnocovací jednotku. Je to druhá část aplikace. Ukrývá sestavu modulu UNO a nasazené desky SOIC, zdroj napájení baterie 9V, na krytu je OLED displej, konektor a vypínač, viz obr. 6. níže. Lze použít jakoukoli krabici vhodných rozměrů a krytí.

Převodník

Výstup můstku snímací části je změna odporů čtyř senzorů R1, R2, R3, R4 jako rozdíl napětí v bodech A+ a A-. Toto je velmi malé napětí v řádu desetin mV, musí se zesílit na hodnotu do 5V a následně převést až na 24bitové binární číslo. Výstupy modulu HX711 jsou pro napájení 5V (svorky E+ a E-) a pro výstup čísla na piny Arduina (pin 2, SCL a 3, DT).

Modul UNO a deska SOIC

Řídicím prvkem aplikace je modul s jednotkou Arduino. Je navrženo použití typu UNO R3 nebo UNO R4 WiFi nebo UNO R4 MINIMA. Napojení ze snímací části (kabel W3a od můstku a W3b od kódování) a na výstupní část (modul HC05, modul HX711 a napojení na OLED a napájení) je přes propojovací desku SOIC, viz obr. 7.

Obr.7.

Obr. 7. Zapojení desky SOIC_Ap3_G

Modul propojení na desce SOIC (oboustranná s pocínovanými otvory) tvoří kvalitní propojovací a nosnou část a lze ji dobře propojit s modulem UNO.

Aplikace Ap3_G

Jako vzorovou příkladnou aplikaci pro praktické použití jsou naprojektovány váhy pro včelaře, případně pro vytvoření váhy s využitím snímače vyřazené osobní váhy.

Snímací část je realizována jako nosný kříž se zátěžnou deskou, na jedné straně jsou umístěny dva dvojité snímače se_1 a se_2, DPS propojení a kabel W3a+W3b, konektor Canon (9 pinů). Zátěžná deska tvoří i krytí. Naměřená hodnota je rovná třetině celkové hmotnosti (obr. 8). Pro přesnější vážení je vhodné realizovat kříž se čtyřmi snímači.

Obr_8

Obr. 8. Konstrukce snímací části

Softwarová část aplikace

Pro navržený HW bylo vyvinuto programové vybavení pro praktické aplikace. Bylo naprogramováno několik verzí s cílem ověřit:

  • Funkce algoritmů s modulem HX711.
  • Funkce zobrazování pro existující dva typy OLED (velikost 0,96 a 1,3"), pro dva druhy knihoven: Adafruit_SSD1306.h a SH110x.h.
  • Ověření funkce aplikace s moduly UNO R3 a UNO R4.
  • Testování přesnosti a citlivosti vážení.
  • Stanovení výpočtových konstant cejchováním.

Nejvíce práce bylo dáno na vývoj algoritmů pro modul HX711. Byly ověřovány jednak obě metody čtení hodnot z modulu HX711 a jednak zajištění opakovatelnosti a citlivosti při vyhodnocení vážení. V návodech k modulu HX711 se především uvádí metoda podle knihovny HX711.h a funkcí spusteniMereni(byte mericiMod) ...nebo metoda přímého čtení HX711.read() nebo HX711.get() a s dalšími funkcemi. Pro tuto aplikaci byla zvolena metoda první a je dále uveden program Ap3_g_4_BT_oled.ino. Je to 4. verze programu s možností výstupu přes BT a OLED, s možností rozpoznávání 8 snímacích bodů podle kódů nastavených na DPS propojení snímací části a zadávání parametrů offset[8] a g_index[8] podle kódů pro vyhodnocování hmotnosti v (kg).

Další velký problém bylo zajištění stability a opakovatelnosti výsledků a parametrů. Stabilita vyjadřuje dlouhodobou opakovatelnost, např. během měsíců nebo roku, konstantní citlivost, offset drift a další parametry u zařízení. Opakovatelnost znamená, že každé měření je stejné a kompenzují se náhodné vlivy. Krátkodobé změny popisuje parametr offset (posuv nuly) a drift (pomalu rostoucí chyba).

Stabilita a opakovatelnost

Testování ukázalo konkrétní rozsah těchto problémů. Při prvním spuštění zapojení aplikace, a i v dalším čase se projevily ve velkém rozsahu nestabilita a opakovatelnost, náhodně v různém okamžiku byly rozdíly až na hranici použitelnosti aplikace. Mnoho času si vyžádalo hledání příčin a jejich analýza.

První příčinou bylo nedostatečná čistota HW, především letovaných míst na DPS. Toto musí být hodně umyté a odsáté nebo vyfoukané. Ta citlivost HX711 přes PGA zesilovače a 24bit ADC převod zpracovává napětí pod 1 mV. Další nutnost je mít u kabelu z můstku stínění, tj. Al obal a stínící lankový vodič. Pro amatéra to může být kabel u nefunkčního datového USB kabelu, ale v provedení, který má toto stínění a dále má kvalitní 4 vodiče.

Cejchování zařízení

Cejchovat váhy znamená pro sestavu měřícího snímače nulovat, tj. nastavit parametry pro vyhodnocení na hodnoty hmotnosti v jednotkách kg, aby při nulové zátěži byl výstup přesně 0,0 kg.

Cejchování lze provádět i automaticky. V aplikaci Ap3_G_4 je nulování provedeno samostatným programem Ap3_G_4_cejch.ino. Postup vyžaduje podle vypisovaných pokynů v úvodu programu dát na snímače cejchovní hmotnost (např. 1/10 rozsahu vážení), pak tuto hmotnost odebrat, tak aby vážení mělo 0,0 kg zátěž, program vypočte hodnoty offset a g_index. Tyto hodnoty se následně vepíší do programu aplikace jako proměnná ofset[kód] a g_index[kod] do pole hodnot pro snímače podle kódu parametru b_pin.

Nejdříve se stanoví g_index[kod]. Hodnota výstupu HX711 při cejchovní zátěži je output1, při nulové zátěži je výstup output0, a hodnota g_index=(output1-output0)/cejch_kg, kde cejch_kg je cejchovní zátěž. Hodnota ofset[kod] se stanoví automaticky v programu z hodnoty output1 výstupu HX711 při nulové zátěži po odebrání cejchovní zátěže.

Další část programu v rámci cejchování je provedení funkce „tara", tj. eliminace nebo potlačení hmotnosti obalu či nádoby a stanovení hmotnosti čistě a pouze vážené hmotnosti. Po stlačení tlačítka „tare" na vyhodnocovací jednotce se při zátěži obalu nebo nádoby odečte output1 a uloží se do hodnoty proměnné ofset[kod]. Je-li nutné následně vážit bez táry, je nutno stlačit tlačítko při nulové zátěži a upraví se hodnota offset s nulovou zátěží.

Možnosti dalšího aplikování

Procesy vážení jsou v praxi běžné a vyhledávané. Může se jednat o příležitostné vážení různých předmětů, může se jednat o sestavení osobní váhy nebo kuchyňské váhy, nebo váhy sledování přírůstku hmotnosti nástavku úlu pro včelaře, nebo váhy popelnice pro sledování odvozu komunálního odpadu atd.

Zajímavá řešení se nabízí pro staré mechanické váhy, např. pro decimálky, celokovové kuchyňské váhy (viz obr. 9), nebo různá moderní zařízení, např. chytrý odpadní koš (hlásí vybrání při naplnění), plnění pytlů na lince, průběžné vážení kusového paliva do kotle atd.

Obr_9

Obr. 9. Historické váhy

Závěr

Popisovaná aplikace prezentuje návrh řešení aplikace Arduino pro vážení a realizaci pro primární užití. Má ale několik možností dále rozvinout tuto aplikaci pro zlepšené užití, ale také pro aplikace využívající odporové senzory v můstkovém zapojení. Aplikuje modul HX711, velmi citlivé zapojení s vysokými nároky na zpracování velmi malých analogových signálů. Zobrazení výsledků je řešeno komunikací Bluetooth s mobilem nebo na OLED displej přímo na vyhodnocovací jednotce.

Uživatelský program Ap3_G_4_BT_oled_f.ino je v příloze společně s dalším programem, Ap3_G_4_BT_cejch pro cejchování zařízení. Jsou kompatibilní s IDE systému Arduino.

Ke stažení

Úvodní obrázek - https://commons.wikimedia.org/wiki/File:Balance_scale_IMGP9722.jpg

Diskuze (0)

Buďte první, kdo napíše příspěvek k této položce.

Nevyplňujte toto pole