Digitális mérleg a mérőcellák és az Arduino segítségével

Próbálja Ki A Műszerünket A Problémák Kiküszöbölésére





Ebben a bejegyzésben megismerjük a nyúlásmérő alapú terheléscellákat. Meg fogjuk vizsgálni, hogy mi a feszültségmérő, mi a terhelésmérő elem, a hőmérséklet hatása a nyúlásmérőre, a hőmérséklet-kompenzáció a Wheatstone híddal és a HX711 terheléscellás erősítővel, és végül megtanuljuk, hogyan lehet Arduino alapú mérleget építeni a terhelésmérő cellának a súlyérzékelő.

Ez a bejegyzés súlyméréssel és mérési módszerekkel, valamint a módszerek megvalósításával foglalkozik egy Arduino alapú mérleg skálán.



Mindannyian szeretjük látni a testsúlyunkat kortól függetlenül, egy kisgyereknek nagyon tetszik a súlygyarapodása, a felnőtteknek pedig a fogyása. A súly az ősi idők óta létfontosságú fogalom, amely segített az árukereskedelemben, a tudományos berendezések és a kereskedelmi termékek fejlesztésében.

A modern időkben laboratóriumi célokra kilogrammban, milligrammban, akár mikrogrammokban is mérjük a súlyokat. Egy gramm megegyezik az egész világon, minden súlymérő készüléknek ugyanazt kell mérnie. A tabletták tömeges gyártása apró, néhány milligramm adag különbséggel elegendő ahhoz, hogy életmentő tablettát készítsenek öngyilkos tablettává.



Mi a súly?

A súly a síkon kifejtett erő. A kifejtett erő mértéke egyenesen arányos egy tárgy tömegével, ami azt jelenti, hogy nagyobb a tárgy tömege, annál nagyobb az kifejtett erő.

A tömeg az objektumban jelen lévő fizikai anyag mennyisége.

A súly még egy tényezőtől függ: A gravitációtól.

A gravitáció állandó a földgömbön (A gravitációnak kisebb eltérései vannak a föld nem egyenletes gömb alakja miatt, de nagyon apró). Az 1 kg földtömeg súlya a holdon ugyanolyan tömeggel 160 gramm lesz, mivel a Hold gravitációs vonzata sokkal gyengébb.

Most már tudja, mi a súly, és melyek azok a tényezők, amelyek megnehezítik egy tárgyat.

Mi a feszültségmérő:

A nyúlásmérő egy jelátalakító vagy érzékelő, amely méri a tárgy alakváltozását (alakváltozását). Ezt Edward E. Simmons villamosmérnök és Arthur Claude Ruge gépészmérnök találta ki.

A feszültségmérő illusztrációja:

Nyúlásmérő érzékelő

A nyúlásmérő rugalmas, ez egy vékony fém fólia mintázat, amely két vékony műanyag lap közé van illesztve, és amelyet egy felületre kell rögzíteni megfelelő ragasztóval vagy bármilyen ragasztóanyaggal.

Ha súlyt vagy erőt fejtünk ki a felületre, az deformálódik, és a feszültségmérő is deformálódik. A nyúlásmérő deformációja megváltoztatja a fólia elektromos ellenállását.

Most a feszültségmérő ellenállásának változása egyenesen arányos a tömeggel vagy a felületre kifejtett erővel.

A való életben a törzsmérő ellenállásának változása nagyon jelentéktelen észlelni. Az ellenállás apró változásainak észleléséhez a Wheatstone hidat használjuk.

Fedezzük fel, mi a Wheatstone híd dióhéjban.

A Wheatstone híd megértése:

A búzakő híd olyan áramkör, amely ismeretlen ellenállás meghatározására használható. A Wheatstone hidat Samuel Hunter Christie találta ki, később a Wheatstone hidat Sir Charles javította és terjesztette.

Búzakő.

A Wheatstone híd áramkörének illusztrációja:

Wheatstone híd áramkör

Modern digitális multimétereink leolvashatják az ellenállási értéket a mega ohm, a kilo ohm és az ohm tartománytól.

A búza kőhíd segítségével milliammos tartományban mérhetjük az ellenállást.

A búzakő híd 4 ellenállásból áll, a négyből 3 ismert ellenállás és egy ismeretlen ellenállás.

A potenciálkülönbséget (feszültséget) az „A” és „C” pontokra alkalmazzák, a „B” és „D” pontokról pedig egy voltmérőt csatlakoztatnak.

Ha az összes ellenállás egyenlő, akkor a „B” és „D” pontokon áram nem áramlik, és a voltmérő nullát mutat. Ezt nevezzük kiegyensúlyozott hídnak.

Ha az ellenállás ellenállása eltér a többi három ellenállástól, akkor a „B” és „D” pont között feszültségáram lesz, és a voltmérő az ismeretlen ellenállással arányos értéket fog olvasni. Ezt nevezzük kiegyensúlyozatlan hídnak.

Itt az ismeretlen ellenállás a feszültségmérő, amikor az ellenállást megváltoztatják, a voltmérőn tükröződik.

Most alakítottunk át deformációt, súlyt vagy erőt feszültségjelgé. Ezt a feszültséget fel kell erősíteni annak érdekében, hogy hasznos leolvasásokat kapjunk, amelyeket egy mikrovezérlőbe táplálunk, hogy grammban kapjuk meg az értékeket.

Most beszéljük meg, hogy a hőmérséklet hogyan befolyásolja a feszültségmérő teljesítményét.

Hőmérsékleti hatások a nyúlásmérőn:

A nyúlásmérő hőmérséklet-érzékeny, és megzavarhatja a tényleges súly / erő értékeket. Ha a környezeti hőmérséklet megváltozik, a fémfóliát fém tágulásnak vetik alá, ami közvetlenül befolyásolja az ellenállást.

A Wheatstone-híd segítségével semmissé tehetjük a hőmérsékleti hatást. Lássuk, hogyan tudjuk kompenzálni a hőmérsékletet a Wheatstone híd segítségével.

Hőmérséklet kompenzáció:

Könnyen semlegesíthetjük a hőmérsékleti hatást azáltal, hogy az összes ellenállást feszültségmérővel helyettesítjük. Most a feszültségmérő minden ellenállását a hőmérséklet egyformán befolyásolja, és a nem kívánt zajt a Wheatstone híd jellege semmissé teszi.

Mi az a mérőcella?

A terhelésmérő cellák alumíniumprofilok, nyúlásmérővel 4 oldalra erősítve Wheatstone híd konfigurációban.

A terhelésmérő cella illusztrációja:

Töltse fel a cellás eszközt

Ez a típusú mérőcellák merevek és gyakran használják az iparban. 4 csavaros rögzítés van, az egyik oldal egy rögzített felületre van csavarozva, a másik vége pedig egy tartóhoz (mondjuk kosárhoz) van csavarozva, hogy megtartsa a mérendő tárgyat.

A maximális súlya meg van adva az adatlapon vagy a testén, a specifikáció túllépése károsíthatja a terhelő cellát.

A teljes hídcellák 4 terminálból állnak, nevezetesen E +, E-, amelyek gerjesztő vezetékek, amelyeken keresztül a tápfeszültséget alkalmazzák. A másik két vezeték az S + és az S-, amelyek jelvezetékek, amelyekből a feszültséget mérik.

Most ezek a feszültségek millivolt tartományban vannak, amelyek nem elég erősek ahhoz, hogy a mikrovezérlő olvassa és feldolgozza. Erősítésre van szükségünk, és apró változásoknak láthatóaknak kell lenniük a mikrokontroller számára. Ehhez külön modulok vannak, úgynevezett terheléscellás erősítők, készítsünk erről egy áttekintést.

HX711 mérőcellás erősítő:

A HX711 mérőcellás erősítő modul illusztrációja:

HX711 mérőcellás erősítő

A mérőcellás erősítő az IC HX711-en alapul, amely 24 bites analóg-digitális átalakító, amelyet kifejezetten súlymérésre terveztek. Különböző választható 32, 64 és 128 erősítéssel rendelkezik, és 2,6–5,5 V feszültségen működik.
Ez a kitörési tábla segít a terheléscellák apró változásainak észlelésében. Ehhez a modulhoz a HX711.h könyvtár szükséges

Arduino vagy bármely más mikrovezérlő.

A mérőcellát a HX711 modulhoz kell csatlakoztatni, és a modult az Arduino-val kell összekapcsolni. A súlymérő áramkört ilyen módon kell fejleszteni.

Összefoglalva: most már tudja, mi az a feszültségmérő, mi a Wheatstone híd, a hőmérsékleti hatások a nyúlásmérőn, a hőmérséklet-kompenzáció és mi a terhelésmérő cellás erősítő.

A fenti vitából átfogóan megértettük a mérleg méretarányának elméleti részét, most nézzük meg, hogyan lehet egy loas cellát használni gyakorlati mérleg gyártásához Arduino segítségével

Digitális mérlegmérleg tervezése Arduino segítségével

A következő megbeszélések során megtanuljuk, hogyan lehet Arduino segítségével elkészíteni egy olyan digitális mérleggépet, amely ésszerű pontossággal képes mérni a súlyokat néhány grammtól 40 kg-ig (a terhelésmérő cellájának jellemzőitől függően). Megismerjük a precíziós fokozatú cellák osztályozását, kalibráljuk a javasolt áramkört és véglegesítjük a súlymérleg gépét.

Megjegyzés: Lehet, hogy ez az áramkör nem felel meg a kereskedelmi megvalósításhoz szükséges szabványoknak.

A súlymérlegű gépeket a kereskedelem és a kutatások különböző fajtáiban használják, a milligrammtól a több tonnáig. A javasolt súlymérleg gépének maximális skálája a mérőcella specifikációjától függ. 500 gramm, 1 kg, 5 kg, 10 kg, 20 kg és 40 kg stb.

Különböző fokozatok vannak a terhelésmérő celláktól, különböző pontosságú tartományokat kínálnak, és Önnek ki kell választania a projektje számára megfelelőt.

A terhelésmérő cella pontossági osztályának osztályozása:

A különböző pontossági osztályok különböző alkalmazásokhoz vannak meghatározva. Az alábbi besorolás a legalacsonyabb pontosságtól a legnagyobb pontosságig terjed.

Az alacsonyabb pontosságú (de meglehetősen pontos) terhelő cellák a D1, C1 és C2 kategóriába tartoznak. Ez elég ehhez a projekthez. Ezeket a mérőcellákat homok, cement vagy víz tömegének mérésére használják.

A C3 fokozatú mérőcellákat olyan minőségbiztosításban használják, mint a golyóscsapágyak, a gépalkatrészek alkatrészeinek súlyának ellenőrzése.

A C4, C5, C6 az osztály pontossága a legjobb, ezek a terhelésmérő cellák fokozatai gramm / mikrogramm mérésre szolgálnak. Ezeket az osztályokat bolti mérlegekben, nagyüzemi gyártásellenőrzésben, élelmiszer-csomagolásban és laboratóriumi használatban használják.

Most merüljünk el a projekt technikai részleteiben.

Kördiagramm:

A HX711 és az Arduino közötti cellakapcsolat és a cellák.

A HX711 és az Arduino közötti cellakapcsolat és a cellák.

A projekt Arduino, Load cell és HX711 cellák erősítő kártyájából és egy számítógépből áll. A kimenet az Arduino IDE soros monitorán figyelhető meg.

A projekt agya, mint mindig, az arduino, bármilyen Arduino tábla modellt használhat. A HX711 egy 24 bites ADC, amely a legkisebb rugalmasságot is megtalálja a terheléscellán lévő súly miatt. 2,7 V-tól 5 V-ig működhet. Az áramellátás Arduino kártyáról történik.

A mérőcellának általában négy huzalja van, amely a Wheatstone híd által konfigurált feszültségmérő kimenete.

A piros vezeték E +, a fekete vezeték E-, a zöld vezeték A- és a fehér vezeték A +. Néhány HX711 modul megadja a terhelésmérő cella kivezetéseinek nevét, és néhány HX711 modul meghatározza a vezetékek színeit, ezt a modellt az áramköri ábra szemlélteti.

A HX711 DATA tűje az Arduino # 3 tűjéhez van csatlakoztatva, és a HX711 Óra tűje az Arduino # 2 tűjéhez csatlakozik.

