ឧបករណ៍ចាប់សញ្ញាថ្លឹង ARDUINO HX711 សៀវភៅណែនាំអ្នកប្រើប្រាស់ម៉ូឌុល ADC

កម្មវិធី Example ជាមួយ Arduino Uno៖
ក្រឡាផ្ទុកភាគច្រើនមានខ្សែចំនួនបួន៖ ក្រហម ខ្មៅ បៃតង និងស។ នៅលើក្តារ HX711 អ្នកនឹងឃើញ E+/E-, A+/A- និង B+/Bconnections។ ភ្ជាប់ក្រឡាផ្ទុកទៅបន្ទះឧបករណ៍ចាប់សញ្ញា HX711 យោងតាមតារាងខាងក្រោម៖
| HX711 Load Sensor Board | ផ្ទុកខ្សែក្រឡា |
| E+ | ក្រហម |
| E- | ខ្មៅ |
| A+ | បៃតង |
| A- | ស |
| B- | មិនបានប្រើ |
| B+ | មិនបានប្រើ |

| ឧបករណ៍ចាប់សញ្ញា HX711 | Arduino Uno |
| GND | GND |
| DT | D3 |
| អេសខេ | D2 |
| វី.ស៊ី.ស៊ី | 5V |
ម៉ូឌុល HX711 ដំណើរការនៅ 5V ហើយការទំនាក់ទំនងត្រូវបានធ្វើដោយប្រើសៀរៀល SDA និង SCK pins។
កន្លែងដែលត្រូវអនុវត្តទម្ងន់លើក្រឡាផ្ទុក?
អ្នកអាចមើលឃើញព្រួញមួយត្រូវបានបង្ហាញនៅលើក្រឡាផ្ទុក។ ព្រួញនេះបង្ហាញពីទិសដៅនៃកម្លាំងនៅលើក្រឡាផ្ទុក។ អ្នកអាចធ្វើការរៀបចំដែលបង្ហាញក្នុងរូបដោយប្រើបន្ទះដែក។ ភ្ជាប់បន្ទះដែកនៅលើក្រឡាផ្ទុកដោយប្រើប៊ូឡុង។

