- Az Arduino súlymérleg elkészítéséhez szükséges alkatrészek:
- Mérőcella és HX711 súlyérzékelő modul:
- Áramkör magyarázat:
- Munka magyarázat:
- Arduino mérleg kód:
Ma Arduino harci gépet fogunk építeni, összekapcsolva a terheléscellát és a HX711 súlyérzékelőt az Arduinóval. Számos üzletben láthattunk súlygépeket, ahol a gép csak akkor mutatja meg a súlyt, ha egy elemet elhelyez a mérlegre. Tehát itt ugyanazt a mérőgépet építjük Arduino és Load cellák felhasználásával, amelyek kapacitása akár 40 kg is lehet. Ez a határ tovább növelhető a nagyobb kapacitású terhelő cellák használatával.
Az Arduino mérleg elkészítéséhez szükséges fő komponens egy érzékelő, amely képes a súlyt ekvivalens elektromos jellé alakítani. Ezt az érzékelőt terhelőcellának hívják, ezért ebben a projektben ezt a mérőcellát fogjuk használni Arduino súlyérzékelőként. Néhány más projektben ugyanazt a mérőcellát is alkalmaztuk, mint például a hordozható Arduino kiskereskedelmi mérleg, a málna pi mérleg stb., Ha érdekli, akkor is megnézheti őket.
Az Arduino súlymérleg elkészítéséhez szükséges alkatrészek:
- Arduino Uno
- Mérőcella (40kg)
- HX711 Mérőcella erősítő modul
- 16x2 LCD
- Csatlakozó vezetékek
- USB kábel
- Kenyérlemez
- Anyacsavarok, keret és alap
Mérőcella és HX711 súlyérzékelő modul:
A mérőcella egy átalakító, amely az erőt vagy a nyomást elektromos kimenetté alakítja. Ennek az elektromos kimenetnek a nagysága egyenesen arányos az alkalmazott erővel. A terhelő celláknak van egy feszültségmérője, amely deformálódik, amikor nyomást gyakorolnak rá. Ezután a feszültségmérő elektromos jelet generál a deformáció során, mivel annak tényleges ellenállása a deformáció során változik. A terhelésmérő cella általában négy nyúlásmérőből áll, Wheatstone hídkonfigurációban. A mérőcellák különféle tartományokban érkeznek, például 5 kg, 10 kg, 100 kg és még sok más, itt már használtunk egy mérőcellát, amely akár 40 kg is lehet.
Most a terhelésmérő cella által generált elektromos jelek néhány millivoltban vannak, ezért ezeket tovább kell erősíteni valamilyen erősítővel, így a képbe kerül a HX711 mérőérzékelő. A HX711 mérőérzékelő modul HX711 chipet tartalmaz, amely egy 24 nagy pontosságú A / D átalakító (analóg-digitális átalakító). A HX711 két analóg bemeneti csatornával rendelkezik, és ezeknek a csatornáknak a programozásával akár 128-as erősítést is kaphatunk. Tehát a HX711 modul felerősíti a terhelő cellák alacsony elektromos teljesítményét, majd ezt az erősített és digitálisan átalakított jelet az Arduino-ba táplálják a súly kiszámításához.
A mérőcellát négy huzal segítségével csatlakoztatják a HX711 mérőcellás erősítőhöz. Ez a négy vezeték vörös, fekete, fehér és zöld / kék. A vezetékek színe modulonként kissé eltérhet. A csatlakozás részletei és diagram alatt:
- A RED vezeték csatlakozik az E + -hoz
- A BLACK Wire csatlakozik az E-
- A WHITE vezeték csatlakozik az A-
- A ZÖLD huzal csatlakozik az A + -hoz
A tehercella rögzítése emelettel és alappal
Ez a lépés opcionális, és közvetlenül a súlyokat helyezheti a tehercellára platform nélkül, és egyszerűen rögzítheti anélkül, hogy bármilyen alappal rögzítené, de jobb, ha egy platformot rögzít a nagy dolgok ráhelyezéséhez, és rögzíti az alapra hogy álljon meg. Tehát itt készítenünk kell egy keretet vagy emelvényt a dolgok súlyméréshez. Aljzatra van szükség a tehercellának az anyák és csavarok segítségével történő rögzítésére is. Itt kemény kartont használtunk a kerethez, hogy a tárgyakat rajta lehessen elhelyezni, és egy fatáblát alapként. Most a kapcsolási rajzon látható módon hajtsa végre a csatlakozásokat, és készen áll az indulásra.
Áramkör magyarázat:
A projekt összekapcsolása egyszerű és a vázlatot az alábbiakban adjuk meg. Az RS, EN, d4, d5, d6 és d7 16x2 LCD tüskék az Arduino 8., 9., 10., 11., 12. és 13. tűsorozataival vannak összekötve. A HX711 modul DT és SCK csatlakozói közvetlenül kapcsolódnak az Arduino A0 és A1 csapjaihoz. A HX711 modul terheléscellás kapcsolatait már korábban bemutattuk, és az alábbi kapcsolási rajzon is bemutatjuk.
Munka magyarázat:
Ennek az Arduino súlymérő projektnek a működési elve egyszerű. Mielőtt a részletekbe kezdenénk, először kalibrálnunk kell ezt a rendszert a helyes súly méréséhez. Amikor a felhasználó bekapcsolja, a rendszer automatikusan elkezdi a kalibrálást. Ha pedig a felhasználó manuálisan szeretné kalibrálni, nyomja meg a nyomógombot. Hoztunk létre egy void calibrate () függvényt kalibrációs célokra, ellenőrizze az alábbi kódot.
A kalibráláshoz várja meg, amíg az LCD kijelzés 100 grammot tesz a terhelésmérő cellára, az alábbi képen látható módon. Amikor az LCD kijelzőn a „100 g” felirat jelenik meg, akkor tegye a 100 g súlyt a mérőcellára, és várjon. Néhány másodperc múlva a kalibrálási folyamat befejeződik. Kalibrálás után a felhasználó tetszőleges súlyt (max. 40 kg) tehet a mérőcella fölé, és grammban megkapja az LCD-n keresztüli értéket.
Ebben a projektben az Arduino- t használtuk az egész folyamat irányításához. A mérőcella érzékeli a súlyt, és elektromos analóg feszültséget szolgáltat a HX711 terheléserősítő modulhoz. A HX711 egy 24 bites ADC, amely felerősíti és digitálisan átalakítja a terheléscellás kimenetet. Ezután ezt az erősített értéket az Arduino táplálja. Az Arduino kiszámítja a HX711 kimenetét, és ezt súlygé alakítja grammban, és megjeleníti az LCD-n. A rendszer kalibrálásához nyomógombot használnak. Írtunk egy Arduino programot a teljes folyamathoz, ellenőrizze a kódot és a bemutató videót a bemutató végén.
Arduino mérleg kód:
A projekt programozási része egy kicsit komplex a kezdők számára. Ebben a projektben nem használtunk könyvtárat a HX711 terhelésérzékelő és az Arduino összekapcsolására. Most követtük a HX711 adatlapját és az alkalmazási megjegyzéseket. Bár van néhány könyvtár erre a célra, ahol csak azt a könyvtárat kell tartalmaznia, és a súlyt egy kódsor segítségével tudja megkapni.
Először is felvettünk egy fejlécfájlt az LCD-hez, és meghatároztuk ennek a csapjait. És a nyomógombhoz is. Ezután deklarált néhány változót számítás céljából.
#include
Ezt követően létrehoztuk az alábbi funkciót az adatok beolvasására a HX711 modulból és a kimenet visszaadására.
unsigned long readCount (érvénytelen) {unsigned long Count; aláíratlan karakter i; pinMode (DT, OUTPUT); digitalWrite (DT, HIGH); digitalWrite (SCK, LOW); Count = 0; pinMode (DT, INPUT); míg (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); visszatér (gróf); }
Utána inicializáltuk az LCD-t, és útmutatást adunk a bemeneti és kimeneti csapokhoz az érvénytelen beállításban ().
void setup () {Soros.kezdés (9600); pinMode (SCK, OUTPUT); pinMode (sw, INPUT_PULLUP); lcdbegin (16, 2); lcd.print ("Súly"); lcd.setCursor (0,1); lcd.print ("Mérés"); késés (1000); lcd.clear (); kalibrálás (); }
Ezután a void loop () funkcióban a HX711 modul adatait olvastuk le, ezeket az adatokat súlyra (grammra) konvertáltuk és elküldtük az LCD-nek.
void loop () {count = readCount (); int w = (((minta-minta) / val) -2 * ((minta-minta) / val)); Serial.print ("súly:"); Soros nyomtatás ((int) w); Soros.println ("g"); lcd.setCursor (0,0); lcd.print ("Súly"); lcd.setCursor (0,1); lcd.print (w); lcd.print ("g"); if (digitalRead (sw) == 0) {val = 0; minta = 0; w = 0; szám = 0; kalibrálás (); }}
Ezt megelőzően hoztunk létre egy kalibrációs funkciót, amelyben kalibráltuk a rendszert úgy, hogy a 100 g-os tömeget a terhelő cellára helyezzük.
void calibrate () {lcd.clear (); lcd.print ("Kalibrálás…"); lcd.setCursor (0,1); lcd.print ("Kérjük, várjon…"); for (int i = 0; i <100; i ++) {count = readCount (); minta + = számlálás; Soros.println (gróf); }……………….
Tehát itt megtanultuk a terhelésmérő cella és a HX11 súlyérzékelő alapvető összekapcsolását az Arduinóval a súlyok méréséhez. Szöveges oktatóanyagainkban tömegmérésen alapuló alkalmazásokat hozunk létre, például Smart container, Automatic gate stb.