A mérőcella felszerelése:

hogyan telepítsünk egy loadcellot az Arduino-val

A mérőcellának négy csavarlyuk van, kettő mindkét oldalon. Bármelyik oldalnak a legnagyobb pontosság érdekében állónak kell lennie, ésszerű súlyú fához köthető.

Vékony fa vagy vékony lemez használható a mérési súly megtartására, amint azt fentebb bemutattuk.

Tehát amikor súlyt helyez el, a terhelésmérő cella meggörbül, így a feszültségmérő és megváltoztatja az ellenállását, amelyet a HX711 modul mért és Arduino-ba táplál.

Miután a hardver beállítása befejeződött, töltsük fel a kódot és kalibráljuk.

Az áramkör kalibrálása:

Két program van, az egyik a kalibrációs program (a kalibrációs tényező megkeresése). Egy másik kód a súlymérő program, a kalibrációs program kódjából talált kalibrációs tényezőt meg kell adni a súlymérési programban.

A kalibrációs tényező meghatározza a súlymérés pontosságát.

Töltse le a HX711 könyvtárat innen: github.com/bogde/HX711

Kalibrálás Programkód:

//-------------------- --------------------//
#include
const int out = 3
const int clck = 2
HX711 scale(out, clck)
float CalibrationFactor = -96550
char var
void setup()
{
Serial.begin(9600)
Serial.println('------------- Weight Scale Calibration --------------')
Serial.println('Press Q,W,E,R or q,w,e,r to increase calibration factor by 10,100,1000,10000 respectively')
Serial.println('Press A,S,D,F or a,s,d,f to decrease calibration factor by 10,100,1000,10000 respectively')
Serial.println('Press 'T' or 't' for tare')
scale.set_scale()
scale.tare()
long zero_factor = scale.read_average()
Serial.print('Zero factor: ')
Serial.println(zero_factor)
}
void loop()
{
scale.set_scale(CalibrationFactor)
Serial.print('Reading: ')
Serial.print(scale.get_units(), 3)
Serial.println(' Kilogram')
Serial.print('Calibration Factor is: ')
Serial.println(CalibrationFactor)
Serial.println('--------------------------------------------')
if (Serial.available())
{
var = Serial.read()
if (var == 'q')
{
CalibrationFactor = CalibrationFactor + 10
}
else if (var == 'a')
{
CalibrationFactor = CalibrationFactor - 10
}
else if (var == 'w')
{
CalibrationFactor = CalibrationFactor + 100
}
else if (var == 's')
{
CalibrationFactor = CalibrationFactor - 100
}
else if (var == 'e')
{
CalibrationFactor = CalibrationFactor + 1000
}
else if (var == 'd')
{
CalibrationFactor = CalibrationFactor - 1000
}
else if (var == 'r')
{
CalibrationFactor = CalibrationFactor + 10000
}
else if (var == 'f')
{
CalibrationFactor = CalibrationFactor - 10000
}
else if (var == 'Q')
{
CalibrationFactor = CalibrationFactor + 10
}
else if (var == 'A')
{
CalibrationFactor = CalibrationFactor - 10
}
else if (var == 'W')
{
CalibrationFactor = CalibrationFactor + 100
}
else if (var == 'S')
{
CalibrationFactor = CalibrationFactor - 100
}
else if (var == 'E')
{
CalibrationFactor = CalibrationFactor + 1000
}
else if (var == 'D')
{
CalibrationFactor = CalibrationFactor - 1000
}
else if (var == 'R')
{
CalibrationFactor = CalibrationFactor + 10000
}
else if (var == 'F')
{
CalibrationFactor = CalibrationFactor - 10000
}
else if (var == 't')
{
scale.tare()
}
else if (var == 'T')
{
scale.tare()
}
}
}
//-------------------- --------------------//

