- Nepieciešamās sastāvdaļas, lai izveidotu Arduino svara skalu:
- Slodzes devēja un HX711 svara sensora modulis:
- Ķēdes skaidrojums:
- Darba skaidrojums:
- Arduino svēršanas skalas kods:
Šodien mēs būvēsim Arduino cīņas mašīnu, sasaistot slodzes šūnu un HX711 svara sensoru ar Arduino. Daudzos veikalos esam redzējuši svaru automātus, kur mašīna parāda svaru, vienkārši novietojot priekšmetu uz svēršanas platformas. Tāpēc šeit mēs būvējam to pašu svēršanas mašīnu, izmantojot Arduino un Load cell, kuru jauda ir līdz 40kg. Šo robežu var vēl vairāk palielināt, izmantojot lielākas jaudas slodzes elementu.
Galvenā sastāvdaļa, kas nepieciešama šīs Arduino svēršanas skalas izveidošanai, ir sensors, kas svaru var pārveidot par līdzvērtīgu elektrisko signālu. Šo sensoru sauc par slodzes elementu, tāpēc šajā projektā mēs izmantosim šo slodzes elementu kā savu Arduino svara sensoru. Mēs esam izmantojuši to pašu slodzes elementu dažos citos projektos, piemēram, Portable Arduino mazumtirdzniecības svēršanas mašīna, Aveņu pi svēršanas skala utt., Ja vēlaties, varat tos pārbaudīt.
Nepieciešamās sastāvdaļas, lai izveidotu Arduino svara skalu:
- Arduino Uno
- Mērīšanas elements (40kg)
- HX711 slodzes elementu pastiprinātāja modulis
- 16x2 LCD
- Savienojošie vadi
- USB kabelis
- Maizes dēlis
- Uzgriežņu skrūves, rāmis un pamatne
Slodzes devēja un HX711 svara sensora modulis:
Slodzes elements ir devējs, kas spēku vai spiedienu pārveido par elektrisko jaudu. Šīs elektriskās jaudas lielums ir tieši proporcionāls pielietotajam spēkam. Slodzes šūnām ir sprieguma mērītājs, kas deformējas, kad uz to iedarbojas spiediens. Tad deformācijas mērītājs ģenerē elektrisko signālu par deformāciju, jo tā faktiskā pretestība mainās deformējoties. Slodzes elements parasti sastāv no četriem deformācijas mērierīcēm Vītstouna tilta konfigurācijā. Slodzes elementi ir dažādos diapazonos, piemēram, 5 kg, 10 kg, 100 kg un vairāk, šeit mēs izmantojām slodzes elementus, kuru svars var sasniegt 40 kg.
Tagad slodzes elementa radītie elektriskie signāli ir dažos milivoltos, tāpēc tie vēl jāpaplašina ar kādu pastiprinātāju, un līdz ar to attēlā parādās HX711 svēršanas sensors. HX711 svēršanas sensora modulim ir HX711 mikroshēma, kas ir 24 augstas precizitātes A / D pārveidotājs (analogais uz ciparu pārveidotājs). HX711 ir divi analogie ieejas kanāli, un, ieprogrammējot šos kanālus, mēs varam iegūt līdz pat 128. Tātad HX711 modulis pastiprina zemo slodzes elementu elektrisko jaudu, un pēc tam šis pastiprinātais un digitāli pārveidotais signāls tiek ievadīts Arduino, lai iegūtu svaru.
Slodzes elements ir savienots ar HX711 slodzes elementa pastiprinātāju, izmantojot četrus vadus. Šie četri vadi ir sarkans, melns, balts un zaļš / zils. Dažādiem moduļiem var būt nelielas vadu krāsas atšķirības. Zem savienojuma detaļām un diagrammas:
- RED vads ir savienots ar E +
- BLACK Wire ir savienots ar E-
- BALTAIS vads ir savienots ar A-
- GREEN vads ir savienots ar A +
Kravas šūnas ar platformu un pamatni nostiprināšana:
Šis solis nav obligāts, un jūs varat tieši ievietot svarus uz slodzes šūnas bez platformas un vienkārši to nostiprināt, nenostiprinot to ar jebkuru pamatni, taču labāk ir piestiprināt platformu lielu lietu uzlikšanai un salabot uz pamatnes. lai tas apstātos. Tāpēc šeit mums ir jāizveido rāmis vai platforma, lai ievietotu lietas svara mērīšanai. Lai piestiprinātu slodzes elementu virs tā, izmantojot uzgriežņus un skrūves, ir nepieciešama arī pamatne. Šeit rāmim mēs esam izmantojuši cieto kartonu lietu novietošanai virs tā un koka dēli kā pamatu. Tagad veiciet savienojumus, kā parādīts shēmā, un jūs esat gatavs doties.
Ķēdes skaidrojums:
Savienojumi šim projektam ir viegli, un shēma ir dota zemāk. 16x2 LCD tapas RS, EN, d4, d5, d6 un d7 ir savienotas ar attiecīgi Arduino tapu numuriem 8, 9, 10, 11, 12 un 13. HX711 moduļa DT un SCK tapas ir tieši savienotas ar Arduino tapām A0 un A1. Slodzes elementu savienojumi ar moduli HX711 jau ir izskaidroti iepriekš un parādīti arī zemāk esošajā shēmā.
Darba skaidrojums:
Šī Arduino svara mērīšanas projekta darbības princips ir vienkāršs. Pirms iedziļināties detaļās, vispirms mums ir jākalibrē šī sistēma pareizā svara mērīšanai. Kad lietotājs to ieslēdz, sistēma automātiski sāks kalibrēšanu. Un, ja lietotājs vēlas to kalibrēt manuāli, nospiediet spiedpogu. Kalibrēšanas vajadzībām esam izveidojuši funkciju void calibrate () , pārbaudiet zemāk esošo kodu.
Lai veiktu kalibrēšanu, pagaidiet, līdz LCD indikators uzliek 100 gramus virs slodzes kameras, kā parādīts zemāk redzamajā attēlā. Kad LCD displejā būs redzams uzraksts “ielieciet 100 g”, tad uzlieciet 100 g svaru virs slodzes devēja un pagaidiet. Pēc dažām sekundēm kalibrēšanas process tiks pabeigts. Pēc kalibrēšanas lietotājs drīkst uzlikt svaru (ne vairāk kā 40 kg) virs slodzes kameras un iegūt LCD vērtību gramos.
Šajā projektā mēs esam izmantojuši Arduino, lai kontrolētu visu procesu. Slodzes elements uztver svaru un piegādā elektrisko analogo spriegumu HX711 slodzes pastiprinātāja modulim. HX711 ir 24 bitu ADC, kas pastiprina un digitāli pārveido slodzes elementu izvadi. Tad šī pastiprinātā vērtība tiek ievadīta Arduino. Tagad Arduino aprēķina HX711 izlaidi un pārvērš to svara vērtībā gramos un parāda to LCD ekrānā. Spiedpogu izmanto sistēmu kalibrēšanai. Mēs esam uzrakstījuši Arduino programmu visam procesam, šīs apmācības beigās pārbaudiet kodu un demonstrācijas video.
Arduino svēršanas skalas kods:
Šī projekta programmēšanas daļa ir nedaudz sarežģīta iesācējiem. Šajā projektā mēs neizmantojām nevienu bibliotēku, lai HX711 slodzes sensoru sasaistītu ar Arduino. Mēs tikko ievērojām HX711 datu lapu un lietojumprogrammas piezīmes. Lai gan šim nolūkam ir dažas bibliotēkas, kurās jums jāiekļauj tikai šī bibliotēka, un svaru varat iegūt, izmantojot vienu koda rindiņu.
Pirmkārt, mēs esam iekļāvuši galvenes failu LCD un definējuši tā paša tapas. Un arī spiedpogai. Pēc tam aprēķina vajadzībām paziņoja dažus mainīgos.
# iekļaut
Pēc tam mēs esam izveidojuši zemāk redzamo funkciju datu nolasīšanai no HX711 moduļa un tā izejas atgriešanai.
unsigned long readCount (void) {neparakstīts garš skaitlis; neparakstīta char i; pinMode (DT, OUTPUT); digitalWrite (DT, HIGH); digitalWrite (SCK, LOW); Skaits = 0; pinMode (DT, INPUT); kamēr (digitalRead (DT)); par (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); atgriešanās (Count); }
Pēc tam mēs esam inicializējuši LCD un dodam norādījumus ievades un izvades tapām tukšajā iestatījumā ().
void setup () {Sērijas.sākt (9600); pinMode (SCK, OUTPUT); pinMode (sw, INPUT_PULLUP); lcd.begin (16, 2); lcd.print ("Svars"); lcd.setCursor (0,1); lcd.print ("Mērīšana"); kavēšanās (1000); lcd.clear (); kalibrēt (); }
Tālāk funkcijā void loop () mēs esam izlasījuši datus no HX711 moduļa un pārveidojuši šos datus svarā (gramos) un nosūtījuši tos LCD.
void loop () {count = readCount (); int w = (((skaits-paraugs) / val) -2 * ((skaits-paraugs) / val)); Serial.print ("svars:"); Sērijas.druka ((int) w); Serial.println ("g"); lcd.setCursor (0,0); lcd.print ("Svars"); lcd.setCursor (0,1); lcd.print (w); lcd.print ("g"); ja (digitalRead (sw) == 0) {val = 0; paraugs = 0; w = 0; skaits = 0; kalibrēt (); }}
Pirms tam mēs esam izveidojuši kalibrēšanas funkciju, kurā mēs esam kalibrējuši sistēmu, 100gm svaru novietojot virs slodzes šūnas.
void calibrate () {lcd.clear (); lcd.print ("Kalibrēšana…"); lcd.setCursor (0,1); lcd.print ("Lūdzu, uzgaidiet…"); par (int i = 0; i <100; i ++) {count = readCount (); paraugs + = skaits; Serial.println (skaits); }……………….
Tātad šeit mēs esam iemācījušies pamata slodzes elementu un HX11 svara sensora saskarni ar Arduino, lai izmērītu svaru. Mūsu teksta apmācībās mēs izveidosim dažas lietojumprogrammas, kuru pamatā ir svara mērīšana, piemēram, viedais konteiners, automātiskie vārti utt.