ARDUINO HX711 ເຊັນເຊີຊັ່ງນໍ້າໜັກ ADC Module ຄູ່ມືຜູ້ໃຊ້
ຄໍາຮ້ອງສະຫມັກ Example ກັບ Arduino Uno:
Load cell ສ່ວນໃຫຍ່ມີສີ່ສາຍ: ສີແດງ, ສີດໍາ, ສີຂຽວແລະສີຂາວ. ໃນກະດານ HX711 ທ່ານຈະພົບເຫັນ E+/E-, A+/A- ແລະ B+/Bconnections. ເຊື່ອມຕໍ່ load cell ກັບ HX711 sensor board ຕາມຕາຕະລາງຕໍ່ໄປນີ້:
HX711 Load Sensor Board | Load Cell Wire |
E+ | ສີແດງ |
E- | ດຳ |
A+ | ສີຂຽວ |
A- | ສີຂາວ |
B- | ບໍ່ໄດ້ໃຊ້ |
B+ | ບໍ່ໄດ້ໃຊ້ |
ເຊັນເຊີ HX711 | Arduino Uno |
GND | GND |
DT | D3 |
ສຄ | D2 |
VCC | 5V |
ໂມດູນ HX711 ເຮັດວຽກຢູ່ທີ່ 5V ແລະການສື່ສານແມ່ນເຮັດໄດ້ໂດຍໃຊ້ serial SDA ແລະ SCK pins.
ບ່ອນໃດທີ່ຈະນໍາໃຊ້ນ້ໍາຫນັກໃນ Load Cell?
ທ່ານສາມາດເບິ່ງລູກສອນຖືກສະແດງຢູ່ໃນ Load cell. ລູກສອນນີ້ສະແດງໃຫ້ເຫັນທິດທາງຂອງຜົນບັງຄັບໃຊ້ໃນຫ້ອງໂຫຼດ. ທ່ານສາມາດເຮັດໃຫ້ການຈັດສະແດງຢູ່ໃນຮູບໂດຍໃຊ້ແຖບໂລຫະ. ຕິດແຖບໂລຫະໃສ່ Load cell ໂດຍໃຊ້ bolts.
ການຂຽນໂປຼແກຼມ Arduino UNO ເພື່ອວັດແທກນ້ໍາຫນັກໃນ KG:
ເຊື່ອມຕໍ່ schematic ດັ່ງທີ່ສະແດງຢູ່ໃນຮູບ 1 ຂ້າງເທິງ.
ເພື່ອໃຫ້ໂມດູນເຊັນເຊີນີ້ເຮັດວຽກກັບກະດານ Arduino, ພວກເຮົາຕ້ອງການ HX711 Library ທີ່ສາມາດໂຫຼດໄດ້ຈາກ. https://github.com/bogde/HX711.
ກ່ອນທີ່ HX711 ສາມາດໃຊ້ເພື່ອວັດແທກນໍ້າໜັກຂອງວັດຖຸໄດ້ຢ່າງຖືກຕ້ອງ, ມັນຈໍາເປັນຕ້ອງປັບຕົວກ່ອນ. ຂັ້ນຕອນຂ້າງລຸ່ມນີ້ຈະສະແດງໃຫ້ທ່ານວິທີການປັບທຽບໄດ້.
1 ຂັ້ນຕອນ: Calibration Sketch
ອັບໂຫລດຮູບແຕ້ມລຸ່ມນີ້ໄປທີ່ Arduino Uno Board
/* Handson Technology www.handsontec.com
* ວັນທີ 29 ທັນວາ 2017
* Load Cell HX711 Module Interface ກັບ Arduino ເພື່ອວັດແທກນ້ໍາຫນັກໃນ Kgs
Arduino
ເຂັມ
2 -> HX711 CLK
3 -> DOUT
5V -> VCC
GND -> GND
ສ່ວນຫຼາຍ pin ໃດໆໃນ Arduino Uno ຈະເຂົ້າກັນໄດ້ກັບ DOUT/CLK.
ກະດານ HX711 ສາມາດພະລັງງານຈາກ 2.7V ຫາ 5V ດັ່ງນັ້ນພະລັງງານ Arduino 5V ຄວນຈະດີ.
*/
#include “HX711.h” // ທ່ານຕ້ອງມີຫ້ອງສະໝຸດນີ້ຢູ່ໃນໂຟນເດີຫ້ອງສະໝຸດ arduino ຂອງທ່ານ
#ກໍານົດ DOUT 3
#ກໍານົດ CLK 2
ຂະໜາດ HX711(DOUT, CLK);
// ການປ່ຽນແປງປັດໄຈການສອບທຽບນີ້ຕາມຫ້ອງການໂຫຼດຂອງທ່ານເມື່ອມັນພົບເຫັນທ່ານຈໍານວນຫຼາຍຕ້ອງການ
ມັນແຕກຕ່າງກັນເປັນພັນໆ
float calibration_factor = -96650; //-106600 ເຮັດວຽກສໍາລັບການຕິດຕັ້ງຂະຫນາດສູງສຸດ 40Kg ຂອງຂ້ອຍ
//================================================ =======================================
// ຕັ້ງຄ່າ
//================================================ =======================================
ການຕັ້ງຄ່າ void() {
Serial.begin(9600);
Serial.println(“HX711 Calibration”);
Serial.println(“ເອົານ້ຳໜັກທັງໝົດອອກຈາກຂະໜາດ”);
Serial.println(“ຫຼັງຈາກການອ່ານເລີ່ມຕົ້ນ, ເອົານ້ໍາຫນັກທີ່ຮູ້ຈັກໃນຂະຫນາດ”);
Serial.println(“ກົດ a,s,d,f ເພື່ອເພີ່ມປັດໄຈການປັບທຽບ 10,100,1000,10000
ຕາມລໍາດັບ”);
Serial.println(“ກົດ z,x,c,v ເພື່ອຫຼຸດປັດໄຈການປັບທຽບ 10,100,1000,10000
ຕາມລໍາດັບ”);
Serial.println(“ກົດ t ສໍາລັບ tare”);
scale.set_scale();
scale.tare(); // ປັບຂະໜາດເປັນ 0
long zero_factor = scale.read_average(); // ໄດ້ຮັບການອ່ານພື້ນຖານ
Serial.print(“ສູນປັດໄຈ: “); // ນີ້ສາມາດຖືກນໍາໃຊ້ເພື່ອເອົາຄວາມຕ້ອງການທີ່ຈະ tare ຂະຫນາດໄດ້.
ເປັນປະໂຫຍດໃນໂຄງການຂະຫນາດຖາວອນ.
Serial.println(zero_factor);
}
//================================================ =======================================
// LOOP
//================================================ =======================================
void loop() {
scale.set_scale(calibration_factor); // ປັບຕົວເຂົ້າກັບປັດໄຈການປັບຕົວນີ້
Serial.print(“ການອ່ານ: “);
Serial.print(scale.get_units(), 3);
Serial.print(“kg”); // ປ່ຽນອັນນີ້ເປັນກິໂລ ແລະປັບຄ່າການປັບຄ່າຄືນໃໝ່ຫາກເຈົ້າ
ປະຕິບັດຕາມໜ່ວຍງານ SI ຄືກັບຄົນມີສະຕິ
Serial.print(” calibration_factor: “);
Serial.print(calibration_factor);
Serial.println ();
ຖ້າ(Serial.available())
{
char temp = Serial.read();
ຖ້າ(ອຸນຫະພູມ == '+' || temp == 'a')
calibration_factor += 10;
ອື່ນຖ້າ (ອຸນຫະພູມ == '-' || temp == 'z')
calibration_factor -= 10;
ອື່ນຖ້າ (ອຸນຫະພູມ == 's')
calibration_factor += 100;
ອື່ນຖ້າ (ອຸນຫະພູມ == 'x')
calibration_factor -= 100;
ອື່ນຖ້າ (ອຸນຫະພູມ == 'd')
calibration_factor += 1000;
ອື່ນຖ້າ (ອຸນຫະພູມ == 'c')
calibration_factor -= 1000;
ອື່ນຖ້າ (ອຸນຫະພູມ == 'f')
calibration_factor += 10000;
ອື່ນຖ້າ (ອຸນຫະພູມ == 'v')
calibration_factor -= 10000;
ອື່ນຖ້າ (ອຸນຫະພູມ == 't')
scale.tare(); // ປັບຂະໜາດເປັນສູນ
}
}
//================================================ ======================================
ເອົາການໂຫຼດໃດໆອອກຈາກເຊັນເຊີການໂຫຼດ. ເປີດ Serial Monitor. ປ່ອງຢ້ຽມຂ້າງລຸ່ມນີ້ຄວນຈະເປີດສະແດງໃຫ້ເຫັນໂມດູນໄດ້ເຊື່ອມຕໍ່ສົບຜົນສໍາເລັດກັບ Arduino Uno.
ວາງວັດຖຸນ້ຳໜັກທີ່ຮູ້ຈັກໃສ່ໃນຫ້ອງໂຫຼດ. ໃນກໍລະນີນີ້ຜູ້ຂຽນໄດ້ນໍາໃຊ້ນ້ໍາຫນັກທີ່ຮູ້ຈັກ 191g ກັບ 10KG Load Cell. Serial Monitor ຈະສະແດງຕົວເລກທີ່ມີນ້ໍາຫນັກຕາມຮູບຂ້າງລຸ່ມນີ້:
ພວກເຮົາຈໍາເປັນຕ້ອງເຮັດການປັບທຽບທີ່ນີ້:
- ກະແຈໃນຕົວອັກສອນ "a, s, d, f" ເຂົ້າໄປໃນພື້ນທີ່ຄໍາສັ່ງຂອງຕິດຕາມກວດກາ serial ແລະກົດປຸ່ມ "ສົ່ງ" ເພື່ອເພີ່ມປັດໄຈການປັບຕົວດ້ວຍ 10, 100, 1000, 10000 ຕາມລໍາດັບ.
- ກະແຈໃນຕົວອັກສອນ ” z, x, c, v” ເຂົ້າໄປໃນພື້ນທີ່ຄໍາສັ່ງຂອງຕິດຕາມກວດກາ serial ແລະກົດປຸ່ມ “ສົ່ງ” ເພື່ອຫຼຸດລົງປັດໄຈການປັບຕົວດ້ວຍ 10, 100, 1000, 10000 ຕາມລໍາດັບ.
ສືບຕໍ່ປັບຈົນກ່ວາການອ່ານສະແດງໃຫ້ເຫັນນ້ໍາຫນັກຕົວຈິງທີ່ວາງໄວ້ໃນຫ້ອງໂຫຼດ. ບັນທຶກຄ່າ “calibration_factor”, ໃນກໍລະນີນີ້ “-239250” ໃນນໍ້າໜັກຂອງຜູ້ຂຽນ 191g ອ້າງອີງກັບ 10KG Load Cell. ພວກເຮົາຈະຕ້ອງການຄ່ານີ້ເພື່ອສຽບເຂົ້າໄປໃນຮູບແຕ້ມທີສອງຂອງພວກເຮົາສໍາລັບການວັດແທກຕົວຈິງ.
ຂັ້ນຕອນທີ 2: ລະຫັດສຸດທ້າຍສໍາລັບການວັດແທກນ້ໍາຫນັກຕົວຈິງ
ກ່ອນທີ່ຈະອັບໂຫລດຮູບແຕ້ມ, ພວກເຮົາຈໍາເປັນຕ້ອງໄດ້ສຽບ "ປັດໄຈການປັບທຽບ" ທີ່ໄດ້ຮັບໃນຂັ້ນຕອນທີ 1:
ອັບໂຫລດຮູບແຕ້ມລຸ່ມນີ້ໃສ່ Arduino Uno Board, ຫຼັງຈາກດັດແກ້ປັດໄຈຂະຫນາດ:
/* Handson Technology www.handsontec.com
* ວັນທີ 29 ທັນວາ 2017
* Load Cell HX711 Module Interface ກັບ Arduino ເພື່ອວັດແທກນ້ໍາຫນັກໃນ Kgs
Arduino
ເຂັມ
2 -> HX711 CLK
3 -> DOUT
5V -> VCC
GND -> GND
ສ່ວນຫຼາຍ pin ໃດໆໃນ Arduino Uno ຈະເຂົ້າກັນໄດ້ກັບ DOUT/CLK.
ກະດານ HX711 ສາມາດພະລັງງານຈາກ 2.7V ຫາ 5V ດັ່ງນັ້ນພະລັງງານ Arduino 5V ຄວນຈະດີ.
*/
#include “HX711.h” // ທ່ານຕ້ອງມີຫ້ອງສະໝຸດນີ້ຢູ່ໃນໂຟນເດີຫ້ອງສະໝຸດ arduino ຂອງທ່ານ
#ກໍານົດ DOUT 3
#ກໍານົດ CLK 2
ຂະໜາດ HX711(DOUT, CLK);
// ປ່ຽນປັດໄຈການສອບທຽບນີ້ຕາມຫ້ອງການໂຫຼດຂອງທ່ານເມື່ອມັນພົບເຫັນທ່ານຈໍານວນຫຼາຍຈໍາເປັນຕ້ອງໄດ້ແຕກຕ່າງກັນເປັນພັນ.
float calibration_factor = -96650; //-106600 ເຮັດວຽກສໍາລັບການຕິດຕັ້ງຂະຫນາດສູງສຸດ 40Kg ຂອງຂ້ອຍ
//================================================ ======================================================
// ຕັ້ງຄ່າ
//================================================ ======================================================
ການຕັ້ງຄ່າ void() {
Serial.begin(9600);
Serial.println(“ກົດ T ຫາ tare”);
scale.set_scale(-239250); // ຕົວຊີ້ວັດ Calibration ໄດ້ຈາກການແຕ້ມຮູບຄັ້ງທໍາອິດ
scale.tare(); // ປັບຂະໜາດເປັນ 0
}
//================================================ ======================================================
// LOOP
//================================================ ======================================================
void loop() {
Serial.print(“ນ້ຳໜັກ: “);
Serial.print(scale.get_units(), 3); // ເຖິງ 3 ຈຸດທົດສະນິຍົມ
Serial.println(“kg”); // ປ່ຽນອັນນີ້ເປັນກິໂລ ແລະປັບຄ່າການປັບຕົວໃໝ່ຫາກເຈົ້າຕິດຕາມ lbs
ຖ້າ(Serial.available())
{
char temp = Serial.read();
ຖ້າ(temp == 't' || temp == 'T')
scale.tare(); // ປັບຂະໜາດເປັນສູນ
}
}
//================================================ ======================================================
ຫຼັງຈາກອັບໂຫຼດຮູບແຕ້ມສຳເລັດແລ້ວ, ເປີດ Serial Monitor. ປ່ອງຢ້ຽມຂ້າງລຸ່ມນີ້ຄວນຈະປາກົດສະແດງໃຫ້ເຫັນມູນຄ່າການວັດແທກທີ່ແທ້ຈິງ:
ທ່ານສາມາດປັບການອ່ານເປັນ 0.000kg (ໂດຍບໍ່ມີການໂຫຼດ") ໂດຍການກົດປຸ່ມ "t" ຫຼື "T" ເຂົ້າໄປໃນຊ່ອງຄໍາສັ່ງແລະກົດປຸ່ມ "ສົ່ງ". ຂ້າງລຸ່ມນີ້ສະແດງຄ່າການວັດແທກກາຍເປັນ 0.000kg.
ວາງວັດຖຸໃສ່ຫ້ອງໂຫຼດ, ນໍ້າໜັກຕົວຈິງຄວນສະແດງ. ຂ້າງລຸ່ມນີ້ແມ່ນການສະແດງນ້ໍາຫນັກເມື່ອວາງວັດຖຸ 191 ກຣາມ (ໃຊ້ໃນຂັ້ນຕອນທີ 1 ສໍາລັບການປັບທຽບ).
ໂຫ້ຍ! ທ່ານໄດ້ສ້າງເຄື່ອງຊັ່ງນໍ້າຫນັກທີ່ມີຄວາມຖືກຕ້ອງຂອງສາມຈຸດທົດສະນິຍົມ!
ເອກະສານ / ຊັບພະຍາກອນ
![]() |
ເຊັນເຊີຊັ່ງນໍ້າໜັກ ARDUINO HX711 ໂມດູນ ADC [pdf] ຄູ່ມືຜູ້ໃຊ້ HX711 ເຊັນເຊີຊັ່ງນໍ້າໜັກ ADC Module, HX711, ເຊັນເຊີຊັ່ງນໍ້າໜັກ ADC Module, Sensors ADC Module, ADC Module, Module |