- Nödvändiga komponenter för att bygga en Arduino viktskala:
- Lastcell och HX711 viktsensormodul:
- Kretsförklaring:
- Arbetsförklaring:
- Vägningskod för Arduino:
Idag ska vi bygga en Arduino wight-maskin genom att koppla samman viktcell och HX711 viktsensor med Arduino. Vi har sett viktmaskiner i många butiker, där maskinen visar vikten bara genom att placera en artikel på vägningsplattformen. Så här bygger vi samma vägningsmaskin med hjälp av Arduino- och lastceller med en kapacitet på upp till 40 kg. Denna gräns kan ökas ytterligare med hjälp av lastcellen med högre kapacitet.
Huvudkomponenten som krävs för att bygga denna Arduino-våg är en sensor som kan omvandla vikt till en ekvivalent elektrisk signal. Den här sensorn kallas lastcellen, så i detta projekt kommer vi att använda den här lastcellen som vår Arduino-viktsensor. Vi har också använt samma lastcell i några andra projekt som, som Portable Arduino Retail Weighing Machine, Raspberry pi Weighing scale, etc, du kan också kolla in dem om du är intresserad.
Nödvändiga komponenter för att bygga en Arduino viktskala:
- Arduino Uno
- Lastcell (40 kg)
- HX711 Lastcellsförstärkarmodul
- 16x2 LCD
- Anslutande ledningar
- USB-kabel
- Bakbord
- Mutterbultar, ram och bas
Lastcell och HX711 viktsensormodul:
Lastcellen är en omvandlare som omvandlar kraft eller tryck till elektrisk utgång. Storleken på denna elektriska utgång är direkt proportionell mot den kraft som appliceras. Lastceller har en töjningsmätare som deformeras när den appliceras på tryck. Och sedan genererar töjningsmätaren en elektrisk signal vid deformation när dess effektiva motstånd förändras vid deformation. En lastcell består vanligtvis av fyra töjningsmätare i en Wheatstone-bryggkonfiguration. Lastceller finns i olika intervall som 5 kg, 10 kg, 100 kg och mer, här har vi använt Lastceller, som kan väga upp till 40 kg.
Nu finns de elektriska signalerna som genereras av belastningscellen i några millivolt, så de måste förstärkas ytterligare av någon förstärkare och därmed kommer HX711 vägningssensor in i bilden. HX711 vägningssensormodul har HX711-chip, vilket är en 24 högprecisions A / D-omvandlare (analog till digital omvandlare). HX711 har två analoga ingångskanaler och vi kan få förstärkning upp till 128 genom att programmera dessa kanaler. Så HX711-modulen förstärker den låga elektriska effekten av belastningsceller och sedan matas denna förstärkta och digitalt omvandlade signal in i Arduino för att härleda vikten.
Lastcellen är ansluten till HX711 lastcellsförstärkare med fyra ledningar. Dessa fyra ledningar är röda, svarta, vita och gröna / blå. Det kan finnas en liten variation i trådarnas färger från modul till modul. Nedanför anslutningsdetaljerna och diagrammet:
- RÖD Wire är ansluten till E +
- SVART ledning är ansluten till E-
- WHITE Wire är ansluten till A-
- GRÖN Wire är ansluten till A +
Fixering av lastcell med plattform och bas:
Det här steget är valfritt och du kan placera vikterna direkt på lastcellen utan en plattform och helt enkelt klämma fast den utan att fästa den med någon bas, men det är bättre att fästa en plattform för att lägga de stora sakerna på den och fixa den på en bas så att det stannar. Så här måste vi skapa en ram eller plattform för att sätta sakerna för viktmätning. En bas krävs också för att fästa lastcellen över den med muttrar och bultar. Här har vi använt hård kartong för ramen för att placera saker över den och en träskiva som bas. Gör nu anslutningarna som visas i kretsschemat så är du redo att gå.
Kretsförklaring:
Anslutningar för det här projektet är enkla och schematisk nedan. 16x2 LCD-stift RS, EN, d4, d5, d6 och d7 är anslutna med stiftnummer 8, 9, 10, 11, 12 och 13 i Arduino. HX711-modulens DT- och SCK-stift är direkt anslutna till Arduinos stift A0 och A1. Lastcellanslutningar med HX711-modulen har redan förklarats tidigare och visas också i nedanstående kretsschema.
Arbetsförklaring:
Arbetsprincipen för detta Arduino viktmätningsprojekt är lätt. Innan vi går in i detaljer måste vi först kalibrera detta system för att mäta rätt vikt. När användaren startar systemet startar systemet automatiskt kalibreringen. Och om användaren vill kalibrera den manuellt, tryck sedan på tryckknappen. Vi har skapat en funktion void calibrate () för kalibreringsändamål, kontrollera koden nedan.
För kalibrering, vänta på LCD-indikering för att lägga 100 gram över lastcellen enligt bilden nedan. När LCD-skärmen visar "sätt 100 g" lägg sedan 100 g vikt över lastcellen och vänta. Efter några sekunder är kalibreringsprocessen klar. Efter kalibrering kan användaren lägga någon vikt (max 40 kg) över lastcellen och kan få värdet över LCD i gram.
I detta projekt har vi använt Arduino för att styra hela processen. Lastcell känner av vikten och levererar en elektrisk analog spänning till HX711 Load Amplifier Module. HX711 är en 24-bitars ADC, som förstärker och digitalt omvandlar belastningscellutgången. Sedan matas detta förstärkta värde till Arduino. Nu beräknar Arduino utdata från HX711 och konverterar det till viktvärdena i gram och visar det på LCD. En tryckknapp används för att kalibrera systemet. Vi har skrivit ett Arduino-program för hela processen, kolla koden och demo-videon i slutet av denna handledning.
Vägningskod för Arduino:
Programmeringsdelen av detta projekt är lite komplex för nybörjare. I det här projektet använde vi inget bibliotek för gränssnitt mellan HX711-belastningssensorn och Arduino. Vi har just följt databladet för HX711 och applikationsanmärkningar. Även om det finns några bibliotek närvarande för detta ändamål, där du bara behöver inkludera det biblioteket och du kan få vikten med en kodrad.
Först och främst har vi inkluderat en rubrikfil för LCD och definierat stiften för samma. Och även för tryckknapp. Sedan deklarerade några variabler för beräkningsändamål.
#omfatta
Efter det har vi skapat funktionen nedan för att läsa data från HX711-modulen och returnera dess utdata.
osignerad lång readCount (ogiltig) {osignerad lång räkning; osignerad char i; pinMode (DT, OUTPUT); digitalWrite (DT, HIGH); digitalWrite (SCK, LOW); Antal = 0; pinMode (DT, INPUT); medan (digitalRead (DT)); för (i = 0; i <24; i ++) {digitalWrite (SCK, HIGH); Räkna = Räkna << 1; digitalWrite (SCK, LOW); if (digitalRead (DT)) Count ++; } digitalWrite (SCK, HIGH); Räkna = Räkna ^ 0x800000; digitalWrite (SCK, LOW); returnera (räkna); }
Efter det har vi initierat LCD och ger anvisningar för in- och utgångsstift i ogiltig installation ().
ogiltig installation () {Serial.begin (9600); pinMode (SCK, OUTPUT); pinMode (sw, INPUT_PULLUP); lcd.begin (16, 2); lcd.print ("Vikt"); lcd.setCursor (0,1); lcd.print ("Mätning"); fördröjning (1000); lcd.clear (); kalibrera(); }
Nästa i void loop () -funktionen har vi läst data från HX711-modulen och konverterat dessa data till vikt (gram) och skickat dem till LCD-skärmen.
ogiltig slinga () {count = readCount (); int w = (((count-sample) / val) -2 * ((count-sample) / val)); Serial.print ("vikt:"); Serial.print ((int) w); Serial.println ("g"); lcd.setCursor (0,0); lcd.print ("Vikt"); lcd.setCursor (0,1); lcd.print (w); lcd.print ("g"); om (digitalRead (sw) == 0) {val = 0; prov = 0; w = 0; antal = 0; kalibrera(); }}
Innan detta har vi skapat en kalibreringsfunktion där vi har kalibrerat systemet genom att placera 100 g vikt över belastningscellen.
ogiltig kalibrering () {lcd.clear (); lcd.print ("Kalibrera…"); lcd.setCursor (0,1); lcd.print ("Vänta…"); för (int i = 0; i <100; i ++) {count = readCount (); prov + = antal; Serial.println (antal); }……………….
Så här har vi lärt oss den grundläggande gränssnittet mellan lastceller och HX11 viktsensor med Arduino för att mäta vikterna. I våra texthandledning skapar vi några applikationer baserade på viktmätning som Smart container, Automatic gate etc.