Oblast aplikací
Při řešení úloh IoT (internetu věcí), automatizace, medicíny jsou často používány odporové senzory.
Princip je jednoduchý, měřená veličina působící na citlivou hmotu senzoru mění elektrickou rezistenci
– dále jen odpor. Vyhodnocení změny odporu takových senzorů na elektrické napětí pro další
propojení senzorů s měřidly, vyhodnocovacími systémy, regulátory atd. je možné několika způsoby.
Často používaná metoda využívá obvod můstkového zapojení. Přináší mnoho výhod, od
jednoduchosti přes přesnost, citlivost, kompenzaci vnějších vlivů. Schéma je na obr.1.
Napětí U0 vzniká podle změn odporů senzoru (R1 nebo R1,R2 nebo R1,R4 nebo R1, R2, R3, R4 podle
druhu můstku. Je relativně malé v řádu jednotek mV, je nutné ho zesílit na hodnoty jednotek V.
V nabídce Arduino je zajímavý obvod, který řeší zesílení výstupu můstku, jeho připojení
k mikropočítači způsobem datového připojení. Schéma připojení je na obr.2.
Na obr.2 je nakreslen můstek 4 odporů ale dvojitých. Důvodem je použití takových senzorů u
osobních vah a jiných snímačů senzorů dostupných z Číny. Jsou dostatečně kvalitní. Schéma je na
obr.3.
Vyhodnocovací obvod
Další části aplikace je elektronika pro vyhodnocení rozdílu napětí z můstku. V sortimentu ARDUINO je
modul AD převodník 24-bit 2 kanály HX711, používá integrovaný obvod (IO) společnosti AVIA
Semiconductor. Základem je integrovaný až 24 bitový analog-číslicový převodník (ADC). Obvod je
přímo určený pro aplikace s odporovými senzory v můstkovým zapojením, zajišťuje přesné napájení
můstku, má dva kanály vyhodnocení s různým zesílením, výstup je datový se speciálním protokolem
s hodinovým signálem CKL a datovým výstupem s připojením na dva binární piny.
Obvod lze napojit na odporový můstek a na mikropočítačový modul např. typu UNO R3, UNO R4,
případně další.
Výsledky rešerše
V literatuře Arduino je hodně odkazů s popisy a návody pro modul HX711, viz kapitola Literatura.
Popisy obsahují dva hlavní způsoby práce s modulem. Využívá se základních funkcí „spusteniMereni()“ a nebo přímé příkazy read() a get(). Doplňujícími příkazy jsou příkazy pro hodnocení tary, tj. vážení samostatného obalu a následně vážení hmotnosti bez obalu.
Algoritmus s funkcí spusteniMereni
Základní struktura tohoto algoritmu je níže:
Algoritmus je součástí testovací programu HX711_1_test.ino. Celý zdrojový text je dále:
Výsledek je vypsán ve tvaru:
Poznámky:
- Hodnota output1 na výpisu je ze vzorkování v části setup. Hodnota output2 je z opakování v části loop a mění se.
- Hodnoty jsou bez přepočtů zesílení (viz vyblokovaná část v závěru funkce spusteniMereni blok switch(mericiMod).
Algoritmus přímých příkazů
Druhá možnost ovládat modul HX711 je použití přímých příkazů read a get. Struktura tohoto
algoritmu:
Algoritmus je součástí testovací programu HX711_2_test.ino. Celý zdrojový text je dále:
Testovací program vypisuje výsledky ve tvaru:
Poznámky:
- Hodnoty na výpisu jsou z výstupů z příkazů, v části setup i loop. Hodnoty Out1 až Out4 jsou rozdílné průměrování a matematickou operací.
- Hodnoty jsou bez přepočtů.
Závěr
- Jsou popsány dva algoritmy, každý má výhodu i nevýhody, hodnotím je jako stejně kvalitní, pomocí přímých příkazů je to navíc větší možnosti pro aplikace.
- Je pozorováno, že hodnota výstupů z modulu HX711 u obou algoritmů se dosti výrazně mění po zapnutí funkce a ustálí se po cca 2 minutách, ale i zde dost výrazně kolísá. Zlepšení vzniká při přepočtech na fyzikální jednotky.
- Modul HX711 je zajímavý obvod i přes velký drift a nestabilitu pro vyhodnocování odporových senzorů v můstkovém zapojení. Odporové senzory a můstkové zapojení jsou často aplikované a přináší mnoho výhod, jako např. u tenzometrů vah, u odporových senzorů teploty atd.
Tárování
Slovo tára znamená hmotnost obalu nebo jiné části váženého objektu (např. váha automobilu, která
objekt přepravuje. Funkce tárování patří v praxi k velmi důležitým podle druhu vážení, proto jeho
volba je ovládaná tlačítkem. Princip tárování je jednoduchý, vážíme vlastně samostatně obal, jeho
hmotnost se vynuluje a pak se v dalším vážení ukazuje jen čistá hmotnost obsahu obalu, nádoby atd.
Funkce ZERO je nulování, tj. vynulujeme údaj na ukazateli.
Literatura
- Hruška F Senzory: fyzikální principy, úprava signálů, praktické použití. UTN Zlín, 2021, ISBN: 978-80-7454-096-7, https://digilib.k.utb.cz/handle/10563/18582
- Katalogový list obvodu HX711, https://cdn.sparkfun.com/datasheets/Sensors/ForceFlex/hx711_english.pdf
- https://randomnerdtutorials.com/arduino-load-cell-hx711/
- https://www.instructables.com/Arduino-Scale-With-5kg-Load-Cell-and-HX711-Amplifi/ zde jsou funkční nulování+calib (HX711_nul_test) a vážení (HX711_get_test).
- https://www.laskakit.cz/ad-prevodnik-modul-24-bit-2-kanaly-hx711/
