- Reikalingi komponentai „Arduino“ svorio skalei sukurti:
- Krovinio elemento ir HX711 svorio jutiklio modulis:
- Grandinės paaiškinimas:
- Darbinis paaiškinimas:
- „Arduino“ svarstyklių kodas:
Šiandien mes sukursime „ Arduino“ kovos mašiną, sujungdami „Load Cell“ ir „HX711“ svorio jutiklį su „Arduino“. Mes matėme svorio mašinas daugelyje parduotuvių, kur mašina rodo svorį tiesiog padėdama daiktą ant svėrimo platformos. Taigi čia mes statome tą pačią svėrimo mašiną, naudodami „Arduino“ ir „Load cell“, kurių talpa gali siekti iki 40 kg. Šią ribą galima dar labiau padidinti naudojant didesnės talpos apkrovos elementą.
Pagrindinis komponentas, reikalingas šiai „ Arduino“ svėrimo skalei sukurti, yra jutiklis, galintis paversti svorį lygiaverčiu elektriniu signalu. Šis jutiklis vadinamas apkrovos elementu, todėl šiame projekte mes naudosime šią apkrovos elementą kaip savo „ Arduino“ svorio jutiklį. Mes taip pat naudojome tą pačią apkrovos elementą keliuose kituose projektuose, pvz., Nešiojama „Arduino“ mažmeninė svėrimo mašina, „Raspberry pi“ svėrimo skalė ir kt., Taip pat galite juos patikrinti, jei susidomėsite.
Reikalingi komponentai „Arduino“ svorio skalei sukurti:
- Arduino Uno
- Krovinio elementas (40 kg)
- HX711 apkrovos elementų stiprintuvo modulis
- 16x2 LCD ekranas
- Jungiamieji laidai
- USB kabelis
- Bandomoji Lenta
- Veržlės varžtai, rėmas ir pagrindas
Krovinio elemento ir HX711 svorio jutiklio modulis:
Krūvio elementas yra keitiklis, kuris jėgą ar slėgį paverčia elektros išėjimu. Šios elektros galios dydis yra tiesiogiai proporcingas veikiamai jėgai. Krovinio elementai turi įtempimo matuoklį, kuris deformuojasi, kai jam daromas slėgis. Tada deformacijos matuoklis generuoja elektrinį signalą apie deformaciją, nes jo efektyvusis pasipriešinimas keičiasi deformuojant. Krovinio elementą paprastai sudaro keturi įtempio matuokliai, esantys Wheatstone tilto konfigūracijoje. Krūvio elementai yra įvairių diapazonų, pvz., 5 kg, 10 kg, 100 kg ir daugiau, čia mes naudojome apkrovos elementus, kurie gali sverti iki 40 kg.
Dabar apkrovos elemento generuojami elektriniai signalai yra keli milivoltai, todėl juos reikia dar labiau sustiprinti kai kuriais stiprintuvais, todėl HX711 svėrimo jutiklis patenka į paveikslėlį. HX711 svėrimo jutiklio modulis turi HX711 lustą, kuris yra 24 aukšto tikslumo A / D keitiklis (analoginis į skaitmeninį keitiklį). HX711 turi du analoginius įvesties kanalus, o užprogramavę šiuos kanalus, galime gauti iki 128 padidėjimą. Taigi HX711 modulis sustiprina mažą apkrovos elementų elektrinę galią, o tada šis sustiprintas ir skaitmeniniu būdu konvertuotas signalas yra tiekiamas į „Arduino“, kad gautų svorį.
Krovos elementas sujungtas su HX711 krūvio elemento stiprintuvu, naudojant keturis laidus. Šie keturi laidai yra raudona, juoda, balta ir žalia / mėlyna. Skirtingų modulių laidų spalvos gali šiek tiek skirtis. Žemiau pateikiama išsami ryšio informacija ir schema:
- RAUDONA viela yra prijungta prie E +
- JUODA viela prijungta prie E-
- BALTA viela prijungta prie A-
- ŽALIOJI viela sujungta su A +
Tvirtinimo elemento su platforma ir pagrindu tvirtinimas:
Šis žingsnis yra neprivalomas ir jūs galite tiesiogiai įdėti svorius ant apkrovos langelio be platformos ir galite jį tiesiog užveržti, netvirtindami jo jokiu pagrindu, tačiau geriau pritvirtinti platformą, kad būtų galima uždėti didelius daiktus, ir pritvirtinti ant pagrindo. kad jis sustotų. Taigi čia turime pagaminti rėmą ar platformą, kad daiktai būtų matuojami svoriui. Taip pat reikalingas pagrindas, kad ant jo būtų galima pritvirtinti apkrovos elementą, naudojant veržles ir varžtus. Čia rėmui panaudojome kietąjį kartoną daiktų uždėjimui virš jo ir medinę lentą kaip pagrindą. Dabar atlikite jungtis, kaip parodyta grandinės schemoje, ir esate pasirengę eiti.
Grandinės paaiškinimas:
Šio projekto jungtys yra paprastos, o schema pateikta žemiau. 16x2 LCD kaiščiai RS, EN, d4, d5, d6 ir d7 yra sujungti su „Arduino“ kaiščių numeriais atitinkamai 8, 9, 10, 11, 12 ir 13. „HX711“ modulio DT ir SCK kaiščiai yra tiesiogiai sujungti su „Arduino“ kaiščiais A0 ir A1. Krovinio elementų jungtys su moduliu HX711 jau paaiškintos anksčiau, taip pat parodytos žemiau esančioje grandinės schemoje.
Darbinis paaiškinimas:
Šio „ Arduino“ svorio matavimo projekto veikimo principas yra lengvas. Prieš pradėdami detaliau, pirmiausia turime kalibruoti šią sistemą, kad pamatuotumėte teisingą svorį. Kai vartotojas jį įjungs, sistema automatiškai pradės kalibruoti. Ir jei vartotojas nori kalibruoti rankiniu būdu, tada paspauskite mygtuką. Sukūrėme funkciją void calibrate () kalibravimo tikslais, patikrinkite žemiau esantį kodą.
Norėdami atlikti kalibravimą, palaukite, kol skystųjų kristalų indikatorius uždės 100 gramų ant krūvio elemento, kaip parodyta žemiau esančiame paveikslėlyje. Kai skystųjų kristalų ekrane bus rodoma „įdėti 100 g“, tada uždėkite 100 g svorį ant apkrovos elemento ir palaukite. Po kelių sekundžių kalibravimo procesas bus baigtas. Po kalibravimo vartotojas gali uždėti bet kokį svorį (ne daugiau kaip 40 kg) ant matavimo elemento ir gauti vertę per LCD ekraną gramais.
Šiame projekte mes naudojome „ Arduino“ viso proceso kontrolei. Krovos elementas nustato svorį ir tiekia elektrinę analoginę įtampą HX711 apkrovos stiprintuvo moduliui. HX711 yra 24 bitų ADC, kuris sustiprina ir skaitmeniniu būdu paverčia apkrovos elementų išvestį. Tada ši sustiprinta vertė perduodama „Arduino“. Dabar „Arduino“ apskaičiuoja HX711 išvestį ir konvertuoja ją į svorio vertes gramais ir parodo LCD ekrane. Mygtukinis naudojamas kalibravimo sistemą. Visam procesui parašėme „Arduino“ programą, patikrinkite kodą ir demonstracinį vaizdo įrašą šios pamokos pabaigoje.
„Arduino“ svarstyklių kodas:
Šio projekto programavimo dalis yra šiek tiek sudėtinga pradedantiesiems. Šiame projekte nenaudojome jokios bibliotekos sąsajai su „HX711“ apkrovos jutikliu su „Arduino“. Ką tik sekėme HX711 duomenų lapą ir programos pastabas. Nors šiuo tikslu yra keletas bibliotekų, į kurias reikia įtraukti tik tą biblioteką, o svorį galite gauti naudodami vieną kodo eilutę.
Visų pirma, mes įtraukėme LCD antraštės failą ir apibrėžėme to paties kaiščius. Taip pat ir mygtukui. Tada apskaičiavimui deklaravo keletą kintamųjų.
# įtraukti
Po to mes sukūrėme žemiau esančią funkciją, skirtą duomenims skaityti iš modulio HX711 ir grąžinti jo išvestį.
unsigned long readCount (negaliojantis) {nepasirašytas ilgas Count; nepasirašyta char i; pinMode (DT, OUTPUT); „digitalWrite“ (DT, HIGH); „digitalWrite“ (SCK, LOW); Skaičius = 0; pinMode (DT, INPUT); o („digitalRead“ (DT)); už (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); grįžimas (grafas); }
Po to mes inicializavome LCD ir nurodome įvesties ir išvesties kaiščių nustatymą negaliojančioje sąrankoje ().
negaliojanti sąranka () {Serial.begin (9600); pinMode (SCK, OUTPUT); pinMode (sw, INPUT_PULLUP); lcd.begin (16, 2); lcd.print („Svoris“); lcd.setCursor (0,1); lcd.print („Matavimas“); vėlavimas (1000); lcd.clear (); kalibruoti (); }
Toliau „ void loop ()“ funkcijoje mes perskaitėme duomenis iš „HX711“ modulio ir pavertėme šiuos duomenis svoriu (gramais) ir išsiuntėme į LCD.
void loop () {count = readCount (); int w = (((skaičius-mėginys) / val) -2 * ((skaičius-pavyzdys) / val)); Serial.print („svoris:“); Serijinis.atspausdinti ((int) w); Serial.println ("g"); lcd.setCursor (0,0); lcd.print („Svoris“); lcd.setCursor (0,1); lcd.print (w); lcd.print ("g"); if (digitalRead (sw) == 0) {val = 0; mėginys = 0; w = 0; skaičius = 0; kalibruoti (); }}
Prieš tai mes sukūrėme kalibravimo funkciją, kurioje sukalibravome sistemą, ant svorio elemento uždėdami 100 g svorio.
void calibrate () {lcd.clear (); lcd.print ("Kalibruojama…"); lcd.setCursor (0,1); lcd.print ("Prašome palaukti…"); už (int i = 0; i <100; i ++) {count = readCount (); mėginys + = skaičius; Serial.println (skaičius); }……………….
Taigi čia mes sužinojome pagrindinius apkrovos elementų ir HX11 svorio jutiklio sąsajas su „Arduino“, kad matuotume svorį. Savo tekstinėse pamokose sukursime keletą programų, pagrįstų svorio matavimu, pvz., „Smart container“, „Automatic gate“ ir kt.