- Potřebné komponenty pro sestavení váhy Arduino Weight Scale:
- Snímač hmotnosti a modul snímače hmotnosti HX711:
- Vysvětlení obvodu:
- Pracovní vysvětlení:
- Kód váhy Arduino:
Dnes budeme stavět Arduino Wight stroj, pomocí rozhraní siloměr a HX711 čidla s Arduino Weight. Váhové stroje jsme viděli v mnoha obchodech, kde stroj zobrazuje váhu pouhým položením položky na vážící plošinu. Tady tedy stavíme stejný vážící stroj pomocí Arduino a Load buněk o kapacitě měření až 40 kg. Tento limit lze dále zvýšit použitím zátěžové buňky s vyšší kapacitou.
Hlavní komponentou potřebnou pro sestavení této váhy Arduino je senzor, který dokáže převést váhu na ekvivalentní elektrický signál. Tento senzor se nazývá jako siloměr, takže v tomto projektu použijeme tento siloměr jako náš senzor hmotnosti Arduino. Stejnou zatěžovací buňku jsme použili také v několika dalších projektech, jako je například přenosný maloobchodní vážící stroj Arduino, váhová váha Raspberry pi atd., Pokud je máte zájem, můžete si je také prohlédnout.
Potřebné komponenty pro sestavení váhy Arduino Weight Scale:
- Arduino Uno
- Siloměr (40 kg)
- Modul zesilovače snímače zatížení HX711
- 16x2 LCD
- Připojovací vodiče
- USB kabel
- Nepájivá deska
- Maticové šrouby, rám a základna
Snímač hmotnosti a modul snímače hmotnosti HX711:
Siloměr je snímač, který transformuje sílu nebo tlak na elektrický výstup. Velikost tohoto elektrického výstupu je přímo úměrná použité síle. Zátěžové buňky mají tenzometr, který se deformuje působením tlaku. A tenzometr generuje elektrický signál při deformaci, když se jeho efektivní odpor při deformaci mění. Snímač zatížení se obvykle skládá ze čtyř tenzometrů v konfiguraci Wheatstoneova můstku. Zátěžová buňka se dodává v různých rozsazích, jako je 5 kg, 10 kg, 100 kg a více, zde jsme použili siloměr, který může vážit až 40 kg.
Nyní jsou elektrické signály generované siloměrem v několika milivoltech, takže je třeba je ještě zesílit nějakým zesilovačem, a proto se do obrazu dostane snímač vážení HX711. Modul vážicího senzoru HX711 má čip HX711, což je 24 vysoce přesný A / D převodník (analogový na digitální převodník). HX711 má dva analogové vstupní kanály a programováním těchto kanálů můžeme získat zisk až 128. Modul HX711 tedy zesiluje nízký elektrický výkon siloměrů a poté se tento zesílený a digitálně převedený signál přivádí do Arduina, aby se odvodila váha.
Snímač je připojen k zesilovači snímače HX711 pomocí čtyř vodičů. Tyto čtyři vodiče jsou červený, černý, bílý a zelený / modrý. V barvách vodičů od modulu k modulu se mohou mírně lišit. Níže podrobnosti a schéma připojení:
- ČERVENÝ vodič je připojen k E +
- ČERNÝ vodič je připojen k E-
- BÍLÝ vodič je připojen k A-
- ZELENÝ vodič je připojen k A +
Oprava snímače zatížení s platformou a základnou:
Tento krok je volitelný a můžete přímo umístit závaží na zatěžovací buňku bez plošiny a můžete ji jednoduše upnout, aniž byste ji upevnili pomocí jakékoli základny, ale je lepší připojit plošinu pro uložení velkých věcí a upevnit ji na základnu aby se zastavil. Zde tedy musíme vytvořit rám nebo platformu pro uložení věcí pro měření hmotnosti. K upevnění snímače zatížení pomocí matic a šroubů je rovněž zapotřebí základna. Zde jsme pro rám použili tvrdou lepenku pro umístění věcí a jako základ dřevěnou desku. Nyní proveďte připojení podle schématu zapojení a jste připraveni jít.
Vysvětlení obvodu:
Připojení k tomuto projektu jsou snadná a schéma je uvedeno níže. 16x2 LCD piny RS, EN, d4, d5, d6 a d7 jsou spojeny s čísly pinů 8, 9, 10, 11, 12 a 13 Arduina. Kolíky DT a SCK modulu HX711 jsou přímo spojeny s kolíky Arduino A0 a A1. Připojení zátěžových buněk s modulem HX711 je již vysvětleno dříve a také je uvedeno v níže uvedeném schématu zapojení.
Pracovní vysvětlení:
Princip fungování tohoto projektu Arduino Weight Measurement je snadný. Než se pustíme do podrobností, nejprve musíme tento systém kalibrovat pro měření správné hmotnosti. Když jej uživatel zapne, systém automaticky zahájí kalibraci. A pokud to chce uživatel kalibrovat ručně, stiskněte tlačítko. Vytvořili jsme funkci void calibrate () pro účely kalibrace, zkontrolujte níže uvedený kód.
Pro kalibraci počkejte na indikaci LCD pro vložení 100 gramů přes siloměr, jak je znázorněno na následujícím obrázku. Když se na LCD displeji zobrazí „put 100g“, položte 100 g závaží na siloměr a počkejte. Po několika sekundách bude proces kalibrace dokončen. Po kalibraci může uživatel umístit jakoukoli váhu (max. 40 kg) na siloměr a získat hodnotu přes LCD v gramech.
V tomto projektu jsme pomocí Arduina řídili celý proces. Siloměr snímá váhu a dodávky elektrické analogové napětí na HX711 zatížení modulu zesilovače. HX711 je 24bitový ADC, který zesiluje a digitálně převádí výstup snímače zatížení. Poté je tato zesílená hodnota přivedena do Arduina. Nyní Arduino vypočítá výstup HX711 a převede jej na hodnoty hmotnosti v gramech a zobrazí jej na LCD. Ke kalibraci systému se používá tlačítko. Napsali jsme program Arduino pro celý proces, na konci tohoto tutoriálu zkontrolujte kód a ukázkové video.
Kód váhy Arduino:
Programovací část tohoto projektu je pro začátečníky trochu složitá. V tomto projektu jsme nepoužili žádnou knihovnu pro propojení snímače zatížení HX711 s Arduinem. Právě jsme sledovali datový list HX711 a poznámky k aplikaci. I když pro tento účel existují některé knihovny, kde stačí zahrnout tuto knihovnu a váhu můžete získat pomocí jednoho řádku kódu.
Nejprve jsme zahrnuli soubor záhlaví pro LCD a definovali jsme kolíky pro stejný. A také pro tlačítko. Poté byly deklarovány některé proměnné pro účely výpočtu.
#zahrnout
Poté jsme vytvořili níže uvedenou funkci pro čtení dat z modulu HX711 a návrat jejich výstupu.
unsigned long readCount (void) {unsigned long Count; nepodepsaný znak i; pinMode (DT, VÝSTUP); digitalWrite (DT, HIGH); digitalWrite (SCK, LOW); Počet = 0; pinMode (DT, INPUT); while (digitalRead (DT)); for (i = 0; i <24; i ++) {digitalWrite (SCK, HIGH); Count = Count << 1; digitalWrite (SCK, LOW); if (digitalRead (DT)) Count ++; } digitalWrite (SCK, HIGH); Count = Count ^ 0x800000; digitalWrite (SCK, LOW); návrat (počet); }
Poté jsme inicializovali LCD a zadali pokyny pro vstupní a výstupní piny v neplatném nastavení ().
void setup () {Serial.begin (9600); pinMode (SCK, VÝSTUP); pinMode (sw, INPUT_PULLUP); lcd.begin (16, 2); lcd.print ("hmotnost"); lcd.setCursor (0,1); lcd.print („Měření“); zpoždění (1000); lcd.clear (); kalibrovat(); }
Dále ve funkci void loop () jsme načetli data z modulu HX711 a převedli tato data na hmotnost (gramy) a poslali je na LCD.
void loop () {count = readCount (); int w = ((((count-sample) / val) -2 * ((count-sample) / val)); Serial.print ("hmotnost:"); Serial.print ((int) w); Serial.println ("g"); lcd.setCursor (0,0); lcd.print ("hmotnost"); lcd.setCursor (0,1); lcd.print (w); lcd.print ("g"); if (digitalRead (sw) == 0) {val = 0; vzorek = 0; w = 0; count = 0; kalibrovat(); }}
Před tím jsme vytvořili kalibrační funkci, ve které jsme kalibrovali systém umístěním hmotnosti 100 gm přes buňku zatížení.
void calibrate () {lcd.clear (); lcd.print ("Kalibrace…"); lcd.setCursor (0,1); lcd.print ("Prosím čekejte…"); for (int i = 0; i <100; i ++) {count = readCount (); vzorek + = počet; Serial.println (počet); }……………….
Zde jsme se tedy naučili základní rozhraní snímače hmotnosti a snímače hmotnosti HX11 s Arduino pro měření vah. V našich textových cvičeních vytvoříme některé aplikace založené na měření hmotnosti, jako je inteligentní kontejner, automatická brána atd.