សរសេរកម្មវិធី Arduino UNO ដើម្បីវាស់ទម្ងន់ជា KG៖
ភ្ជាប់គ្រោងការណ៍ដូចបង្ហាញក្នុងរូបភាពទី 1 ខាងលើ។
ដើម្បីឱ្យម៉ូឌុលឧបករណ៍ចាប់សញ្ញានេះដំណើរការជាមួយបន្ទះ Arduino យើងត្រូវការបណ្ណាល័យ HX711 ដែលអាចទាញយកបន្ទុកពី https://github.com/bogde/HX711.
មុនពេល HX711 អាចត្រូវបានប្រើដើម្បីវាស់ទម្ងន់យ៉ាងត្រឹមត្រូវ វាចាំបាច់ត្រូវធ្វើការក្រិតតាមខ្នាតជាមុនសិន។ ជំហានខាងក្រោមនឹងបង្ហាញអ្នកពីរបៀបធ្វើការក្រិតតាមខ្នាត។
ជំហានទី 1៖ ការក្រិតតាមខ្នាត
បង្ហោះរូបភាពខាងក្រោមទៅកាន់ Arduino Uno Board
/* បច្ចេកវិទ្យា Handson www.handsontec.com
* ថ្ងៃទី ២៩ ខែ ធ្នូ ឆ្នាំ ២០១៧
* ផ្ទុកចំណុចប្រទាក់ម៉ូឌុល HX711 ជាមួយ Arduino ដើម្បីវាស់ទម្ងន់ជា Kgs
អាឌូណូ
ម្ជុល
2 -> HX711 CLK
3 -> DOUT
5V -> VCC
GND -> GND
ម្ជុលភាគច្រើននៅលើ Arduino Uno នឹងត្រូវគ្នាជាមួយ DOUT/CLK ។
បន្ទះ HX711 អាចត្រូវបានផ្តល់ថាមពលពី 2.7V ទៅ 5V ដូច្នេះថាមពល Arduino 5V គួរតែល្អ។
*/
#include “HX711.h” // អ្នកត្រូវតែមានបណ្ណាល័យនេះនៅក្នុងថតបណ្ណាល័យ arduino របស់អ្នក។
#កំណត់ DOUT ៣
#កំណត់ CLK ២
មាត្រដ្ឋាន HX711 (DOUT, CLK);
// ផ្លាស់ប្តូរកត្តាក្រិតតាមខ្នាតនេះតាមក្រឡាផ្ទុករបស់អ្នក នៅពេលដែលវាត្រូវបានរកឃើញថាអ្នកត្រូវការច្រើន។
ផ្លាស់ប្តូរវារាប់ពាន់
float calibration_factor = -96650; //-106600 បានធ្វើការសម្រាប់ការដំឡើងមាត្រដ្ឋានអតិបរមា 40Kg របស់ខ្ញុំ
//================================================================ =======================================
// រៀបចំ
//================================================================ =======================================
ការកំណត់ទុកជាមោឃៈ () {
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(); // កំណត់មាត្រដ្ឋានឡើងវិញទៅ ០
long zero_factor = scale.read_average(); // ទទួលបានការអានមូលដ្ឋាន
Serial.print(“កត្តាសូន្យ៖ “); // នេះអាចត្រូវបានប្រើដើម្បីដកតម្រូវការដើម្បីកាត់មាត្រដ្ឋាន។
មានប្រយោជន៍ក្នុងគម្រោងខ្នាតអចិន្ត្រៃយ៍។
Serial.println(zero_factor);
}
//================================================================ =======================================
// រង្វិលជុំ
//================================================================ =======================================
void loop() {
scale.set_scale(calibration_factor); // លៃតម្រូវទៅនឹងកត្តាក្រិតនេះ។
Serial.print(“ការអាន៖ “);
Serial.print(scale.get_units(), 3);
Serial.print("គីឡូក្រាម"); // ប្តូរវាទៅជាគីឡូក្រាម ហើយកែតម្រូវកត្តាក្រិតឡើងវិញ ប្រសិនបើអ្នក
ធ្វើតាមអង្គភាព SI ដូចជាមនុស្សមានប្រាជ្ញា
Serial.print("calibration_factor: ");
Serial.print(calibration_factor);
សៀរៀល .println ();
if(Serial.available())
{
char temp = Serial.read();
ប្រសិនបើ (សីតុណ្ហភាព == '+' || សីតុណ្ហភាព == '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(); // កំណត់មាត្រដ្ឋានឡើងវិញទៅសូន្យ
}
}
//================================================================ ======================================
ដកបន្ទុកណាមួយចេញពីឧបករណ៏ផ្ទុក។ បើកម៉ូនីទ័រស៊េរី។ បង្អួចខាងក្រោមគួរតែបើកដែលបង្ហាញថាម៉ូឌុលបានភ្ជាប់ដោយជោគជ័យទៅ Arduino Uno ។

ដាក់វត្ថុទម្ងន់ដែលគេស្គាល់នៅលើក្រឡាផ្ទុក។ ក្នុងករណីនេះអ្នកនិពន្ធបានប្រើទម្ងន់ដែលគេស្គាល់ 191 ក្រាមជាមួយនឹង 10KG Load Cell ។ Serial Monitor នឹងបង្ហាញរូបថ្លឹងមួយចំនួនដូចបង្ហាញខាងក្រោម៖

យើងត្រូវធ្វើការក្រិតតាមខ្នាតនៅទីនេះ៖
- វាយអក្សរ “a, s, d, f” ទៅក្នុងចន្លោះបញ្ជារបស់ម៉ូនីទ័រសៀរៀល ហើយចុចប៊ូតុង “ផ្ញើ” ដើម្បីបង្កើនកត្តាក្រិតតាមខ្នាតដោយ 10, 100, 1000, 10000 រៀងគ្នា។
- គ្រាប់ចុចអក្សរ ” z, x, c, v” ទៅក្នុងចន្លោះពាក្យបញ្ជារបស់ម៉ូនីទ័រសៀរៀល ហើយចុចប៊ូតុង “ផ្ញើ” ដើម្បីបន្ថយកត្តាក្រិតតាមខ្នាតដោយ 10, 100, 1000, 10000 រៀងគ្នា។

បន្តកែតម្រូវរហូតដល់ការអានបង្ហាញទម្ងន់ជាក់ស្តែងដែលដាក់នៅលើក្រឡាផ្ទុក។ កត់ត្រាតម្លៃ “calibration_factor” ក្នុងករណីនេះ “-239250” ក្នុងទម្ងន់របស់អ្នកនិពន្ធ 191g យោងជាមួយនឹង 10KG Load Cell ។ យើងនឹងត្រូវការតម្លៃនេះដើម្បីដោតចូលទៅក្នុងគំនូរព្រាងទីពីររបស់យើងសម្រាប់ការវាស់វែងពិតប្រាកដ។
ជំហានទី 2៖ លេខកូដចុងក្រោយសម្រាប់ការវាស់វែងទម្ងន់ពិត
មុននឹងបង្ហោះរូបគំនូរព្រាង យើងត្រូវដោត “កត្តាក្រិតតាមខ្នាត” ដែលទទួលបានក្នុងជំហានទី១៖

បង្ហោះរូបព្រាងខាងក្រោមទៅកាន់ Arduino Uno Board បន្ទាប់ពីបានកែប្រែកត្តាមាត្រដ្ឋាន៖
/* បច្ចេកវិទ្យា Handson www.handsontec.com
* ថ្ងៃទី ២៩ ខែ ធ្នូ ឆ្នាំ ២០១៧
* ផ្ទុកចំណុចប្រទាក់ម៉ូឌុល HX711 ជាមួយ Arduino ដើម្បីវាស់ទម្ងន់ជា Kgs
អាឌូណូ
ម្ជុល
2 -> HX711 CLK
3 -> DOUT
5V -> VCC
GND -> GND
ម្ជុលភាគច្រើននៅលើ Arduino Uno នឹងត្រូវគ្នាជាមួយ DOUT/CLK ។
បន្ទះ HX711 អាចត្រូវបានផ្តល់ថាមពលពី 2.7V ទៅ 5V ដូច្នេះថាមពល Arduino 5V គួរតែល្អ។
*/
#include “HX711.h” // អ្នកត្រូវតែមានបណ្ណាល័យនេះនៅក្នុងថតបណ្ណាល័យ arduino របស់អ្នក។
#កំណត់ DOUT ៣
#កំណត់ CLK ២
មាត្រដ្ឋាន HX711 (DOUT, CLK);
// ផ្លាស់ប្តូរកត្តាក្រិតតាមខ្នាតនេះ តាមក្រឡាផ្ទុករបស់អ្នក នៅពេលដែលវាត្រូវបានរកឃើញ អ្នកត្រូវផ្លាស់ប្តូរវារាប់ពាន់
float calibration_factor = -96650; //-106600 បានធ្វើការសម្រាប់ការដំឡើងមាត្រដ្ឋានអតិបរមា 40Kg របស់ខ្ញុំ
//================================================================ ====================================================
// រៀបចំ
//================================================================ ====================================================
ការកំណត់ទុកជាមោឃៈ () {
Serial.begin(9600);
Serial.println(“ចុច T ដល់ tare”);
scale.set_scale(-239250); // កត្តា Calibration ដែលទទួលបានពីគំនូរព្រាងដំបូង
scale.tare(); // កំណត់មាត្រដ្ឋានឡើងវិញទៅ ០
}
//================================================================ ====================================================
// រង្វិលជុំ
//================================================================ ====================================================
void loop() {
Serial.print(“ទម្ងន់៖ “);
Serial.print(scale.get_units(), 3); // រហូតដល់ 3 ពិន្ទុទសភាគ
Serial.println("គីឡូក្រាម"); // ប្តូរវាទៅជាគីឡូក្រាម ហើយកែសម្រួលកត្តាក្រិតឡើងវិញ ប្រសិនបើអ្នកធ្វើតាម lbs
if(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, HX711, ឧបករណ៍ចាប់សញ្ញាទម្ងន់ម៉ូឌុល ADC, ឧបករណ៍ចាប់សញ្ញា ADC ម៉ូឌុល, ម៉ូឌុល ADC, ម៉ូឌុល |
