Load Cell และ HX711 กับ Arduino

โหลดเซลล์ (Load Cell) คือ อุปกรณ์ที่ใช้ในการตรวจวัดน้ำหนัก โดยใช้การยืดหรือหดตัวของสเตรนเกจ (Strain Gauge) ในการแปลงแรงทางกลเป็นสัญญาณทางไฟฟ้า ซึ่งโดยปกติสเตรนเกจจะถูกต่ออยู่ด้วยกันในลักษณะของวงจร Wheatstone Bridge

 

   รูปวงจร Wheatstone Bridge ชนิด Quarter Bridge สำหรับ Strain Gauge ตัวเดียว

 

จากวงจร Wheatstone Bridge จะเห็นได้ว่าผู้ใช้จำเป็นต้องมีการกระตุ้นวงจร (Excitation+ และ Excitation-) จากนั้นวงจรจะส่งเอาท์พุตออกมาในรูปของ Analog Voltage (Signal+ และ Signal-) เนื่องจากเอาท์พุตที่ได้มีค่าน้อยมากอยู่ในระดับมิลลิโวลท์ จึงจำเป็นต้องมีอุปกรณ์ขยายสัญญาณ (Amplifier) ซึ่งในที่นี้ HX711 จะทำหน้าที่กระตุ้นและขยายสัญญาณของเอาท์พุตให้ Arduino สามารถเข้าใจได้

 

ขั้นตอนการใช้งาน Load Cell, HX711 และ Arduino UNO

ขั้นตอนที่ 1 เตรียมอุปกรณ์

1.ชุด Load Cell

2.Arduino UNO และ สาย USB สำหรับอัพโหลดโปรแกรม

3.Arduino IDE สามารถดาวน์โหลดและติดตั้งได้ที่ https://www.arduino.cc/en/main/software

 

 

 

4.HX711

 

 

5. HX711_ADC Library สามารถดาวน์โหลดได้ที่  https://github.com/olkal/HX711_ADC
หลังจากลงโปรแกรม Arduino IDE เสร็จสิ้น ให้นำโฟลเดอร์ HX711_ADC ที่ได้จากการแตกไฟล์ไปใส่ไว้ในโฟลเดอร์ C:\Program Files (x86)\Arduino\libraries\

6.วัตถุที่ทราบค่าน้ำหนักแน่นอน เช่น ตุ้มน้ำหนักมาตรฐาน

7.สายไฟ

ขั้นตอนที่ 2 เชื่อมต่ออุปกรณ์

 

Load Cell
สามารถตรวจสอบสีของสายได้ที่ http://www.kmutech.com/2019/04/22/load-cell-wiring-color-guide/

 

HX711
จะมี 2 ฝั่งหลัก ๆ คือ ฝั่งที่ต่อกับ Load Cell และ ฝั่งที่ต่อกับ Arduino UNO

ฝั่งที่ต่อกับ Load Cell จะมี 6 pins ดังนี้

Pin ต่อกับ Load Cell
E+ EXC+
E- EXC-
A+ SIG+
A- SIG-
B+ ว่าง
B- ว่าง

เนื่องจาก HX711 สามารถเชื่อมต่อกับ Load Cell ได้สูงสุด 2 ชุด (Channel A และ B) แต่ในที่นี้มี Load Cell เพียงตัวเดียวจึงเลือกใช้เพียงแค่ A+, A-

 

ฝั่งที่ต่อกับ Arduino UNO จะมี 4 pins ดังนี้

Pin ต่อกับ Arduino UNO
GND GND
DT D4
SCK D5
Vcc 5V

 

ขั้นตอนที่ 3 โปรแกรม

จาก HX711_ADC Library ที่ดาวน์โหลดมานั้นมีไฟล์โปรแกรมตัวอย่างอยู่ สามารถเปิดแล้วใช้งานได้ทันที

ขั้นตอนการเปิดโปรแกรมตัวอย่าง
เปิดโปรแกรม Arduino IDE > File > Examples > HX711_ADC > (โปรแกรมตัวอย่าง)

 

การส่งคำสั่งผ่าน Serial ด้วย Serial Monitor ทำได้โดย

  1. Tools > Serial Monitor หรือ คลิกที่แว่นขยายที่มุมบนขวาของโปรแกรม
  2. พิมพ์ข้อความที่ต้องการส่ง แล้วคลิก Send หรือ กด Enter เพื่อส่งคำสั่ง

 

โปรแกรมที่ 1 Calibration

  1. ทำการอัพโหลดโปรแกรม Calibration ในโปรแกรมตัวอย่าง
  2. ปิดการทำงานของ Arduino UNO (หยุดจ่ายไฟ)
  3. ทำให้แน่ใจว่าบนชุดโหลดเซลล์ไม่มีวัตถุวางอยู่
  4. เริ่มต้นการทำงานของ Arduino UNO เพื่อเริ่มต้นโปรแกรม โปรแกรมจะทำการจดจำว่าปัจจุบันคือน้ำหนักที่ 0 หรือ Zero Calibration
  5. ทำการวางตุ้มน้ำหนักที่ทราบค่าแน่นอนบน Load Cell แล้วส่งค่าน้ำหนักนี้ผ่าน Serial ไปยัง Arduino UNO เพื่อทำการ Calibrate
  6. เมื่อ Calibrate เสร็จสิ้น ส่ง ‘y’ เพื่อยืนยัน หรือ ‘n’ เพื่อยกเลิกการ Calibrate ผ่าน Serial
  7. หากเลือกยืนยันการ Calibrate โปรแกรมจะทำการเก็บ Calibration Factor ไว้ใน EEPROM ของ MCU โดยค่าเริ่มต้น (default) จะอยู่ที่ตำแหน่ง (address) 0
  8. เสร็จสิ้นการ Calibration

 

โปรแกรมที่ 2 Read_1x_load_cell

  1. ทำการอัพโหลดโปรแกรม Read_1x_load_cell ในโปรแกรมตัวอย่าง
  2. เริ่มต้นการทำงานของ Arduino UNO ใหม่อีกครั้ง
  3. โปรแกรมจะทำการดึงข้อมูล Calibration Factor ที่เก็บไว้ใน EEPROM จากโปรแกรมก่อนหน้านี้มาใช้งาน
  4. เสร็จสิ้นการเริ่มต้น ชั่งน้ำหนักได้ตามต้องการ