ARDUINO HX711 punnitusanturit ADC-moduulin käyttöopas
ARDUINO HX711 punnitusanturit ADC-moduuli

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

Yhteys

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.

Paino

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.

Kokoonpano

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:
Kokoonpano

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.
    Kokoonpano

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":
Asennus

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:
Kokoonpano

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.
Kokoonpano

Aseta esine punnituskennolle, todellisen painon pitäisi näkyä. Alla on painonäyttö, kun asetat 191 gramman esineen (käytetty kalibroinnin ensimmäisessä vaiheessa).
Kokoonpano

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

Viitteet

Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *