- Componente necesare pentru construirea unei scale de greutate Arduino:
- Celula de încărcare și modulul senzorului de greutate HX711:
- Explicația circuitului:
- Explicație de lucru:
- Codul scalei de cântărire Arduino:
Astăzi vom construi o mașină wight Arduino, interfațând celula de încărcare și senzorul de greutate HX711 cu Arduino. Am văzut mașini de cântărit în multe magazine, unde mașina afișează greutatea doar plasând un articol pe platforma de cântărire. Deci, aici construim aceeași mașină de cântărit utilizând celule Arduino și Load, având o capacitate de măsurare de până la 40 kg. Această limită poate fi mărită în continuare prin utilizarea celulei de încărcare de capacitate mai mare.
Componenta principală necesară pentru a construi această cântărire Arduino este un senzor care poate converti greutatea într-un semnal electric echivalent. Acest senzor este numit celula de încărcare, așa că, în acest proiect, vom folosi această celulă de încărcare ca senzor de greutate Arduino. De asemenea, am folosit aceeași celulă de încărcare în alte câteva proiecte ca, cum ar fi mașina de cântărit cu amănuntul portabil Arduino, cântarul de zmeură pi, etc., le puteți verifica și dacă sunteți interesat.
Componente necesare pentru construirea unei scale de greutate Arduino:
- Arduino Uno
- Celula de încărcare (40 kg)
- HX711 Modul amplificator celulă de încărcare
- 16x2 LCD
- Conectarea firelor
- cablu USB
- Breadboard
- Șuruburi cu piuliță, cadru și bază
Celula de încărcare și modulul senzorului de greutate HX711:
Celula de sarcină este un traductor care transformă forța sau presiunea în ieșire electrică. Mărimea acestei ieșiri electrice este direct proporțională cu forța aplicată. Celulele de încărcare au un manometru, care se deformează atunci când se aplică presiune asupra acestuia. Și apoi tensometrul generează un semnal electric la deformare pe măsură ce rezistența sa efectivă se modifică la deformare. O celulă de încărcare constă de obicei din patru aparate de măsurare a tensiunii într-o configurație de pod Wheatstone. Celula de încărcare este disponibilă în diferite game, cum ar fi 5 kg, 10 kg, 100 kg și mai mult, aici am folosit celula de încărcare, care poate cântări până la 40 kg.
Acum, semnalele electrice generate de celula de încărcare sunt în câteva milivolți, deci trebuie să fie amplificate în continuare de un amplificator și, prin urmare, senzorul de cântărire HX711 intră în imagine. Modulul senzorului de cântărire HX711 are un cip HX711, care este un convertor 24 / A de înaltă precizie (convertor analogic la digital). HX711 are două canale de intrare analogice și putem obține câștiguri de până la 128 prin programarea acestor canale. Deci modulul HX711 amplifică puterea electrică redusă a celulelor de încărcare și apoi acest semnal amplificat și convertit digital este alimentat în Arduino pentru a obține greutatea.
Celula de încărcare este conectată cu amplificatorul de celule de încărcare HX711 utilizând patru fire. Aceste patru fire sunt roșu, negru, alb și verde / albastru. Poate exista o ușoară variație a culorilor firelor de la modul la modul. Sub detaliile conexiunii și diagrama:
- RED Wire este conectat la E +
- BLACK Wire este conectat la E-
- WHITE Wire este conectat la A-
- GREEN Wire este conectat la A +
Fixarea celulei de încărcare cu platformă și bază:
Acest pas este opțional și puteți pune greutățile direct pe celula de încărcare fără o platformă și pur și simplu o puteți fixa fără a o fixa cu nicio bază, dar este mai bine să atașați o platformă pentru a pune lucrurile mari pe ea și să o fixați pe o bază astfel încât să se oprească. Deci, aici trebuie să realizăm un cadru sau o platformă pentru a pune lucrurile pentru măsurarea greutății. O bază este, de asemenea, necesară pentru a fixa celula de încărcare peste aceasta utilizând piulițe și șuruburi. Aici am folosit carton tare pentru cadru pentru așezarea lucrurilor peste el și o placă de lemn ca bază. Acum faceți conexiunile așa cum se arată în schema circuitului și sunteți gata să plecați.
Explicația circuitului:
Conexiunile pentru acest proiect sunt ușoare, iar schema este prezentată mai jos. Pinii LCD 16x2 RS, EN, d4, d5, d6 și d7 sunt conectați cu pinii 8, 9, 10, 11, 12 și 13, respectiv, Arduino. Pinii DT și SCK ai modulului HX711 sunt conectați direct cu pinii Arduino A0 și A1. Conexiunile celulei de încărcare cu modulul HX711 sunt deja explicate mai devreme și sunt prezentate și în diagrama de mai jos.
Explicație de lucru:
Principiul de lucru al acestui proiect de măsurare a greutății Arduino este ușor. Înainte de a intra în detalii, mai întâi, trebuie să calibrăm acest sistem pentru măsurarea greutății corecte. Când utilizatorul îl va porni, sistemul va începe automat calibrarea. Și dacă utilizatorul dorește să-l calibreze manual, atunci apăsați butonul. Am creat o funcție void calibrate () pentru calibrare, verificați codul de mai jos.
Pentru calibrare, așteptați indicația LCD pentru a pune 100 de grame peste celula de încărcare, așa cum se arată în imaginea de mai jos. Când LCD va afișa „puneți 100 g”, apoi puneți greutatea de 100 g peste celula de încărcare și așteptați. După câteva secunde, procesul de calibrare va fi terminat. După calibrare, utilizatorul poate pune orice greutate (maxim 40 kg) peste celula de încărcare și poate obține valoarea peste LCD în grame.
În acest proiect, am folosit Arduino pentru a controla întregul proces. Celula de încărcare detectează greutatea și furnizează o tensiune analogică electrică la modulul amplificatorului de încărcare HX711. HX711 este un ADC pe 24 de biți, care amplifică și convertește digital ieșirea celulei de încărcare. Apoi, această valoare amplificată este alimentată către Arduino. Acum Arduino calculează ieșirea HX711 și o transformă în valorile greutății în grame și o afișează pe ecranul LCD. Pentru calibrarea sistemului se utilizează un buton. Am scris un program Arduino pentru întregul proces, verificați codul și demonstrați video la sfârșitul acestui tutorial.
Codul scalei de cântărire Arduino:
Partea de programare a acestui proiect este puțin complexă pentru începători. În acest proiect, nu am folosit nicio bibliotecă pentru interfața senzorului de încărcare HX711 cu Arduino. Tocmai am urmat fișa tehnică a HX711 și notele aplicației. Deși există unele biblioteci prezente în acest scop, în care trebuie doar să includeți acea bibliotecă și puteți obține greutatea folosind o linie de cod.
În primul rând, am inclus un fișier de antet pentru LCD și am definit pinii pentru același. Și și pentru buton. Apoi au declarat câteva variabile în scopul calculului.
#include
După aceasta, am creat funcția de mai jos pentru citirea datelor din modulul HX711 și returnarea ieșirii sale.
unsigned long readCount (nul) {Count nesemnat lung; nesemnat char i; pinMode (DT, OUTPUT); digitalWrite (DT, HIGH); digitalWrite (SCK, LOW); Număr = 0; pinMode (DT, INPUT); while (digitalRead (DT)); pentru (i = 0; i <24; i ++) {digitalWrite (SCK, HIGH); Număr = Număr << 1; digitalWrite (SCK, LOW); if (digitalRead (DT)) Count ++; } digitalWrite (SCK, HIGH); Count = Count ^ 0x800000; digitalWrite (SCK, LOW); retur (Număr); }
După aceasta, am inițializat ecranul LCD și dăm instrucțiuni pinilor de intrare și ieșire în configurarea nulă ().
void setup () {Serial.begin (9600); pinMode (SCK, OUTPUT); pinMode (sw, INPUT_PULLUP); lcd.inceput (16, 2); lcd.print ("Greutate"); lcd.setCursor (0,1); lcd.print („Măsurare”); întârziere (1000); lcd.clear (); calibra(); }
Următorul în funcția de buclă nulă () , am citit datele din modulul HX711 și am convertit aceste date în greutate (grame) și le-am trimis la LCD.
bucla void () {count = readCount (); int w = (((număr-eșantion) / val) -2 * ((număr-eșantion) / val)); Serial.print ("greutate:"); Serial.print ((int) w); Serial.println ("g"); lcd.setCursor (0,0); lcd.print ("Greutate"); lcd.setCursor (0,1); lcd.print (w); lcd.print ("g"); if (digitalRead (sw) == 0) {val = 0; eșantion = 0; w = 0; număr = 0; calibra(); }}
Înainte de aceasta, am creat o funcție de calibrare în care am calibrat sistemul plasând greutatea de 100gm peste celula de încărcare.
void calibrate () {lcd.clear (); lcd.print („Calibrare…”); lcd.setCursor (0,1); lcd.print („Vă rugăm să așteptați…”); for (int i = 0; i <100; i ++) {count = readCount (); eșantion + = număr; Serial.println (număr); }……………….
Așadar, aici am învățat interfațarea de bază a celulei de încărcare și a senzorului de greutate HX11 cu Arduino pentru a măsura greutățile. În tutorialele noastre text, vom crea unele aplicații bazate pe măsurarea greutății, cum ar fi containerul inteligent, poarta automată etc.