- Vereiste componenten om een Arduino-weegschaal te bouwen:
- Weegcel en HX711-gewichtssensormodule:
- Circuit uitleg:
- Werkende uitleg:
- Arduino weegschaalcode:
Vandaag gaan we een Arduino-wight-machine bouwen, door Load Cell en HX711 Weight Sensor te koppelen aan Arduino. Bij veel winkels hebben we weegmachines gezien, waar de machine het gewicht weergeeft door gewoon een item op het weegplateau te plaatsen. Dus hier bouwen we dezelfde weegmachine met behulp van Arduino en Load-cellen, met een capaciteit van maximaal 40 kg. Deze limiet kan verder worden verhoogd door gebruik te maken van de Loadcel met een hogere capaciteit.
Het belangrijkste onderdeel dat nodig is om deze Arduino-weegschaal te bouwen, is een sensor die het gewicht kan omzetten in een gelijkwaardig elektrisch signaal. Deze sensor wordt de weegcel genoemd, dus in dit project zullen we deze weegcel gebruiken als onze Arduino-weegsensor. We hebben dezelfde loadcel ook in enkele andere projecten gebruikt, zoals de Portable Arduino Retail Weighing Machine, Raspberry pi Weighing scale, etc, je kunt ze ook bekijken als je geïnteresseerd bent.
Vereiste componenten om een Arduino-weegschaal te bouwen:
- Arduino Uno
- Laadcel (40 kg)
- HX711 Load cell versterkermodule
- 16x2 LCD
- Draden aansluiten
- USB-kabel
- Breadboard
- Moerbouten, frame en basis
Weegcel en HX711-gewichtssensormodule:
De load cell is een transducer die kracht of druk omzet in elektrische output. De grootte van deze elektrische output is rechtevenredig met de uitgeoefende kracht. Weegcellen hebben een rekstrookje, dat vervormt wanneer er druk op wordt uitgeoefend. En dan genereert de spanningsmeter een elektrisch signaal bij vervorming als de effectieve weerstand verandert bij vervorming. Een loadcel bestaat meestal uit vier rekstrookjes in een Wheatstone-brugconfiguratie. Weegcellen zijn er in verschillende bereiken, zoals 5 kg, 10 kg, 100 kg en meer, hier hebben we een loadcel gebruikt, die tot 40 kg kan wegen.
Nu zijn de elektrische signalen die door de weegcel worden gegenereerd in enkele millivolt, dus ze moeten verder worden versterkt door een versterker en daarom komt de HX711-weegsensor in beeld. De HX711 weegsensormodule heeft een HX711-chip, een 24 zeer nauwkeurige A / D-omzetter (analoog naar digitaal omzetter). De HX711 heeft twee analoge ingangskanalen en we kunnen een versterking krijgen tot 128 door deze kanalen te programmeren. Dus de HX711-module versterkt de lage elektrische output van loadcellen en vervolgens wordt dit versterkte en digitaal geconverteerde signaal naar de Arduino gevoerd om het gewicht af te leiden.
De loadcel is met vier draden verbonden met de HX711 Load Cell Amplifier. Deze vier draden zijn rood, zwart, wit en groen / blauw. Er kan een kleine variatie zijn in de kleuren van de draden van module tot module. Hieronder de verbindingsdetails en het diagram:
- RODE draad is verbonden met E +
- ZWARTE draad is verbonden met E-
- WITTE draad is verbonden met A-
- GROENE draad is verbonden met A +
Weegcel met platform en basis bevestigen:
Deze stap is optioneel en u kunt de gewichten direct op de loadcel plaatsen zonder een platform en deze eenvoudig vastklemmen zonder deze met een basis te bevestigen, maar het is beter om een platform te bevestigen om de grote dingen erop te plaatsen en deze op een basis te bevestigen zodat het stilstaat. Dus hier moeten we een frame of platform maken om de dingen voor gewichtsmeting te plaatsen. Er is ook een basis nodig om de weegcel eroverheen te bevestigen met behulp van moeren en bouten. Hier hebben we hard karton gebruikt voor het frame om er dingen overheen te plaatsen en een houten plank als basis. Voer nu de aansluitingen uit zoals weergegeven in het schakelschema en u bent klaar om te gaan.
Circuit uitleg:
Verbindingen voor dit project zijn eenvoudig en het schema wordt hieronder weergegeven. 16x2 LCD-pinnen RS, EN, d4, d5, d6 en d7 zijn verbonden met respectievelijk pinnummers 8, 9, 10, 11, 12 en 13 van Arduino. De DT- en SCK-pinnen van de HX711-module zijn rechtstreeks verbonden met de pinnen A0 en A1 van Arduino. Weegcelverbindingen met de HX711-module zijn al eerder uitgelegd en ook weergegeven in het onderstaande schakelschema.
Werkende uitleg:
Het werkingsprincipe van dit Arduino-project voor gewichtsmeting is eenvoudig. Voordat we op de details ingaan, moeten we dit systeem eerst kalibreren om het juiste gewicht te meten. Wanneer de gebruiker het opstart, begint het systeem automatisch met kalibreren. En als de gebruiker het handmatig wil kalibreren, druk dan op de drukknop. We hebben een functie gemaakt leegte kalibreren () voor kalibratiedoeleinden, controleer de onderstaande code.
Voor kalibratie, wacht op LCD-indicatie voor het plaatsen van 100 gram over de weegcel, zoals weergegeven in de onderstaande afbeelding. Wanneer het LCD-scherm "zet 100 g" weergeeft, plaats dan het gewicht van 100 g over de weegcel en wacht. Na enkele seconden is het kalibratieproces voltooid. Na kalibratie mag de gebruiker elk gewicht (max. 40 kg) over de weegcel plaatsen en de waarde in grammen over het LCD-scherm krijgen.
In dit project hebben we Arduino gebruikt om het hele proces te besturen. De load cell detecteert het gewicht en levert een elektrische analoge spanning aan de HX711 Load Amplifier Module. HX711 is een 24-bits ADC, die de output van de loadcel versterkt en digitaal omzet. Vervolgens wordt deze versterkte waarde naar de Arduino gestuurd. Nu berekent Arduino de output van HX711 en zet die om in de gewichtswaarden in grammen en toont deze op het LCD-scherm. Een drukknop wordt gebruikt om het systeem te kalibreren. We hebben een Arduino-programma geschreven voor het hele proces, bekijk de code en demovideo aan het einde van deze tutorial.
Arduino weegschaalcode:
Het programmeergedeelte van dit project is een beetje ingewikkeld voor beginners. In dit project hebben we geen enkele bibliotheek gebruikt om de HX711-belastingssensor met Arduino te verbinden. We hebben zojuist de datasheet van HX711 en toepassingsnotities gevolgd. Hoewel er voor dit doel enkele bibliotheken aanwezig zijn, hoeft u alleen die bibliotheek op te nemen en kunt u het gewicht krijgen met behulp van één regel code.
Allereerst hebben we een header-bestand voor LCD toegevoegd en de pinnen daarvoor gedefinieerd. En ook voor drukknop. Vervolgens enkele variabelen gedeclareerd voor rekendoeleinden.
# omvatten
Hierna hebben we de onderstaande functie gemaakt om gegevens van de HX711-module te lezen en de uitvoer ervan te retourneren.
unsigned long readCount (void) {unsigned long Count; niet-ondertekende char i; pinMode (DT, OUTPUT); digitalWrite (DT, HIGH); digitalWrite (SCK, LOW); Aantal = 0; pinMode (DT, INPUT); while (digitalRead (DT)); voor (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); terugkeer (aantal); }
Hierna hebben we het LCD-scherm geïnitialiseerd en aanwijzingen gegeven voor invoer- en uitvoerpennen in ongeldige instellingen ().
void setup () {Serial.begin (9600); pinMode (SCK, OUTPUT); pinMode (sw, INPUT_PULLUP); lcd.begin (16, 2); lcd.print ("Gewicht"); lcd.setCursor (0,1); lcd.print ("Meting"); vertraging (1000); lcd.clear (); ijken(); }
Vervolgens hebben we in de void loop () -functie gegevens van de HX711-module gelezen en deze gegevens omgezet in gewicht (grammen) en naar het LCD-scherm gestuurd.
void loop () {count = readCount (); int w = (((count-sample) / val) -2 * ((count-sample) / val)); Serial.print ("gewicht:"); Serial.print ((int) w); Serial.println ("g"); lcd.setCursor (0,0); lcd.print ("Gewicht"); lcd.setCursor (0,1); lcd.print (w); lcd.print ("g"); if (digitalRead (sw) == 0) {val = 0; monster = 0; w = 0; count = 0; ijken(); }}
Hiervoor hebben we een kalibratiefunctie gemaakt waarin we het systeem hebben gekalibreerd door het gewicht van 100 gram over de weegcel te plaatsen.
leegte kalibreren () {lcd.clear (); lcd.print ("Kalibreren…"); lcd.setCursor (0,1); lcd.print ("Even geduld…"); voor (int i = 0; i <100; i ++) {count = readCount (); monster + = tellen; Serial.println (aantal); }……………….
Dus hier hebben we de basisinterface van loadcel en HX11-gewichtssensor met Arduino geleerd om de gewichten te meten. In onze teksthandleidingen zullen we enkele toepassingen maken op basis van gewichtsmeting, zoals slimme container, automatische poort enz.