- Zahtevane komponente za izdelavo tehtnice Arduino:
- Merilna celica in modul senzorja teže HX711:
- Pojasnilo vezja:
- Delovna razlaga:
- Koda tehtnice Arduino:
Danes bomo izdelali stroj za arduino wight s povezovanjem merilne celice in senzorja teže HX711 z Arduinom. Stroje z utežmi smo videli v številnih trgovinah, kjer stroj prikazuje težo samo s postavitvijo predmeta na tehtalno ploščad. Torej tukaj gradimo isti tehtalni stroj z uporabo Arduino in Load celic, ki lahko merijo do 40 kg. To omejitev lahko še povečate z uporabo merilne celice večje zmogljivosti.
Glavna komponenta, potrebna za izdelavo te tehtnice Arduino, je senzor, ki lahko pretvori težo v enakovreden električni signal. Ta senzor se imenuje merilna celica, zato bomo v tem projektu to merilno celico uporabili kot senzor teže Arduino. Isto tovorno celico smo uporabili tudi v nekaj drugih projektih, saj jih, na primer prenosni stroj za tehtanje na drobno Arduino, tehtnica Raspberry pi itd., Lahko tudi preverite, če vas zanima.
Zahtevane komponente za izdelavo tehtnice Arduino:
- Arduino Uno
- Merilna celica (40 kg)
- HX711 modul ojačevalne celice
- 16x2 LCD
- Priključne žice
- Kabel USB
- Breadboard
- Matice, okvir in podstavek
Merilna celica in modul senzorja teže HX711:
Merilna celica je pretvornik, ki pretvori silo ali tlak v električno moč. Velikost te električne moči je neposredno sorazmerna z uporabljeno silo. Merilne celice imajo merilnik napetosti, ki se ob pritisku nanj deformira. Nato tester merilnika ustvari električni signal o deformaciji, saj se njegova efektivna upornost spremeni pri deformaciji. Merilna celica je običajno sestavljena iz štirih napetostnih merilnikov v konfiguraciji Wheatstonovega mostu. Merilna celica je v različnih razponih, kot so 5 kg, 10 kg, 100 kg in več, tu smo uporabili merilno celico, ki lahko tehta do 40 kg.
Zdaj so električni signali, ki jih generira tovorna celica, v nekaj milivoltih, zato jih je treba še ojačati z nekim ojačevalnikom, zato na sliko pride tehtalni senzor HX711. Modul senzorja za tehtanje HX711 ima čip HX711, ki je 24 visoko natančni A / D pretvornik (analogni v digitalni pretvornik). HX711 ima dva analogna vhodna kanala in s programiranjem teh kanalov lahko pridobimo do 128. Tako modul HX711 ojača nizko električno moč obremenitvenih celic, nato pa se ta ojačani in digitalno pretvorjeni signal dovede v Arduino za pridobitev teže.
Merilna celica je povezana z ojačevalnikom merilne celice HX711 s štirimi žicami. Te štiri žice so rdeča, črna, bela in zelena / modra. Barve žic od modula do modula se lahko nekoliko razlikujejo. Pod podrobnostmi o povezavi in diagramom:
- RDEČA žica je priključena na E +
- ČRNA žica je priključena na E-
- BELA Žica je priključena na A-
- ZELENA žica je priključena na A +
Pritrditev merilne celice s ploščadjo in dnom:
Ta korak ni obvezen in uteži lahko neposredno naložite na tovorno celico brez platforme in jo lahko preprosto pritrdite, ne da bi jo pritrdili s katero koli podlago, vendar je bolje, da nanjo pritrdite ploščad za polaganje velikih stvari in jo pritrdite na podstavek tako da miruje. Torej, tukaj moramo narediti okvir ali ploščad za postavitev stvari za merjenje teže. Podstavek je potreben tudi za pritrditev bremenske celice nad njim z uporabo matic in vijakov. Tu smo uporabili trdi karton za ogrodje za polaganje stvari nad njim in leseno desko kot podlago. Zdaj izvedite povezave, kot je prikazano na vezju, in že ste pripravljeni.
Pojasnilo vezja:
Povezave za ta projekt so enostavne, shema pa je podana spodaj. 16-palčni zatiči LCD RS, EN, d4, d5, d6 in d7 so povezani s številkami pinov 8, 9, 10, 11, 12 in 13 v Arduinu. Zatiči DT in SCK modula HX711 so neposredno povezani z zatiči Arduino A0 in A1. Povezave bremenskih celic z modulom HX711 so že razložene prej in prikazane tudi v spodnjem vezju.
Delovna razlaga:
Načelo dela tega projekta merjenja teže Arduino je enostavno. Preden se spustimo v podrobnosti, moramo najprej umeriti ta sistem za merjenje pravilne teže. Ko ga uporabnik vklopi, se sistem samodejno začne kalibrirati. Če ga želi uporabnik umeriti ročno, pritisnite gumb. Za namene kalibracije smo ustvarili funkcijo void calibrate () , preverite spodnjo kodo.
Za kalibracijo počakajte, da se na LCD-prikazovalniku postavi 100 gramov čez merilno celico, kot je prikazano na spodnji sliki. Ko se na LCD-prikazovalniku izpiše "daj 100g", nato 100g utež postavite čez merilno celico in počakajte. Po nekaj sekundah bo postopek umerjanja končan. Po kalibraciji lahko uporabnik postavi poljubno težo (največ 40 kg) na merilno celico in lahko dobi vrednost nad LCD v gramih.
V tem projektu smo uporabili Arduino za nadzor celotnega procesa. Merilna celica zazna težo in napaja analogno električno napetost do ojačevalnega modula HX711. HX711 je 24-bitni ADC, ki ojača in digitalno pretvori izhodno napetost celice. Nato se ta ojačana vrednost dovede v Arduino. Zdaj Arduino izračuna moč HX711 in jo pretvori v vrednosti teže v gramih in prikaže na LCD-prikazovalniku. Za umerjanje sistema se uporablja gumb. Za celoten postopek smo napisali program Arduino, na koncu te vaje preverite kodo in predstavitveni video.
Koda tehtnice Arduino:
Programski del tega projekta je za začetnike nekoliko zapleten. V tem projektu nismo uporabili knjižnice za povezovanje senzorja obremenitve HX711 z Arduinom. Pravkar smo upoštevali podatkovni list HX711 in opombe o uporabi. Čeprav je v ta namen na voljo nekaj knjižnic, kamor morate vključiti le to knjižnico, težo pa lahko dobite z eno vrstico kode.
Najprej smo vključili glavo datoteke za LCD in za isto definirali nožice. In tudi za tipke. Nato so za namen izračuna določene spremenljivke.
#include
Po njem smo ustvarili spodnjo funkcijo za branje podatkov iz modula HX711 in njegovo vrnitev.
unsigned long readCount (void) {unsigned long Count; nepodpisani znak i; pinMode (DT, IZHOD); digitalWrite (DT, HIGH); digitalWrite (SCK, LOW); Štetje = 0; pinMode (DT, INPUT); while (digitalRead (DT)); za (i = 0; i <24; i ++) {digitalWrite (SCK, HIGH); Štetje = Štetje << 1; digitalWrite (SCK, LOW); if (digitalRead (DT)) Count ++; } digitalWrite (SCK, HIGH); Štetje = Štetje ^ 0x800000; digitalWrite (SCK, LOW); vrnitev (Štetje); }
Po njem smo inicializirali LCD in dali navodila za vhodne in izhodne nožice v void setup ().
void setup () {Serial.begin (9600); pinMode (SCK, IZHOD); pinMode (sw, INPUT_PULLUP); lcd.begin (16, 2); lcd.print ("teža"); lcd.setCursor (0,1); lcd.print ("Merjenje"); zamuda (1000); lcd.clear (); umeriti (); }
Naslednja funkcija void loop () smo prebrali podatke iz modula HX711, te podatke pretvorili v težo (grami) in poslali na LCD.
void loop () {count = readCount (); int w = (((štetje-vzorec) / val) -2 * ((štetje-vzorec) / val)); Serial.print ("teža:"); Serial.print ((int) w); Serial.println ("g"); lcd.setCursor (0,0); lcd.print ("teža"); lcd.setCursor (0,1); lcd.tis (w); lcd.print ("g"); if (digitalRead (sw) == 0) {val = 0; vzorec = 0; w = 0; štetje = 0; umeriti (); }}
Pred tem smo ustvarili kalibracijsko funkcijo, v kateri smo sistem umerili tako, da smo 100-kilogramsko utež postavili nad merilno celico.
void calibrate () {lcd.clear (); lcd.print ("Umerjanje…"); lcd.setCursor (0,1); lcd.print ("Prosim počakajte…"); for (int i = 0; i <100; i ++) {count = readCount (); vzorec + = štetje; Serial.println (count); }……………….
Tu smo se torej naučili osnovnega povezovanja merilne celice in senzorja teže HX11 z Arduinom za merjenje uteži. V naših besedilnih vajah bomo ustvarili nekaj aplikacij, ki temeljijo na merjenju teže, kot so Smart container, Automatic gate itd.