โหลดเซลล์ (Load Cell) คือ อุปกรณ์ที่ใช้ในการตรวจวัดน้ำหนัก โดยใช้การยืดหรือหดตัวของสเตรนเกจ (Strain Gauge) ในการแปลงแรงทางกลเป็นสัญญาณทางไฟฟ้า ซึ่งโดยปกติสเตรนเกจจะถูกต่ออยู่ด้วยกันในลักษณะของวงจร Wheatstone Bridge
จากวงจร 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 ทำได้โดย
- Tools > Serial Monitor หรือ คลิกที่แว่นขยายที่มุมบนขวาของโปรแกรม
- พิมพ์ข้อความที่ต้องการส่ง แล้วคลิก Send หรือ กด Enter เพื่อส่งคำสั่ง
โปรแกรมที่ 1 Calibration
- ทำการอัพโหลดโปรแกรม Calibration ในโปรแกรมตัวอย่าง
- ปิดการทำงานของ Arduino UNO (หยุดจ่ายไฟ)
- ทำให้แน่ใจว่าบนชุดโหลดเซลล์ไม่มีวัตถุวางอยู่
- เริ่มต้นการทำงานของ Arduino UNO เพื่อเริ่มต้นโปรแกรม โปรแกรมจะทำการจดจำว่าปัจจุบันคือน้ำหนักที่ 0 หรือ Zero Calibration
- ทำการวางตุ้มน้ำหนักที่ทราบค่าแน่นอนบน Load Cell แล้วส่งค่าน้ำหนักนี้ผ่าน Serial ไปยัง Arduino UNO เพื่อทำการ Calibrate
- เมื่อ Calibrate เสร็จสิ้น ส่ง ‘y’ เพื่อยืนยัน หรือ ‘n’ เพื่อยกเลิกการ Calibrate ผ่าน Serial
- หากเลือกยืนยันการ Calibrate โปรแกรมจะทำการเก็บ Calibration Factor ไว้ใน EEPROM ของ MCU โดยค่าเริ่มต้น (default) จะอยู่ที่ตำแหน่ง (address) 0
- เสร็จสิ้นการ Calibration
โปรแกรมที่ 2 Read_1x_load_cell
- ทำการอัพโหลดโปรแกรม Read_1x_load_cell ในโปรแกรมตัวอย่าง
- เริ่มต้นการทำงานของ Arduino UNO ใหม่อีกครั้ง
- โปรแกรมจะทำการดึงข้อมูล Calibration Factor ที่เก็บไว้ใน EEPROM จากโปรแกรมก่อนหน้านี้มาใช้งาน
- เสร็จสิ้นการเริ่มต้น ชั่งน้ำหนักได้ตามต้องการ