เครื่องชั่งน้ำหนักดิจิตอลที่อยู่ในท้องตลาดไม่สามารถนำมาต่อยอดทำโปรเจคต่าง ๆ ได้ เพราะอุปกรณ์บนเครื่องชั่งเป็นแบบสำเร็จรูป เชื่อมต่อกับคอมพิวเตอร์ไม่ได้ การทำเครื่องชั่งน้ำหนักเองจึงเป็นตัวเลือกที่ดีกว่า สามารถต่อยอดเป็นโปรเจคต่าง ๆ ได้ เช่น โปรเจคเครื่องวัดดัชนีมวลกาย ที่ใช้งานร่วมกับเซ็นเซอร์วัดระยะเพื่อคำนวณหาส่วนสูง หรือโปรเจคนับจำนวนสิ่งของจากน้ำหนัก หรือใช้เป็นส่วนหนึ่งของเครื่องขายน้ำ วัดปริมาณน้ำที่จ่ายผ่านการชั่งน้ำหนัก เป็นต้น
โหลดเซลล์ (Load Cell) เป็นอุปกรณ์ใช้วัดน้ำหนัก โดยมีหลักการคือ นำแผ่นทองแดงที่เรียกว่า สเตรนเกจ ไปแปะติดกับแท่งเหล็ก แล้วยึดปลายด้านหนึ่งของแท่งเหล็กไว้กับพื้น จากนั้นที่ปลายอีกด้านใช้วางสิ่งของที่ต้องการชั่งน้ำหนัก เมื่อวางสิ่งของลงไปแล้ว จะทำให้แท่งเหล็กงอเล็กน้อย การงอนี้จะไปทำให้แผ่นสเตรนเกจที่ถูกยึดติดไว้กับแท่งเหล็กอย่างแน่นหนายึดออก เมื่อสเตรนเกจถูดยืดออก ทองแดงที่อยู่บนสเตรนเกจก็ถูกยึดออกเช่นกัน ทำให้แผ่นทองแดงมีความยาวมากขึ้น เมื่อความยาวของทองแดงมากขึ้นก็ส่งผลให้ค่าความต้านทานของแผ่นสเตรนเกจมีค่ามากขึ้น ยิ่งแผ่นเหล็กงอมากเท่าไร ทองแดงก็ถูกยืดออกมาเท่านั้น ทำให้ค่าความต้านทานมากตามไปด้วย
รูปที่ 1 หลักการทำงานของสเตรนเกจ (ขอบคุณรูปภาพจาก wikipedia.org)
แต่สเตรนเกจ 1 แผ่น เมื่อถูกงอแล้ว ค่าความต้านทานที่เปลี่ยนแปลงนั้นเล็กน้อยมาก และค่าความต้านทานที่เปลี่ยนแปลงเพียงเล็กน้อยนี้ไม่สามารถนำไปใช้งานได้เลย ส่งผลให้เกิดการคิดค้นวงจรบริดจ์ขึ้นมา
รูปที่ 2 วงจรบริดจ์ (ขอบคุณรูปภาพจาก wikipedia.org)
วงจรบริดจ์ คือวงจรที่นำแผ่นสเตรนเกจ 4 แผ่นมาต่อกันเป็นวงจร แล้วแปะติดลงไปกับแท่งเหล็กด้านบน 2 แผ่น และด้านล่าง 2 แผ่น เมื่อแท่งเหล็กงอ จะส่งผลให้แผ่นสเตรนเกจ 2 แผ่นยืดออก ในขณะที่แผ่นสเตรนเกจอีก 2 แผ่นหดเข้า การเปลี่ยนแปลงค่าความต้านทานของสเตรนเกจทั้ง 4 แผ่นนี้เอง ทำให้สามารถตรวจจับการเปลี่ยนแปลงค่าความต้านทานได้ง่ายขึ้นมาก
รูปที่ 3 วงจรบริดจ์บนโหลดเซลล์ (ขอบคุณรูปภาพจาก wikipedia.org)
วงจรบริดจ์มีจุดต่อไฟเข้า 2 จุด คือไฟบวก และไฟลบ มีจุดไฟออก 2 จุด ความต่างศักย์ไฟฟ้าที่ได้ระหว่าง 2 จุดจะเปลี่ยนไปตามน้ำหนักที่โหลดเซลล์วัดได้ ในทางอุดมคติหากโหลดเซลล์วัดน้ำหนักได้เป็น 0g ความต่างศักย์ไฟฟ้าที่ได้จะเป็น 0V ด้วย (หรือที่เรียกว่า บริดจ์แบบสมดุล) และเมื่อโหลดเซลล์วัดน้ำหนักได้มากกว่า 0g ความต่างศักย์ไฟฟ้าที่ได้ก็จะมีค่ามากขึ้นตามน้ำหนักที่วัดได้ (หรือที่เรียกว่า บริดจ์แบบไม่สมดุล)
แต่ในความเป็นจริง น้ำหนักของฐานรับน้ำหนัก และน้ำหนักของตัวโหลดเซลล์เอง ที่ทำให้เกิดน้ำหนักเพียงเล็กน้อยขึ้น ทำให้เหล็กงอเล็กน้อย แล้วทำให้ความต่างศักย์ไฟฟ้าที่ได้ระหว่าง 2 จุดเมื่อไม่ได้วางสิ่งของใด ๆ บนโหลดเซลล์ ไม่ได้ 0V ตามอุดมคติ
ความต่างศักย์ไฟฟ้าที่ได้ระหว่าง 2 จุดจะได้ค่าระดับ uV เท่านั้น ซึ่งแรงดันไฟฟ้าที่น้อยขนาดนี้ บอร์ด Arduino ไม่สามารถอ่านค่าออกมาได้ ดังนั้นหากต้องการใช้ Arduino ร่วมกับโหลดเซลล์เพื่อวัดน้ำหนัก จึงจำเป็นต้องมีโมดูลวัดแรงดันไฟฟ้า (ADC) ระดับ uV เพิ่มเติม โดยโมดูลนั้นชื่อ HX711 Weight Sensor Amplifier (HX711 มาจากชื่อไอซีที่อยู่บนตัวโมดูล)
รูปที่ 4 โมดูล HX711 Weight Sensor Amplifier
การทำเครื่องชั่งน้ำหนักโดยใช้บอร์ด Arduino ควบคุม มีขั้นตอนดังนี้
ทำเครื่องชั่งน้ำหนักด้วยบอร์ด Arduino แสดงผลบน Serial Monitor จำเป็นต้องใช้อุปกรณ์ดังต่อไปนี้
1.1 ชุดวัดน้ำหนักด้วยโหลดเซลล์ ในชุดประกอบด้วย 1) โหลดเซลล์ 2) ชุดฐานรอง 3) โมดูล HX711 Weight Sensor Amplifier 4) สายจั้มเมีย-เมียและสายจั้มผู้-เมีย ราคา 230 บาท
1.2 บอร์ด Arduino Uno R3 ราคา 180 บาท
1.3 ชุดหัวแร้งบัดกรี
การประกอบชุดวัดน้ำหนักด้วยโหลดเซลล์ มีขั้นตอนดังนี้
2.1 เตรียมโหลดเซลล์ โมดูล HX711 Weight Sensor Amplifier และก้างปลางอ 45 องศา
2.2 บัดกรีสายไฟของโหลดเซลล์เข้ากับโมดูล HX711 Weight Sensor Amplifier ดังนี้
2.3 บัดกรีก้างปลางอ 45 องศาเข้ากับโมดูล HX711 Weight Sensor Amplifier
2.4 เตรียมฐานรองด้านล่าง ฐานรับน้ำหนัก แผ่นรองน็อต 2 แผ่น น็อตขนาด M4 และน็อตขนาด M5
2.5 ใช้น็อตขนาด M5 สอดผ่านรูของฐานรับน้ำหนัก ผ่านแผ่นรองน็อต แล้วขันเข้าไปที่รูในของโหลดเซลล์ด้านบน โดยขันยึดด้านที่มีไม่มีสติ๊กเกอร์แปะที่โหลดเซลล์ และหันหัวลูกศรของสติ็กเกอร์ลงด้านล่าง พยามจับให้โหลดเซลล์อยู่กลางฐานรับน้ำหนัก แล้วขันน็อตยึดให้แน่น
2.6 นำที่พุรองฐาน ใส่เข้าไปในรูของฐานรองให้ครบ 5 รู
2.7 นำโมดูล HX711 Weight Sensor Amplifier มาเสียบเข้ากับพุรองฐาน
2.8 ใช้น็อตขนาด M4 สอดผ่านรูของฐานรอง ผ่านแผ่นรองน็อต แล้วขันเข้าไปในรูของโหลดเซลล์ด้านล่าง พยามจับให้ฐานรับน้ำหนักและฐานรองวางขนานกัน แล้วขันยึดน็อตให้แน่น
2.9 เสียบสายจั้มผู้-เมีย เข้ากับโมดูล HX711 Weight Sensor Amplifier เป็นอันจบขั้นตอนการประกอบชุดวัดน้ำหนักด้วยโหลดเซลล์
การต่อชุดวัดน้ำหนักด้วยโหลดเซลล์เข้ากับบอร์ด Arduino Uno R3 ให้ต่อวงจรตามรูปด้านล่างนี้
หรือต่อตามตารางต่อไปนี้
Arduino Uno R3 | HX711 Weight Sensor Amplifier |
5V | VCC |
3 | SCK |
2 | DT |
GND | GND |
หากไม่เคยใช้งานโปรแกรม ArduinoIDE มาก่อน แนะนำให้ติดตั้งโปรแกรมตามขั้นตอน Arduino ตอนที่ 3 การติดตั้งโปรแกรมและไดร์เวอร์
เปิดโปรแกรม ArduinoIDE ขึ้นมา กดไปที่ Sketch > Include Library เลือก Manage Libraries...
ในหน้าต่าง Library Manager ช่องค้นหาใส่ HX711 แล้วเลือก HX711 Arduino Library คลิกที่ปุ่ม Install เพื่อติดตั้งไลบรารี่ แล้วรอติดตั้งซักครู่
เมื่อติดตั้งเสร็จแล้ว คำว่า INSTALLED จะแสดงขึ้นมา
เป็นอันเสร็จสิ้นการขั้นตอนการติดตั้งไลบรารี่ ปิดหน้าต่าง Library Manager ได้เลย
สร้างไฟล์โปรเจค Arduino ขึ้นมาใหม่ โดยกดไปที่เมนู File เลือก New
คัดลอกโค้ดโปรแกรมต่อไปนี้ลงไปในโปรแกรม ArduinoIDE
เสียบบอร์ด Arduino เข้ากับเครื่องคอมพิวเตอร์ แล้วเลือกบอร์ด เลือกพอร์ตให้เรียบร้อย
อัพโหลดโปรแกรมโดยคลิกที่ปุ่มลูกศรชี้ขวา
รอจนกว่าจะขึ้น Done Uploading เป็นอันจบขั้นตอนการอัพโหลดโปรแกรม
เป็นขั้นตอนการสอบเทียบค่าน้ำหนักกับสิ่งที่รู้น้ำหนักอยู่แล้ว เพื่อให้เครื่องชั่ง ชั่งน้ำหนักได้ตรง
ที่โปรแกรม ArduinoIDE ให้เปิด Serial Monitor ขึ้นมา
ในหน้าต่าง Serial Monitor ให้ตั้งค่าต่าง ๆ ดังนี้
ในช่องใส่ข้อความ ให้ใส่ 1 แล้วกดปุ่ม Enter บนคีย์บอร์ด เพื่อเข้าโหมดสอบเทียบค่าน้ำหนัก
ในหน้าต่าง Serial Monitor จะแสดงคำแนะนำต่าง ๆ ในขั้นตอนแรกให้นำสิ่งของทั้งหมดออกจากชุดชั่งน้ำหนัก จากนั้นในช่องใส่ข้อความ ให้ใส่อะไรก็ได้ แล้วกดปุ่ม Enter บนคีย์บอร์ด
ต่อมาให้วางสิ่งของที่ทราบน้ำหนักอยู่แล้วลงไปบนชุดเครื่องชั่ง ซึ่งโดยปกติการสอบเทียบน้ำหนักจะต้องใช้ลูกตุ้มน้ำหนัก หากไม่มี สามารถใช้ของอื่นแทนได้ ตัวอย่างในบทความนี้ใช้ถุงใส่ทราย/ดินน้ำหนัก 0.5 กิโลกรัม (ชั่งด้วยเครื่องชั่งเครื่องอื่น) มาใช้ในการสอบเทียบ
หลังจากวางสิ่งของที่ทราบน้ำหนักลงไปแล้ว ให้ใส่ค่าน้ำหนักของสิ่งของนั้น แล้วกดปุ่ม Enter ตัวอย่างใช้ถุงทราย 0.5 กิโลกรัม จึงกรอกตัวเลข 0.5 ลงไป
จากนั้นรอจนกว่าจะขึ้นข้อความ ทำงานเสร็จสิ้น เป็นอันจบการสอบเทียบค่า
เมื่อรอซักครู่ ค่าน้ำหนักที่เครื่องชั่งวัดได้ จะแสดงออกมา เป็นอันจบขั้นตอนการตั้งค่าเครื่องชั่ง
หากยังไม่ได้ติดตั้งโปรแกรม Visual Studio 2019 ให้อ่านวิธีติดตั้งได้ที่ [Dev] การติดตั้งโปรแกรม Visual Studio 2019 โดยเลือกลง .NET desktop development เนื่องจากโปรแกรมบนคอมพิวเตอร์ในบทความนี้เลือกใช้ภาษา Visual Basic
เพื่อไม่ให้บทความนี้ยาวเกินไป จึงแนะนำให้โหลดไฟล์โปรเจคที่เขียนเสร็จแล้วไปคอมไพล์แล้วรัน โดยไฟล์โปรเจคดาวน์โหลดได้ที่ ioxhop/WeighingScale เมื่อเข้าไปแล้วให้กดปุ่ม Clone or download แล้วคลิกปุ่ม Download ZIP แล้วรอดาวน์โหลดไฟเสร็จ
เปิดโฟลเดอร์ของไฟล์ที่ได้ดาวน์โหลดมา คลายไฟล์ด้วยโปรแกรม WinZip WinRAR หรือ 7-Zip
เปิดโปรแกรม Visual Studio 2019 ขึ้นมา แล้วกด Open a project or solution
เข้าไปในโฟลเดอร์ที่ได้คลายไฟลไว้ เลือกไฟล์ WeighingScale.sln
แล้วรอโปรแกรมเปิดโปรเจคซักครู่ แล้วกดปุ่ม Start เพื่อให้โปรแกรมเริ่มทำงาน
รอซักครู่ แล้วหน้าต่างโปรแกรมเครื่องชั่งน้ำหนักจะแสดงขึ้นมา
เลือกพอร์ตของบอร์ด Arduino แล้วกดปุ่ม เชื่อมต่อ (หากเปิดหน้าต่าง Serial Monitor ในโปรแกรม ArduinoIDE ค้างไว้ ให้ปิดก่อนกดปุ่มเชื่อมต่อในโปรแกรมนี้ เพราะบอร์ด Arduino สื่อสารได้ทีละโปรแกรมเท่านั้น)
หากเชื่อมต่อสำเร็จ ปุ่มเชื่อมต่อจะเปลี่ยนเป็นปุ่มยกเลิกแทน
หลังจากเชื่อมต่อกับบอร์ดแล้ว นำสิ่งของที่ต้องการให้โปรแกรมนับ วางบนชุดเครื่องชั่ง 1 ชิ้น สังเกตค่าน้ำหนักที่ได้ แล้วกดปุ่ม ตั้งน้ำหนัก 1 ชิ้น
สังเกตช่อง ของ 1 ชิ้น หนัก จะแสดงน้ำหนักของสิ่งของ 1 ชิ้น และในช่องมีของทั้งหมด จะแสดงจำนวน 1 ชิ้น
ทดลองเอาของชั่งเพิ่มอีก 1 ชิ้น (รวมตอนนี้อยู่บนเครื่องชั่ง 2 ชิ้น) สังเกตน้ำหนักที่ได้ และดูที่ช่องมีของทั้งหมด ก็จะแสดงข้อมูลว่ามีของ 2 ชิ้นบนเครื่องชั่งแล้ว
ทดลองเพิ่มของอีก 1 ชิ้น ที่ช่องมีของทั้งหมดก็จะแสดงจำนวนของบนเครื่องชั่ง 3 ชิ้น แสดงว่าเครื่องชั่งสามารถทำงานได้ถูกต้อง สามารถนำไปใช้งานจริงได้แล้ว
การยกเลิกสิ่งของที่จะตรวจวัดจำนวนชิ้น สามารถทำได้โดยกดปุ่ม ล้างค่า สั่งเกตช่อง ของ 1 ชิ้น หนัก จะได้ 0.00 แล้ว
เท่านี้ก็ได้เครื่องชั่งน้ำหนักแสดงผลบนเครื่องคอมพิวเตอร์แล้ว สามารถนำไปประยุกต์ใช้นับสิ่งของในคลังสินค้าได้ หรือต่อยอดเชื่อมต่อกับระบบฐานข้อมูลได้ รวมทั้งยังเป็นแนวทางให้โปรเจคที่เกี่ยวข้องกับการชั่งน้ำหนัดได้อีกด้วย
สำหรับบทความหน้าจะเป็นเรื่องเกี่ยวกับอะไร ก็ฝากติดตามด้วยนะครับ สำหรับบทความนี้ก็มีเท่านี้
~สวัสดีครับ~