Kalibrálás:

  • A hardver befejezése után töltse fel a fenti kódot.
  • Távolítsa el a súly megtartásához használt vékony lemezt vagy fát, beleértve a két csavart is (a mérőcella másik oldalát az alaphoz kell rögzíteni)
  • Nyissa meg a soros monitort.
  • Helyezzen egy ismert súlyt közvetlenül a mérőcellára, 100 grammot (mondjuk).
  • nyomja meg Q, W, E, R a kalibrációs tényező 10,100,1000,10000-mal történő növelése.
  • nyomja meg A, S, D, F a kalibrációs tényező 10,100,1000,10000-val történő csökkentése.
  • A kalibrációs tényező minden egyes növelése vagy csökkentése után nyomja meg az „Enter” gombot.
  • Növelje vagy csökkentse a kalibrációs tényezőt, amíg meg nem jelenik az ismert tömegű anyag megfelelő tömege.
  • A tárázás funkció a súlyskála nullára állítása, ez akkor hasznos, ha a víz súlyát (mondjuk) a tál súlya nélkül szeretné mérni. Először tegye a tálat, nyomja meg a tárát és öntsön vizet.
  • Jegyezze fel a kalibrációs tényezőt, és írja le, miután megjelenik az ismert súly.

Most ismeretlen súlyokat tud mérni.

Súlymérő programkód:

//---------------- ----------------//
#include
const int out = 3
const int clck = 2
HX711 scale(out, clck)
float CalibrationFactor = -12000 // Replace -12000 the calibration factor.
void setup()
{
Serial.begin(9600)
Serial.println('Press 'T' or 't' to tare')
scale.set_scale(CalibrationFactor)
scale.tare()
}
void loop()
{
Serial.print('Weight: ')
Serial.print(scale.get_units(), 3)
Serial.println(' Kilogram')
if (Serial.available())
{
char var = Serial.read()
if (var == 't')
{
scale.tare()
}
if (var == 'T')
{
scale.tare()
}
}
}
//---------------- ----------------//

float CalibrationFactor = -12000

Cserélje a -12000 értéket a megtalált kalibrációs tényezőre. Ez lehet negatív szám vagy pozitív szám.

Töltse fel a fenti kódot a teljes hardverbeállítással, és készen áll a súlymérleg gépe.

Súlymérlegelő gép LCD kijelzővel

A fenti cikk elmagyarázta egy Arduino alapú mérlegrendszert, amely a számítógépét használja. A következő részben megpróbáljuk a Súlymérleg gép praktikus változatát felépíteni 16 x 2 LCD kijelző hozzáadásával, hogy mérés közben ne függjünk a számítógéptől súlyok. Ebben a bejegyzésben két változat javasolt, az egyik „I2C” 16 x 2 LCD-vel, a másik pedig az „I2C” 16 x 2 LCD kijelzővel.

Itt két választási lehetőséget adunk, hogy az olvasók a maguk számára megfelelő módon választhassák ki a formatervezést. A kettő közötti fő különbség az I2C adaptermodullal való vezetékes csatlakozás, mindössze 4 vezetékre (Vcc, GND, SCL és SDA) van szükség az LCD kijelző működéséhez, míg I2C adapter nélkül több vezetékre van szükség az Arduino és az LCD kijelző összekapcsolásához.

Ugyanakkor mindkét funkció pontosan ugyanaz, egyesek inkább az I2C-t részesítik előnyben, mint a hagyományosakat, mások pedig fordítva, ezért itt van a két kialakítás.

Vizsgáljuk meg a hagyományos LCD-kialakítást:

Kördiagramm:

arduino, 16 x 2 LCD kijelző és 10K potenciométer az LCD kijelző kontrasztjának beállításához

A fenti sematikus ábrán az arduino, 16 x 2 LCD kijelző és 10K potenciométer található az LCD kijelző kontrasztjának beállításához.

3,3 V táplálható az Arduinóról az LCD kijelzőre a háttérvilágítás érdekében. A nyomógomb biztosítja a súly nullájának nullázását, ezt a funkciót a végén részletesen ismertetjük.

Ez csak az LCD és az Arduino közötti kapcsolat, a terhelésmérő cella és a tehercellás erősítő és az Arduino közötti kapcsolat az előző részben látható.

Az LCD súlymérleg gép kódja:

