- Potrebné komponenty na zostavenie váhy Arduino Weight Scale:
- Snímač hmotnosti a modul snímača hmotnosti HX711:
- Vysvetlenie obvodu:
- Pracovné vysvetlenie:
- Kód váhy Arduino:
Dnes budeme stavať Arduino Wight stroj, pomocou rozhrania silomer a HX711 čidlá s Arduino Weight. Váhové stroje sme videli v mnohých obchodoch, kde stroj zobrazuje váhu iba položením položky na váhovú plošinu. Takže tu budujeme rovnaký vážiaci stroj pomocou Arduino a silomerov s kapacitou až 40 kg. Tento limit je možné ďalej zvýšiť použitím zaťažovacej bunky s vyššou kapacitou.
Hlavným komponentom potrebným na zostavenie tejto váhy Arduino je senzor, ktorý dokáže prevádzať váhu na ekvivalentný elektrický signál. Tento snímač sa nazýva ako silomer, takže v tomto projekte použijeme tento silomer ako náš senzor hmotnosti Arduino. Rovnakú záťažovú bunku sme použili aj v niekoľkých ďalších projektoch, ako napríklad prenosný maloobchodný váhový stroj Arduino, váha Raspberry pi a pod., Môžete si ich tiež v prípade záujmu skontrolovať.
Potrebné komponenty na zostavenie váhy Arduino Weight Scale:
- Arduino Uno
- Silomer (40 kg)
- Modul zosilňovača silomeru HX711
- 16x2 LCD
- Pripojovacie vodiče
- USB kábel
- Nepál
- Maticové skrutky, rám a základňa
Snímač hmotnosti a modul snímača hmotnosti HX711:
Snímač zaťaženia je prevodník, ktorý transformuje silu alebo tlak na elektrický výstup. Veľkosť tohto elektrického výkonu je priamo úmerná použitej sile. Snímače zaťaženia majú tenzometer, ktorý sa deformuje pôsobením tlaku. Potom tenzometer generuje elektrický signál pri deformácii pri zmene efektívneho odporu pri deformácii. Snímač zaťaženia sa obvykle skladá zo štyroch tenzometrov v konfigurácii Wheatstoneovho mostíka. Snímač zaťaženia sa dodáva v rôznych rozsahoch, ako je 5 kg, 10 kg, 100 kg a viac, tu sme použili snímač zaťaženia, ktorý môže vážiť až 40 kg.
Elektrické signály generované silomerom sú teraz v niekoľkých milivoltoch, takže je potrebné ich ešte zosilniť pomocou nejakého zosilňovača, a preto sa do obrazu dostane snímač váženia HX711. Modul váženia HX711 má čip HX711, čo je 24 vysoko presný A / D prevodník (analógový na digitálny prevodník). HX711 má dva analógové vstupné kanály a programovaním týchto kanálov môžeme získať až 128. Modul HX711 teda zosilňuje nízky elektrický výkon silomerov a potom sa tento zosilnený a digitálne prevedený signál privádza do Arduina na odvodenie hmotnosti.
Snímač zaťaženia je spojený so zosilňovačom snímača zaťaženia HX711 pomocou štyroch vodičov. Tieto štyri vodiče sú červený, čierny, biely a zeleno-modrý. Farby vodičov od modulu k modulu sa môžu mierne odlišovať. Pod podrobnosťami a schémou pripojenia:
- ČERVENÝ drôt je pripojený k E +
- ČIERNY vodič je pripojený k E-
- BIELY drôt je pripojený k A-
- ZELENÝ drôt je pripojený k A +
Upevnenie silomera s platformou a základňou:
Tento krok je voliteľný a závažia môžete umiestniť priamo na silomer bez plošiny a môžete ju jednoducho upnúť bez upevnenia pomocou akejkoľvek základne, ale je lepšie pripevniť plošinu na ukladanie veľkých vecí a pripevniť ju na základňu aby sa to zastavilo. Takže tu musíme vyrobiť rám alebo plošinu na ukladanie vecí na meranie hmotnosti. Na upevnenie silomeru pomocou matíc a skrutiek je tiež potrebný podstavec. Tu sme na rám použili tvrdý kartón na položenie vecí a ako základňu drevenú dosku. Teraz urobte pripojenia podľa schémy zapojenia a ste pripravení vyraziť.
Vysvetlenie obvodu:
Pripojenie k tomuto projektu je jednoduché a schéma je uvedená nižšie. 16x2 LCD piny RS, EN, d4, d5, d6 a d7 sú spojené s číslami pinov 8, 9, 10, 11, 12 a 13 Arduina. Kolíky DT a SCK modulu HX711 sú priamo spojené s kolíkmi Arduino A0 a A1. Spojenia silomerov s modulom HX711 sú už vysvetlené vyššie a sú tiež znázornené v schéme zapojenia nižšie.
Pracovné vysvetlenie:
Princíp práce tohto projektu merania hmotnosti Arduino je jednoduchý. Predtým, ako sa pustíme do podrobností, najskôr musíme tento systém nakalibrovať na meranie správnej hmotnosti. Keď ho používateľ zapne, systém automaticky začne kalibrovať. A ak to chce užívateľ kalibrovať manuálne, stlačte tlačidlo. Pre účely kalibrácie sme vytvorili funkciu void calibrate () , skontrolujte kód uvedený nižšie.
Pri kalibrácii počkajte, kým sa na LCD displeji nezobrazí údaj o zavedení gramu 100 nad silomer, ako je to znázornené na obrázku nižšie. Keď sa na LCD displeji zobrazí „put 100g“, potom vložte 100g váhu cez silomer a počkajte. Po niekoľkých sekundách bude proces kalibrácie ukončený. Po kalibrácii môže užívateľ vložiť akúkoľvek váhu (max. 40 kg) na silomer a môže získať hodnotu cez LCD v gramoch.
V tomto projekte sme pomocou Arduina riadili celý proces. Silomer sníma váhu a dodávky elektrickej analógové napätie na HX711 zaťaženie modulu zosilňovača. HX711 je 24bitový ADC, ktorý zosilňuje a digitálne prevádza výstup snímača zaťaženia. Potom sa táto zosilnená hodnota privádza do Arduina. Teraz Arduino počíta výkon HX711 a prevádza ho na hodnoty hmotnosti v gramoch a zobrazuje ho na LCD. Na kalibráciu systému sa používa tlačidlo. Pre celý proces sme napísali program Arduino. Skontrolujte kód a ukážkové video na konci tohto tutoriálu.
Kód váhy Arduino:
Programová časť tohto projektu je pre začiatočníkov trochu zložitá. V tomto projekte sme nepoužili žiadnu knižnicu na prepojenie snímača zaťaženia HX711 s Arduinom. Práve sme sledovali údajový list HX711 a poznámky k aplikácii. Aj keď na tento účel existuje niekoľko knižníc, kde stačí zahrnúť túto knižnicu a váhu môžete získať pomocou jedného riadku kódu.
Najskôr sme zahrnuli hlavičkový súbor pre LCD a definovali sme preň aj kolíky. A tiež pre tlačidlo. Potom boli deklarované niektoré premenné pre účely výpočtu.
#include
Potom sme vytvorili nižšie uvedenú funkciu na čítanie údajov z modulu HX711 a vrátenie ich výstupu.
unsigned long readCount (void) {unsigned long Count; nepodpísaný znak i; pinMode (DT, VÝSTUP); digitalWrite (DT, HIGH); digitalWrite (SCK, LOW); Počet = 0; pinMode (DT, INPUT); while (digitalRead (DT)); pre (i = 0; i <24; i ++) {digitalWrite (SCK, HIGH); Počet = Počet << 1; digitalWrite (SCK, LOW); if (digitalRead (DT)) Count ++; } digitalWrite (SCK, HIGH); Počet = Počet ^ 0x800000; digitalWrite (SCK, LOW); návrat (Počet); }
Potom sme inicializovali LCD a poskytli pokyny pre vstupné a výstupné piny v void setup ().
void setup () {Serial.begin (9600); pinMode (SCK, VÝSTUP); pinMode (sw, INPUT_PULLUP); lcd.začiatok (16, 2); lcd.print ("hmotnosť"); lcd.setCursor (0,1); lcd.print („Meranie“); oneskorenie (1 000); lcd.clear (); kalibrovať (); }
Ďalej vo funkcii void loop () sme načítali dáta z modulu HX711 a prevádzali ich na váhu (gramy) a posielali ich na LCD.
void loop () {count = readCount (); int w = ((((count-sample) / val) -2 * ((count-sample) / val)); Serial.print ("váha:"); Serial.print ((int) w); Serial.println ("g"); lcd.setCursor (0,0); lcd.print ("hmotnosť"); lcd.setCursor (0,1); lcd.tlač (š); lcd.print ("g"); if (digitalRead (sw) == 0) {val = 0; vzorka = 0; w = 0; počet = 0; kalibrovať (); }}
Predtým sme vytvorili kalibračnú funkciu, pri ktorej sme systém nakalibrovali umiestnením hmotnosti 100 g cez záťažový článok.
void calibrate () {lcd.clear (); lcd.print ("Kalibruje sa…"); lcd.setCursor (0,1); lcd.print ("Prosím čakajte…"); pre (int i = 0; i <100; i ++) {count = readCount (); vzorka + = počet; Serial.println (počet); }……………….
Takže sme sa tu naučili základné prepojenie silomeru a snímača hmotnosti HX11 s Arduinom na meranie hmotnosti. V našich textových tutoriáloch vytvoríme niekoľko aplikácií založených na meraní hmotnosti ako Smart container, Automatic gate atď.