- Nødvendige komponenter til at opbygge en Arduino-vægtskala:
- Vejecelle- og HX711-vægtsensormodul:
- Forklaring af kredsløb:
- Arbejdsforklaring:
- Arduino vejning skaleringskode:
I dag skal vi bygge en Arduino wight-maskine ved at forbinde vejecelle og HX711 vægtsensor med Arduino. Vi har set vægtmaskiner i mange butikker, hvor maskinen viser vægten bare ved at placere en vare på vejeplatformen. Så her bygger vi den samme vejemaskine ved hjælp af Arduino- og vejeceller med en kapacitet på op til 40 kg. Denne grænse kan øges yderligere ved hjælp af Load celle med højere kapacitet.
Hovedkomponenten, der kræves for at opbygge denne Arduino-vægte, er en sensor, der kan konvertere vægten til et ækvivalent elektrisk signal. Denne sensor kaldes vejecellen, så i dette projekt bruger vi denne vejecelle som vores Arduino-vægtsensor. Vi har også brugt den samme vejecelle i få andre projekter som, som Portable Arduino Retail Weighing Machine, Raspberry pi Weighing scale osv., Du kan også tjekke dem ud, hvis du er interesseret.
Nødvendige komponenter til at opbygge en Arduino-vægtskala:
- Arduino Uno
- Vejecelle (40 kg)
- HX711 Vejecelleforstærkermodul
- 16x2 LCD
- Tilslutning af ledninger
- USB-kabel
- Brødbræt
- Møtrikbolte, ramme og bund
Vejecelle- og HX711-vægtsensormodul:
Vejecellen er en transducer, der omdanner kraft eller tryk til elektrisk output. Størrelsen af dette elektriske output er direkte proportionalt med den kraft, der påføres. Vejeceller har en spændingsmåler, der deformeres, når der påføres tryk på den. Og så genererer spændingsmåler et elektrisk signal ved deformation, da dets effektive modstand ændres ved deformation. En vejecelle består normalt af fire stregmålere i en Wheatstone-brokonfiguration. Vejecelle kommer i forskellige intervaller som 5 kg, 10 kg, 100 kg og mere, her har vi brugt vejecelle, der kan veje op til 40 kg.
Nu er de elektriske signaler, der genereres af vejecellen, i få millivolt, så de skal forstærkes yderligere af en forstærker, og derfor kommer HX711-vejesensor ind i billedet. HX711 vejesensormodul har HX711-chip, som er en 24 A / D-konverter med høj præcision (analog til digital konverter). HX711 har to analoge indgangskanaler, og vi kan få forstærkning op til 128 ved at programmere disse kanaler. Så HX711-modul forstærker den lave elektriske effekt af vejeceller, og derefter føres dette forstærkede og digitalt konverterede signal ind i Arduino for at udlede vægten.
Vejecellen er forbundet med HX711 vejecelleforstærker ved hjælp af fire ledninger. Disse fire ledninger er rød, sort, hvid og grøn / blå. Der kan være en lille variation i ledningernes farver fra modul til modul. Nedenfor forbindelsesdetaljerne og diagrammet:
- RØD ledning er tilsluttet E +
- BLACK Wire er forbundet til E-
- WHITE Wire er forbundet til A-
- GRØN Wire er tilsluttet A +
Fastgørelse af vejecelle med platform og base:
Dette trin er valgfrit, og du kan direkte lægge vægtene på vejecellen uden en platform og kan simpelthen klemme den uden at fastgøre den med nogen base, men det er bedre at vedhæfte en platform til at sætte de store ting på den og rette den på en base så det går stille. Så her er vi nødt til at lave en ramme eller platform til at lægge tingene til vægtmåling. En base er også nødvendig for at fastgøre vejecellen over den ved hjælp af møtrikker og bolte. Her har vi brugt hård pap til rammen til at placere ting over den og en træplade som base. Foretag nu forbindelserne som vist i kredsløbsdiagrammet, og du er klar til at gå.
Forklaring af kredsløb:
Forbindelser til dette projekt er lette, og skematisk er vist nedenfor. 16x2 LCD-stifter RS, EN, d4, d5, d6 og d7 er forbundet med pin-nummer henholdsvis 8, 9, 10, 11, 12 og 13 i Arduino. HX711-modulets DT- og SCK-ben er direkte forbundet med Arduinos ben A0 og A1. Vejledningsforbindelser med HX711-modulet er allerede forklaret tidligere og vises også i nedenstående kredsløbsdiagram.
Arbejdsforklaring:
Arbejdsprincippet i dette Arduino-vægtmålingsprojekt er let. Før vi går i detaljer, skal vi først kalibrere dette system til måling af den korrekte vægt. Når brugeren tænder for det, begynder systemet automatisk at kalibrere. Og hvis brugeren ønsker at kalibrere det manuelt, skal du trykke på trykknappen. Vi har oprettet en funktion ugyldig kalibrering () til kalibreringsformål, tjek koden nedenfor.
Ved kalibrering skal du vente på LCD-indikation for at lægge 100 gram over vejecellen som vist på nedenstående billede. Når LCD viser "læg 100 g", skal du lægge 100 g vægten over vejecellen og vente. Efter nogle sekunder er kalibreringsprocessen afsluttet. Efter kalibrering kan brugeren lægge en vægt (maks. 40 kg) over vejecellen og kan få værdien over LCD i gram.
I dette projekt har vi brugt Arduino til at kontrollere hele processen. Vejecelle registrerer vægten og leverer en elektrisk analog spænding til HX711 Load Amplifier Module. HX711 er en 24-bit ADC, som forstærker og digitalt konverterer belastningscelleoutput. Derefter tilføres denne forstærkede værdi til Arduino. Nu beregner Arduino output fra HX711 og konverterer det til vægtværdierne i gram og viser det på LCD. En trykknap bruges til at kalibrere systemet. Vi har skrevet et Arduino-program til hele processen, tjek koden og demo-videoen i slutningen af denne vejledning.
Arduino vejning skaleringskode:
Programmeringsdelen af dette projekt er lidt kompleks for begyndere. I dette projekt brugte vi ikke noget bibliotek til grænseflade mellem HX711-belastningssensoren og Arduino. Vi har netop fulgt databladet til HX711 og applikationsnoter. Selv om der er nogle biblioteker til stede til dette formål, hvor du kun behøver at medtage dette bibliotek, og du kan få vægten ved hjælp af en linje kode.
Først og fremmest har vi inkluderet en headerfil til LCD og defineret stifterne for det samme. Og også til trykknap. Derefter erklærede nogle variabler til beregningsformål.
#omfatte
Efter det har vi oprettet nedenstående funktion til at læse data fra HX711-modulet og returnere dets output.
usigneret lang readCount (ugyldig) {usigneret lang Count; usigneret char i; pinMode (DT, OUTPUT); digitalWrite (DT, HIGH); digitalWrite (SCK, LOW); Tæl = 0; pinMode (DT, INPUT); mens (digitalRead (DT)); for (i = 0; i <24; i ++) {digitalWrite (SCK, HIGH); Count = Count << 1; digitalWrite (SCK, LOW); hvis (digitalRead (DT)) Count ++; } digitalWrite (SCK, HIGH); Count = Count ^ 0x800000; digitalWrite (SCK, LOW); returnere (tælle); }
Efter det har vi initialiseret LCD og giver anvisninger til input og output pins i ugyldig opsætning ().
ugyldig opsætning () {Serial.begin (9600); pinMode (SCK, OUTPUT); pinMode (sw, INPUT_PULLUP); lcd.begin (16, 2); lcd.print ("Vægt"); lcd.setCursor (0,1); lcd.print ("Måling"); forsinkelse (1000); lcd.clear (); kalibrer (); }
Næste i void loop () -funktionen har vi læst data fra HX711-modulet og konverteret disse data til vægt (gram) og sendt dem til LCD-skærmen.
ugyldig sløjfe () {count = readCount (); int w = (((count-sample) / val) -2 * ((count-sample) / val)); Serial.print ("vægt:"); Serial.print ((int) w); Serial.println ("g"); lcd.setCursor (0,0); lcd.print ("Vægt"); lcd.setCursor (0,1); lcd.print (w); lcd.print ("g"); hvis (digitalRead (sw) == 0) {val = 0; prøve = 0; w = 0; tælle = 0; kalibrer (); }}
Før dette har vi oprettet en kalibreringsfunktion, hvor vi har kalibreret systemet ved at placere 100 g vægt over vejecellen.
ugyldig kalibrering () {lcd.clear (); lcd.print ("Kalibrering…"); lcd.setCursor (0,1); lcd.print ("Vent venligst…"); for (int i = 0; i <100; i ++) {count = readCount (); prøve + = antal; Serial.println (antal); }……………….
Så her har vi lært den grundlæggende grænseflade mellem vejecelle og HX11 vægtsensor med Arduino til måling af vægten. I vores tekst-tutorials opretter vi nogle applikationer baseret på vægtmåling som Smart container, Automatic gate osv.