// -------- Program developed by R.GIRISH -------//
#include
#include
const int rs = 10
const int en = 9
const int d4 = 8
const int d5 = 7
const int d6 = 6
const int d7 = 5
LiquidCrystal lcd(rs, en, d4, d5, d6, d7)
const int out = 3
const int clck = 2
const int Tare = 4
HX711 scale(out, clck)
float CalibrationFactor = -12000 // Replace -12000 the calibration factor.
void setup()
{
lcd.begin(16, 2)
pinMode(Tare, INPUT)
digitalWrite(Tare, HIGH)
lcd.setCursor(0, 0)
lcd.print(' Weight Scale')
lcd.setCursor(0, 1)
lcd.print(' Machine')
delay(2000)
scale.set_scale(CalibrationFactor)
scale.tare()
}
void loop()
{
lcd.clear()
lcd.setCursor(0, 0)
lcd.print('Weight:')
lcd.print(scale.get_units(), 3)
lcd.print(' Kg')
delay(200)
if (digitalRead(Tare) == LOW)
{
scale.tare()
lcd.clear()
lcd.setCursor(0, 0)
lcd.print('Tare ......')
lcd.setCursor(0, 1)
lcd.print('Setting to 0 Kg.')
delay(1000)
}
}
// -------- Program developed by R.GIRISH -------//

Most nézzük meg, hogyan kell használni ezt a súlymérlegű gépet az I2C adapter alapú LCD kijelzővel.

Arduino áramkör diagram és LCD kijelző I2C adapterrel:

Arduino és LCD kijelző I2C adapterrel

Itt csak egy Arduino és LCD kijelző található I2C adapterrel a hátlapon. Most a huzalcsatlakozások egyszerűbbek és egyenesek.

Az I2C modul illusztrációja:

I2C modul

Ez a modul közvetlenül forrasztható egy normál 16 x 2 vagy akár 20 x 4 LCD kijelző hátlapjára, és kövesse a sematikus ábrát.

Ismét kérjük, olvassa el az előző fejezetet a terhelésmérő cella, a cellamegerősítő és az Arduino csatlakoztatásáról.

Töltse le a következő könyvtárat az I2C rendszerhez:

github.com/marcoschwartz/LiquidCrystal_I2C

github.com/PaulStoffregen/Wire

Az I2C alapú súlymérleg áramkör kódja:

// -------- Program developed by R.GIRISH -------//
#include
#include
#include
const int out = 3
const int clck = 2
const int Tare = 4
HX711 scale(out, clck)
float CalibrationFactor = -12000 // Replace -12000 the calibration factor.
LiquidCrystal_I2C lcd(0x27, 16, 2)
void setup()
{
lcd.init()
lcd.backlight()
pinMode(Tare, INPUT)
digitalWrite(Tare, HIGH)
lcd.setCursor(0,0)
lcd.print(' Weight Scale')
lcd.setCursor(0,1)
lcd.print(' Machine')
delay(2000)
scale.set_scale(CalibrationFactor)
scale.tare()
}
void loop()
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Weight:')
lcd.print(scale.get_units(), 3)
lcd.print(' Kg')
delay(200)
if (digitalRead(Tare) == LOW)
{
scale.tare()
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Tare ......')
lcd.setCursor(0,1)
lcd.print('Setting to 0 Kg.')
delay(1000)
}
}
// -------- Program developed by R.GIRISH -------//

JEGYZET:

Mielőtt bármelyik kódot feltöltené az Arduino-ba, meg kell adnia a kalibrációs tényezőt a kódban.

float CalibrationFactor = -12000

A kalibrációs tényező megszerzését a fenti előző részben ismertetjük.

Tare funkció:

A súly skála önműködő funkciója az értékek nullára hozását jelenti. Például, ha van egy kosarunk, amelybe az árut berakják, akkor a nettó tömeg a kosár súlya + az áru súlya lesz.

Ha az áru betöltése előtt megnyomjuk a kosárral ellátott tárázógombot a mérőcellán, a kosár súlyát elhanyagoljuk, és egyedül mérhetjük az áru súlyát.

Ha kérdése van ezzel az Arduino alapú praktikus LCD mérleg gépi áramkörével kapcsolatban, kérjük, fejtse ki a megjegyzés részben, hogy gyors választ kaphat.




Előző: Szilárdtestes kontaktor áramkör motorszivattyúkhoz Következő: Hogyan készítsünk visszalépő transzformátorokat