ARDUINO HX711 punnitusanturit ADC-moduulin käyttöopas
Sovellus esimample Arduino Unon kanssa:
Useimmissa kuormituskennoissa on neljä johtoa: punainen, musta, vihreä ja valkoinen. HX711-kortilta löydät E+/E-, A+/A- ja B+/B-liitännät. Liitä kuormituskenno HX711-anturikorttiin seuraavan taulukon mukaisesti:
HX711-kuormitusanturikortti | Load Cell Wire |
E+ | Punainen |
E- | Musta |
A+ | Vihreä |
A- | Valkoinen |
B- | Käyttämätön |
B+ | Käyttämätön |
HX711 anturi | Arduino Uno |
GND | GND |
DT | D3 |
SCK | D2 |
VCC | 5V |
HX711-moduuli toimii 5 V jännitteellä ja tiedonsiirto tapahtuu SDA- ja SCK-nastoilla.
Mihin kuormituskennolle painotetaan?
Näet nuolen näkyvän Load cell -kohdassa. Tämä nuoli osoittaa punnitusanturiin kohdistuvan voiman suunnan. Voit tehdä kuvan mukaisen järjestelyn käyttämällä metalliliuskoja. Kiinnitä metallinauha punnitusanturiin pulteilla.
Arduino UNO:n ohjelmointi painon mittaamiseen kg:
Liitä kaavio yllä olevan kuvan 1 mukaisesti.
Jotta tämä anturimoduuli toimisi Arduino-levyjen kanssa, tarvitsemme HX711-kirjaston, joka voidaan ladata https://github.com/bogde/HX711.
Ennen kuin HX711:tä voidaan käyttää mittaamaan kohteen punnitus tarkasti, se on ensin kalibroitava. Alla oleva vaihe näyttää, kuinka kalibrointi tehdään.
1 Vaihe: Kalibrointipiirros
Lataa alla oleva luonnos Arduino Uno Boardille
/* Handson Technology www.handsontec.com
* 29. joulukuuta 2017
* Load Cell HX711 -moduuliliitäntä Arduinon kanssa painon mittaamiseksi kg
Arduino
pin
2 -> HX711 CLK
3 -> DOUT
5V -> VCC
GND -> GND
Useimmat Arduino Unon nastat ovat yhteensopivia DOUT/CLK:n kanssa.
HX711-korttia voidaan syöttää 2.7 V:sta 5 V:iin, joten Arduino 5 V:n tehon pitäisi olla kunnossa.
*/
#include “HX711.h” //Tämä kirjasto on oltava arduino-kirjastokansiossasi
#define DOUT 3
#define CLK 2
HX711-asteikko (DOUT, CLK);
//Muuta tätä kalibrointikerrointa punnituskennon mukaan, kun se on havaittu, että moni tarvitsee
vaihdella sitä tuhansissa
kelluva kalibrointikerroin = -96650; //-106600 toimi minun 40kg maksimivaaka-asetuksissani
//================================================== ========================================
// PERUSTAA
//================================================== ========================================
void setup() {
Serial.begin(9600);
Serial.println("HX711-kalibrointi");
Serial.println("Poista kaikki paino vaa'alta");
Serial.println("Kun lukemat alkavat, aseta tunnettu paino vaa'alle");
Serial.println("Paina a,s,d,f suurentaaksesi kalibrointikerrointa 10,100,1000,10000
vastaavasti");
Serial.println("Paina z,x,c,v pienentääksesi kalibrointikerrointa 10,100,1000,10000
vastaavasti");
Serial.println("Taaraa painamalla t");
scale.set_scale();
scale.tare(); //Palauta asteikko nollaan
long zero_factor = mittakaava.read_average(); //Hae peruslukema
Serial.print("Zero factor:"); //Tätä voidaan käyttää poistamaan vaa'an taarauksen tarve.
Hyödyllinen pysyvän mittakaavan projekteissa.
Serial.println(nolla_tekijä);
}
//================================================== ========================================
// LOOP
//================================================== ========================================
void loop() {
scale.set_scale(calibration_factor); //Säädä tähän kalibrointitekijään
Serial.print("Lukeminen:");
Serial.print(scale.get_units(), 3);
Serial.print(” kg”); //Muuta tämä kiloksi ja säädä kalibrointikerroin uudelleen, jos haluat
seuraa SI-yksiköitä kuin järkevä ihminen
Serial.print(" kalibrointikerroin: ");
Serial.print(kalibrointikerroin);
Serial.println ();
jos(Serial.available())
{
char temp = Serial.read();
if(temp == '+' || lämpötila == 'a')
kalibrointikerroin += 10;
else if(temp == '-' || temp == 'z')
kalibrointikerroin -= 10;
else if(temp == 's')
kalibrointikerroin += 100;
else if(temp == 'x')
kalibrointikerroin -= 100;
else if(temp == 'd')
kalibrointikerroin += 1000;
else if(temp == 'c')
kalibrointikerroin -= 1000;
else if(temp == 'f')
kalibrointikerroin += 10000;
else if(temp == 'v')
kalibrointikerroin -= 10000;
else if(temp == 't')
scale.tare(); //Palauta asteikko nollaan
}
}
//================================================== =======================================
Poista mahdollinen kuorma kuormitusanturista. Avaa Serial Monitor. Alla olevan ikkunan pitäisi avautua ja näyttää, että moduuli on yhdistetty onnistuneesti Arduino Unoon.
Aseta tunnettu paino esine punnitusanturiin. Tässä tapauksessa kirjoittaja käytti tunnettua 191 gramman painoa 10 kg:n kuormituskennon kanssa. Sarjamonitori näyttää painolukeman alla olevan kuvan mukaisesti:
Meidän täytyy tehdä kalibrointi täällä:
- Näppäile kirjain ”a, s, d, f” sarjamonitorin komentotilaan ja paina ”Lähetä”-painiketta suurentaaksesi kalibrointikerrointa vastaavasti 10, 100, 1000, 10000.
- Näppäile kirjain ”z, x, c, v” sarjamonitorin komentotilaan ja paina ”Lähetä”-painiketta pienentääksesi kalibrointikerrointa vastaavasti 10, 100, 1000, 10000.
Jatka säätämistä, kunnes lukema osoittaa punnituskennon todellisen painon. Kirjaa muistiin “calibration_factor”-arvo, tässä tapauksessa “-239250” tekijän 191 g:n painossa 10 kg:n kuormituskennon kanssa. Tarvitsemme tämän arvon liittääksemme toiseen luonnostamme todellista mittausta varten.
2. vaihe: todellisen painon mittauksen lopullinen koodi
Ennen kuin lähetät luonnoksen, meidän on liitettävä ensimmäisessä vaiheessa saatu "kalibrointikerroin":
Lataa alla oleva luonnos Arduino Uno Boardiin skaalaustekijän muokkauksen jälkeen:
/* Handson Technology www.handsontec.com
* 29. joulukuuta 2017
* Load Cell HX711 -moduuliliitäntä Arduinon kanssa painon mittaamiseksi kg
Arduino
pin
2 -> HX711 CLK
3 -> DOUT
5V -> VCC
GND -> GND
Useimmat Arduino Unon nastat ovat yhteensopivia DOUT/CLK:n kanssa.
HX711-korttia voidaan syöttää 2.7 V:sta 5 V:iin, joten Arduino 5 V:n tehon pitäisi olla kunnossa.
*/
#include “HX711.h” //Tämä kirjasto on oltava arduino-kirjastokansiossasi
#define DOUT 3
#define CLK 2
HX711-asteikko (DOUT, CLK);
//Muuta tätä kalibrointikerrointa punnituskennon mukaan, kun se löytyy, monien on vaihdettava sitä tuhansissa
kelluva kalibrointikerroin = -96650; //-106600 toimi minun 40kg maksimivaaka-asetuksissani
//================================================== ===============================================
// PERUSTAA
//================================================== ===============================================
void setup() {
Serial.begin(9600);
Serial.println("Taarata painamalla T");
scale.set_scale(-239250); //Kalibrointikerroin saatu ensimmäisestä luonnoksesta
scale.tare(); //Palauta asteikko nollaan
}
//================================================== ===============================================
// LOOP
//================================================== ===============================================
void loop() {
Serial.print("Paino:");
Serial.print(scale.get_units(), 3); //3 desimaalin tarkkuudella
Serial.println(” kg”); //Muuta tämä arvoon kg ja säädä kalibrointikerroin uudelleen, jos noudatat lbs
jos(Serial.available())
{
char temp = Serial.read();
if(temp == 't' || lämpötila == 'T')
scale.tare(); //Palauta asteikko nollaan
}
}
//================================================== ===============================================
Kun olet ladannut luonnoksen onnistuneesti, avaa Serial Monitor. Alla olevan ikkunan pitäisi näkyä, jossa näkyy todellinen mittausarvo:
Voit nollata lukeman 0.000 kg:aan (ilman kuormaa) näppäilemällä "t" tai "T" komentotilaan ja painamalla "Lähetä" -painiketta. Alla oleva näyttö, joka näyttää mittausarvon, on 0.000 kg.
Aseta esine punnituskennolle, todellisen painon pitäisi näkyä. Alla on painonäyttö, kun asetat 191 gramman esineen (käytetty kalibroinnin ensimmäisessä vaiheessa).
Hurraa! olet rakentanut vaa'an kolmen desimaalin tarkkuudella!
Asiakirjat / Resurssit
![]() |
ARDUINO HX711 punnitusanturit ADC-moduuli [pdfKäyttöopas HX711 punnitusanturit ADC-moduuli, HX711, punnitusanturit ADC-moduuli, anturit ADC-moduuli, ADC-moduuli, moduuli |