<อ้างอิงจากวารสาร The Prototype Electronics ฉบับที่ 40>
แนะนำอุปกรณ์สำหรับชั่งน้ำหนัก
ชุดตัวตรวจจับและวัดน้ำหนัก ZX-WEIGHT
ตัวตรวจจับที่ชื่อโหลดเซลและแผงวงจรปรับสภาพสัญญาณคือตัวช่วยสำคัญ
ตัวตรวจจับสำหรับวัดน้ำหนักวัตถุตัวนี้มีชื่อว่า ZX-WEIGHT ประกอบด้วยโหลดเซล (load cell) ที่มีหน้าตาเป็นแท่งโลหะอันเป็นตัวตรวจจับตัวจริงทำงานร่วมกับวงจรปรับสภาพสัญญาณที่เรียกว่า signal condition จนได้เป็นค่าข้อมูลของน้ำหนักที่ส่งไปยังไมโครคอนโทรลเลอร์ที่ติดต่อด้วย ในการใช้งานตัวตรวจจับนี้ผู้ผลิตไม่ได้มีเพียงฮาร์ดแวร์มาเท่านั้น ยังมาพร้อมกับไลบรารีสำหรับพัฒนาโปรแกรมบน Arduino เพื่อให้ใช้งานได้ง่ายขึ้นด้วย ชุดตัวตรวจจับและวัดน้ำหนักนี้ทำงานด้วยไฟเลี้ยงในย่าน +2.6 ถึง +5V
โหลดเซลที่เป็นตัววัดหรือชั่งน้ำหนักมีคุณสมบัติทางเทคนิคดังนี้
- ย่านวัดสูงสุด 1 กิโลกรัม ให้เอาต์พุตเป็นแรงดันไฟตรง
- ใช้ไฟเลี้ยง +5 ถึง +15V
- ความไวเอาต์พุต 1.0±0.15mV/V
- ค่าความผิดพลาด 100ppm ของค่าวัดเต็มสเกล
- ค่าสัมประสิทธิ์อุณหภูมิ 0.05/0.03 %F.S/10°C ในทุกๆ 30 นาที
- อินพุตอิมพีแดนซ์ 1.055kW
- เอาต์พุตอิมพีแดนซ์ 1kW
- ขนาด 33 x 38 มม.
โหลดเซลที่ใช้วัดน้ำหนัก 1 กิโลกรัมในชุด ZX-WEIGHT จะมีความคลาดเคลื่อนเป็นแบบไม่เป็นเชิงเส้นหรือนอนลิเนียร์อยู่เล็กน้อย โดยคลาดเคลื่อนในระดับไม่ถึง 100 กรัม ทั้งนี้ขึ้นอยู่กับน้ำหนักของวัตถุด้วย โดยวัตถุที่มีน้ำหนักน้อย ค่าที่ได้จะมีความแม่นยำมากกว่าวัตถุที่มีน้ำหนักมาก
แผงวงจรปรับสภาพสัญญาณสำหรับโหลดเซลในชุด ZX-WEIGHT มีคุณสมบัติทางเทคนิคดังนี้
- ใช้ไอซีฟังก์ชั่นพิเศษเบอร์ HX711 ผลงานของ AVIA Semiconductor เป็นไอซีแปลงสัญญาณอะนาลอกเป็นดิจิตอลความละเอียด 24 บิตสำหรับโหลดเซลโดยเฉพาะ
- มีอินพุตแบบดิฟเฟอเรนเชียล 2 ชุด จึงใช้งานกับโหลดเซลได้ง่าย
- มีขาเอาต์พุตไฟเลี้ยงสำหรับโหลดเซล มาจากวงจรเรกูเลเตอร์ภายในไอซี HX711
- เชื่อมต่อกับไมโครคอนโทรลเลอร์ด้วยสัญญาณ 2 เส้นคือ สัญญาณข้อมูล Dout และสัญญาณนาฬิกา PD_Clock
- ใช้ไฟเลี้ยง +2.6 ถึง +5.5V ใช้กระแสไฟฟ้าน้อยกว่า 1.6mA
- มีจุดต่อโหลดเซลเป็นเทอร์มินอลบล็อก 4 ขา และจุดต่อสัญญาณสำหรับเชื่อมต่อไมโครคอนโทรลเลอร์แบบ JST 3 ขา 2 ชุด พร้อมใช้งาน
ในชุดตัวตรวจจับและวัดน้ำหนัก ZX-WEIGHT ยังมีชิ้นส่วนพลาสติกและอุปกรณ์ยึดติดเพื่อสร้างแท่นชั่งน้ำหนักอย่างง่ายมาให้พร้อม
แสดงชิ้นส่วนและอุปกรณ์ทั้งหมดของชุดตัวตรวจจับและวัดน้ำหนัก ZX-WEIGHT
เชื่อมต่อกับบอร์ด Unicon
การเชื่อมต่อบอร์ด Unicon เพื่อใช้งานชุดตัวตรวจจับและวัดน้ำหนัก ZX-WEIGHT จะใช้ 2 ขาพอร์ตคือ 1 และ 30 โดยพอร์ต 1 ต่อกับขา DOUT ส่วนขาพอร์ต 30 ต่อกับขา SCK และต่อแผงวงจรสวิตช์ ZX-01 เข้าที่พอร์ต 20 เพื่อใช้เป็นปุ่มสำหรับตั้งค่าเริ่มต้นให้เป็น 0 กรัม ในกรณีที่เปิดไฟเลี้ยงขึ้นมาแล้วค่าที่ได้ไม่เป็น 0 กรัมในขณะที่ยังไม่ได้ทำการชั่งน้ำหนักใดๆ หรือจะเรียกว่าเป็นสวิตช์ตั้งค่าศูนย์ก็ได้
วงจรเชื่อมต่อระหว่างชุดตัวตรวจจับและวัดน้ำหนัก ZX-WEIGHT กับบอร์ด Unicon
สายสัญญาณที่ใช้เชื่อมต่อระหว่างแผงวงจรปรับสภาวะสัญญาณกับบอร์ด Unicon ใช้สายสัญญาณ JST3AA-8 มาทำการสลับสาย
การสลับสายสัญญาณ JST3AA-8 เพื่อใช้สำหรับ ZX-WEIGHT กับบอร์ด Unicon
สร้างและติดตั้งแท่นชั่งน้ำหนักอย่างง่าย
แบบของแท่นชั่งน้ำหนักที่ทำจากแผ่นอะครีลิกใส หนา 5 มม.
แนวทางการประกอบชิ้นส่วนของแท่นชั่งน้ำหนัก
เพื่อให้การใช้งานชุดตัวตรวจจับและวัดน้ำหนัก ZX-WEIGHT มีประสิทธิภาพมากที่สุด จึงต้องติดตั้งโหลดเซลไว้กับโครงสร้างที่เหมาะสม นั่นคือ ทำเป็นแท่นชั่งน้ำหนัก โดยมีชิ้นส่วนต่างๆ ซึ่งใช้แผ่นอะครีลิกใสหนา 5 มม. ประกอบเข้าด้วยกัน จากนั้นติดตั้งแผงวงจรปรับสภาพสัญญาณ แล้วต่อสายสัญญาณของโหลดเซลทั้ง สี่เส้นเข้ากับแผงวงจรแผงวงจรปรับสภาพสัญญาณดังนี้
- สายสีแดงต่อเข้าที่จุด E+
- สายสีขาวต่อเข้าที่จุด E-
- สายสีดำต่อเข้าที่จุด S-
- สายสีเขียวต่อเข้าที่จุด S+
แท่นชั่งน้ำหนักที่ประกอบเสร็จแล้ว พร้อมเชื่อมต่อกับบอร์ดไมโครคอนโทรลเลอร์
เขียนโค้ดและผนวกไลบรารีสำหรับใช้งานชุดตัวตรวจจับและวัดน้ำหนัก ZX-WEIGHT
โค้ดโปรแกรมภาษา C/C++ สำหรับ Arduino เพื่ออ่านค่าจากชุดตัวตรวจจับและวัดน้ำหนัก ZX-WEIGHT หัวใจหลักของโปรแกรมนี้คือ ไฟล์ไลบรารี Hx711.h จะต้องมีการคัดลอกไฟล์ไลบรารีนี้แล้วนำไปไว้ในโฟลเดอร์ libraries ของซอฟต์แวร์ Arduino ตามที่ได้ติดตั้งไว้ เช่น C:\Program Files\Arduino\libraries (อาจเปลี่ยนแปลงไปตามการติดตั้งซอฟต์แวร์ของผู้พัฒนาแต่ละคน) ก่อนที่จะทำการคอมไพล์หรืออัปโหลดโปรแกรมไปยังบอร์ด Unicon
/***************************************************** * * TITLE : WEIGHT MEASUREMENT * CATAGORIES : DIGITAL * CREATED DATE : DECEMBER 9, 2013 * AUTHOR : INNOVATIVE EXPERIMENT CO., LTD. (INEX) * WEBSITE : HTTP://WWW.INEX.CO.TH * DESCRIPTION : Measure distance between HC-SR04 and any object * and show distance on Unicon board's GLCD * in centimetre unit * โปรแกรมวัดระยะทางระหว่าง HC-SR04 กับวัตถุใดๆ * โดยแสดงค่าระยะทางที่วัดได้ในหน่วยเซนติเมตรมาแสดงบน GLCD * ******************************************************/ #include <unicon.h> #include <Hx711.h> #define pinRead 20 Hx711 scale(1, 30); void setup() { // Clear GLCD screen glcdClear(); // Set output pin for calibrate pin pinMode(pinRead, INPUT); } void loop() { // Get object's weight float grams = scale.getGram(); // Calculate to close to real weight grams = grams * 0.921; // Show object's weight on GLCD glcd(0, 0, "%d g ", (int)grams); // Read button state boolean pressed = !digitalRead(pinRead); // If button was pressed if(pressed) { // Show calibrate message on GLCD glcd(2, 0, "Calibrate"); // Set current value to 0 grams scale.setGramOffset(grams); // Delay 500 milliseconds delay(500); // Clear calibrate message on GLCD glcd(2, 0, " "); } // Delay 100 milliseconds delay(100); }
โฟลเดอร์ libraries ของซอฟต์แวร์ Arduino สำหรับนำโฟลเดอร์ของไฟล์ไลบรารี Hx711.h มาติดตั้งไว้
การทำงานของโปรแกรมจะอ่านค่าน้ำหนักของวัตถุที่วัดได้ นำมาคูณกับ 0.921 ก่อน ซึ่งค่า 0.921 เป็นค่าชดเชยความคลาดเคลื่อนของน้ำหนักที่วัดได้ โดยทำการเทียบน้ำหนักกับเครื่องชั่งน้ำหนักตัวอื่น แล้วนำมาคำนวณเป็นค่าดังกล่าว โดยค่า 0.921 มาจากการวัดเทียบน้ำหนัก โหลดเซลวัดน้ำหนักได้เกินจริงเฉลี่ยประมาณ 108.577% จึงนำมาคำนวณด้วย 100 / 108.577 ก็จะได้เป็น 0.921 เพื่อใช้ชดเชยค่าที่วัดไว้จากโหลดเซล เมื่อได้ค่าน้ำหนักแล้วจึงนำไปแสดงบนจอแสดงผล GLCD-XT ต่อไป
สำหรับสวิตช์ที่ใช้สำหรับตั้งค่าเริ่มต้นให้เป็น 0 หรือสวิตช์ตั้งค่าศูนย์ ใช้ในกรณีที่ยังไม่ได้ชั่งวัตถุใดๆ แล้วค่าที่ได้ไม่เป็น 0 กรัม โดยโปรแกรมจะตรวจสอบสถานะของสวิตช์ดังกล่าวว่า มีการกดหรือไม่ เมื่อมีการกด ก็จะนำค่าน้ำหนักที่โหลดเซลวัดได้ในขณะนั้นไปกำหนดใหม่ให้เป็น 0 กรัม
ทดสอบวัดน้ำหนัก
เมื่ออัปโหลดโค้ดและโปรแกรมในบอร์ด Unicon เริ่มทำงานแล้ว ให้รอสักครู่ เพื่อให้โหลดเซลได้เตรียมความพร้อมเข้าสู่สภาวะพร้อมทำงาน จึงไม่ควรวางวัตถุใดๆ ไว้บนแท่นชั่งในขณะเริ่มทำงานใหม่ๆ หากค่าน้ำหนักที่แสดงขณะไม่มีวัตถุใดๆ มาชั่งยังไม่เป็น 0 กรัม ให้กดสวิตช์ที่ต่อกับพอร์ต 20 หรือสวิตช์ตั้งค่าศูนย์ค้างไว้ จนกว่าจอแสดงผล GLCD-XT แสดงข้อความว่า Calibrate ให้ปล่อยสวิตช์ รอจนกระทั่งค่าน้ำหนักที่แสดงเป็น 0 กรัม เมื่อค่าคงที่ที่ 0 กรัมแล้ว จึงเริ่มชั่งน้ำหนักวัตถุได้
ผลการชั่งน้ำหนักที่ได้จากมินิโปรเจ็กต์เครื่องชั่งน้ำหนักแบบดิจิตอลที่สร้างจากบอร์ด Unicon
หมายเหตุ – โค้ดของโครงงานทั้งหมดดาวน์โหลดได้ที่ www.tpemagazine.com