- Nødvendige komponenter for å bygge en Arduino vektvekt:
- Lastcelle og HX711 vektfølermodul:
- Kretsforklaring:
- Arbeidsforklaring:
- Vekteskala for Arduino:
I dag skal vi bygge en Arduino wight-maskin, ved å koble Load Cell og HX711 Weight Sensor med Arduino. Vi har sett vektmaskiner i mange butikker, der maskinen viser vekten bare ved å plassere en vare på veieplattformen. Så her bygger vi den samme veiemaskinen ved å bruke Arduino og Load celler, med en kapasitet på opptil 40 kg. Denne grensen kan økes ytterligere ved å bruke Load celle med høyere kapasitet.
Hovedkomponenten som kreves for å bygge denne Arduino-vekten, er en sensor som kan konvertere vekt til et tilsvarende elektrisk signal. Denne sensoren kalles lastcellen, så i dette prosjektet bruker vi denne lastcellen som vår Arduino-vektføler. Vi har også brukt samme lastecelle i få andre prosjekter som, som Portable Arduino Retail Weighing Machine, Raspberry pi Weighing scale, etc, du kan også sjekke dem ut hvis du er interessert.
Nødvendige komponenter for å bygge en Arduino vektvekt:
- Arduino Uno
- Lastecelle (40 kg)
- HX711 Lastcelleforsterkermodul
- 16x2 LCD
- Koble ledninger
- USB-kabel
- Brettbrett
- Mutterbolter, ramme og sokkel
Lastcelle og HX711 vektfølermodul:
Lastcellen er en svinger som transformerer kraft eller trykk til elektrisk utgang. Størrelsen på denne elektriske utgangen er direkte proporsjonal med kraften som påføres. Lastceller har en strekkmåler som deformeres når det påføres trykk på den. Og så genererer strekkmåler et elektrisk signal ved deformasjon ettersom den effektive motstanden endres ved deformasjon. En lastecelle består vanligvis av fire strekkmålere i en Wheatstone-brokonfigurasjon. Lastecelle kommer i forskjellige områder som 5 kg, 10 kg, 100 kg og mer, her har vi brukt Lastecelle, som kan veie opp til 40 kg.
Nå er de elektriske signalene som genereres av belastningscellen i få millivolt, så de må forsterkes ytterligere av en forsterker, og derfor kommer HX711 veiesensor inn i bildet. HX711 veiesensormodul har HX711-chip, som er en 24 presisjons A / D-omformer (analog til digital omformer). HX711 har to analoge inngangskanaler, og vi kan få gevinst opp til 128 ved å programmere disse kanalene. Så HX711-modulen forsterker den lave elektriske ytelsen til belastningsceller, og deretter mates dette forsterkede og digitalt konverterte signalet inn i Arduino for å utlede vekten.
Lastcellen er koblet til HX711 Lastcelleforsterker ved hjelp av fire ledninger. Disse fire ledningene er rød, svart, hvit og grønn / blå. Det kan være en liten variasjon i fargene på ledninger fra modul til modul. Under tilkoblingsdetaljene og diagrammet:
- RED Wire er koblet til E +
- BLACK Wire er koblet til E-
- WHITE Wire er koblet til A-
- GREEN Wire er koblet til A +
Feste lastecelle med plattform og base:
Dette trinnet er valgfritt, og du kan legge vektene direkte på lastcellen uten en plattform, og du kan bare klemme den uten å feste den med noen base, men det er bedre å feste en plattform for å sette de store tingene på den og fikse den på en base slik at den står stille. Så her må vi lage en ramme eller plattform for å sette tingene for vektmåling. En base er også nødvendig for å feste lastecellen over den ved å bruke muttere og bolter. Her har vi brukt hard papp til rammen for å plassere ting over den og et trebrett som base. Gjør nå tilkoblingene som vist i kretsskjemaet, og du er klar til å gå.
Kretsforklaring:
Det er enkelt å koble til dette prosjektet, og skjematisk er gitt nedenfor. 16x2 LCD-pinner RS, EN, d4, d5, d6 og d7 er forbundet med pin-nummer 8, 9, 10, 11, 12 og 13 i henholdsvis Arduino. HX711-modulens DT- og SCK-pinner er direkte koblet til Arduinos pinner A0 og A1. Lastcelleforbindelser med HX711-modulen er allerede forklart tidligere og vises også i kretsskjemaet nedenfor.
Arbeidsforklaring:
Arbeidsprinsippet til dette Arduino vektmålingsprosjektet er enkelt. Før vi går i detaljer, må vi først kalibrere dette systemet for å måle riktig vekt. Når brukeren slår på den, vil systemet automatisk begynne å kalibrere. Og hvis brukeren vil kalibrere den manuelt, trykk deretter på trykknappen. Vi har opprettet en funksjon void calibrate () for kalibreringsformål, sjekk koden nedenfor.
For kalibrering, vent på LCD-indikasjon for å legge 100 gram over lastcellen som vist på bildet nedenfor. Når LCD-skjermen viser "put 100g" , legg deretter 100g vekten over lastcellen og vent. Etter noen sekunder er kalibreringsprosessen avsluttet. Etter kalibrering kan brukeren legge vekt (maks 40 kg) over lastcellen og kan få verdien over LCD i gram.
I dette prosjektet har vi brukt Arduino til å kontrollere hele prosessen. Lastecelle registrerer vekten og leverer en elektrisk analog spenning til HX711 Load Amplifier Module. HX711 er en 24-biters ADC, som forsterker og konverterer belastningscelleutgangen digitalt. Deretter blir denne forsterkede verdien matet til Arduino. Nå beregner Arduino utdataene fra HX711 og konverterer det til vektverdiene i gram og viser det på LCD. En trykknapp brukes til å kalibrere systemet. Vi har skrevet et Arduino-program for hele prosessen, sjekk koden og demo-videoen på slutten av denne opplæringen.
Vekteskala for Arduino:
Programmeringsdelen av dette prosjektet er litt kompleks for nybegynnere. I dette prosjektet brukte vi ikke noe bibliotek for å grensesnitt HX711 belastningssensor med Arduino. Vi har nettopp fulgt databladet til HX711 og applikasjonsmerknader. Selv om det er noen biblioteker til stede for dette formålet, hvor du bare trenger å inkludere det biblioteket, og du kan få vekten ved hjelp av en kodelinje.
Først og fremst har vi tatt med en headerfil for LCD og definert pinnene for det samme. Og også for trykknapp. Deretter erklærte noen variabler for beregningsformål.
#inkludere
Etter det har vi opprettet funksjonen nedenfor for å lese data fra HX711-modulen og returnere utdataene.
usignert lang readCount (ugyldig) {usignert lang Count; usignert røye jeg; pinMode (DT, OUTPUT); digitalWrite (DT, HIGH); digitalWrite (SCK, LOW); Antall = 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); retur (Count); }
Etter det har vi initialisert LCD og gir veiledning til inngangs- og utgangspinn i ugyldig oppsett ().
ugyldig oppsett () {Serial.begin (9600); pinMode (SCK, OUTPUT); pinMode (sw, INPUT_PULLUP); lcd.begin (16, 2); lcd.print ("Vekt"); lcd.setCursor (0,1); lcd.print ("Måling"); forsinkelse (1000); lcd.clear (); kalibrer (); }
Neste i void loop () -funksjonen, har vi lest data fra HX711-modulen og konvertert disse dataene til vekt (gram) og sendt dem til LCD-skjermen.
ugyldig sløyfe () {count = readCount (); int w = (((count-sample) / val) -2 * ((count-sample) / val)); Serial.print ("vekt:"); Serial.print ((int) w); Serial.println ("g"); lcd.setCursor (0,0); lcd.print ("Vekt"); lcd.setCursor (0,1); lcd.print (w); lcd.print ("g"); hvis (digitalRead (sw) == 0) {val = 0; prøve = 0; w = 0; telle = 0; kalibrer (); }}
Før dette har vi opprettet en kalibreringsfunksjon der vi har kalibrert systemet ved å plassere 100 g vekt over belastningscellen.
ugyldig kalibrere () {lcd.clear (); lcd.print ("Kalibrere…"); lcd.setCursor (0,1); lcd.print ("Vennligst vent…"); for (int i = 0; i <100; i ++) {count = readCount (); prøve + = telle; Serial.println (count); }……………….
Så her har vi lært den grunnleggende grensesnittet for veiecelle og HX11 vektføler med Arduino for å måle vektene. I tekstveiledningene våre vil vi lage noen applikasjoner basert på vektmåling som Smart container, Automatic gate etc.