[UNICON] ชั่งน้ำหนักแบบอิเล็กทรอนิกส์

 <อ้างอิงจากวารสาร The Prototype Electronics ฉบับที่ 40>

UniconProject07-fig31_CO

 

แนะนำอุปกรณ์สำหรับชั่งน้ำหนัก

 

UniconProject07-fig29_CO-[Converted]ชุดตัวตรวจจับและวัดน้ำหนัก 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 ยังมีชิ้นส่วนพลาสติกและอุปกรณ์ยึดติดเพื่อสร้างแท่นชั่งน้ำหนักอย่างง่ายมาให้พร้อม

UniconProject07-fig30แสดงชิ้นส่วนและอุปกรณ์ทั้งหมดของชุดตัวตรวจจับและวัดน้ำหนัก ZX-WEIGHT

 

 

เชื่อมต่อกับบอร์ด Unicon

 

        การเชื่อมต่อบอร์ด Unicon เพื่อใช้งานชุดตัวตรวจจับและวัดน้ำหนัก ZX-WEIGHT จะใช้ 2 ขาพอร์ตคือ 1 และ 30 โดยพอร์ต 1 ต่อกับขา DOUT ส่วนขาพอร์ต 30 ต่อกับขา SCK และต่อแผงวงจรสวิตช์ ZX-01 เข้าที่พอร์ต 20 เพื่อใช้เป็นปุ่มสำหรับตั้งค่าเริ่มต้นให้เป็น 0 กรัม ในกรณีที่เปิดไฟเลี้ยงขึ้นมาแล้วค่าที่ได้ไม่เป็น 0 กรัมในขณะที่ยังไม่ได้ทำการชั่งน้ำหนักใดๆ หรือจะเรียกว่าเป็นสวิตช์ตั้งค่าศูนย์ก็ได้

UniconProject07-fig31_COวงจรเชื่อมต่อระหว่างชุดตัวตรวจจับและวัดน้ำหนัก ZX-WEIGHT กับบอร์ด Unicon

 

        สายสัญญาณที่ใช้เชื่อมต่อระหว่างแผงวงจรปรับสภาวะสัญญาณกับบอร์ด Unicon ใช้สายสัญญาณ JST3AA-8 มาทำการสลับสาย

UniconProject07-fig32_CO-[Converted]การสลับสายสัญญาณ JST3AA-8 เพื่อใช้สำหรับ ZX-WEIGHT กับบอร์ด Unicon

 

สร้างและติดตั้งแท่นชั่งน้ำหนักอย่างง่าย

 

UniconProject07-fig33-[Converted]แบบของแท่นชั่งน้ำหนักที่ทำจากแผ่นอะครีลิกใส หนา 5 มม.

 

 

UniconProject07-fig34_CO-[Converted]แนวทางการประกอบชิ้นส่วนของแท่นชั่งน้ำหนัก

 

        เพื่อให้การใช้งานชุดตัวตรวจจับและวัดน้ำหนัก ZX-WEIGHT มีประสิทธิภาพมากที่สุด จึงต้องติดตั้งโหลดเซลไว้กับโครงสร้างที่เหมาะสม นั่นคือ ทำเป็นแท่นชั่งน้ำหนัก โดยมีชิ้นส่วนต่างๆ ซึ่งใช้แผ่นอะครีลิกใสหนา 5 มม. ประกอบเข้าด้วยกัน จากนั้นติดตั้งแผงวงจรปรับสภาพสัญญาณ แล้วต่อสายสัญญาณของโหลดเซลทั้ง สี่เส้นเข้ากับแผงวงจรแผงวงจรปรับสภาพสัญญาณดังนี้

    • สายสีแดงต่อเข้าที่จุด E+
    • สายสีขาวต่อเข้าที่จุด E-
    • สายสีดำต่อเข้าที่จุด S-
    • สายสีเขียวต่อเข้าที่จุด S+

 

UniconProject07-fig35 แท่นชั่งน้ำหนักที่ประกอบเสร็จแล้ว พร้อมเชื่อมต่อกับบอร์ดไมโครคอนโทรลเลอร์

 

 

เขียนโค้ดและผนวกไลบรารีสำหรับใช้งานชุดตัวตรวจจับและวัดน้ำหนัก ZX-WEIGHT

 

        โค้ดโปรแกรมภาษา C/C++ สำหรับ Arduino เพื่ออ่านค่าจากชุดตัวตรวจจับและวัดน้ำหนัก ZX-WEIGHT หัวใจหลักของโปรแกรมนี้คือ ไฟล์ไลบรารี Hx711.h จะต้องมีการคัดลอกไฟล์ไลบรารีนี้แล้วนำไปไว้ในโฟลเดอร์ libraries ของซอฟต์แวร์ Arduino ตามที่ได้ติดตั้งไว้ เช่น C:\Program Files\Arduino\libraries (อาจเปลี่ยนแปลงไปตามการติดตั้งซอฟต์แวร์ของผู้พัฒนาแต่ละคน) ก่อนที่จะทำการคอมไพล์หรืออัปโหลดโปรแกรมไปยังบอร์ด Unicon

        ดาวน์โหลดไลบรารี Hx711

/*****************************************************
 * 
 *   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);
}

 

UniconProject07-fig36     โฟลเดอร์ 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 กรัมแล้ว จึงเริ่มชั่งน้ำหนักวัตถุได้

UniconProject07-fig37-[Converted]
ผลการชั่งน้ำหนักที่ได้จากมินิโปรเจ็กต์เครื่องชั่งน้ำหนักแบบดิจิตอลที่สร้างจากบอร์ด Unicon

 

        หมายเหตุ – โค้ดของโครงงานทั้งหมดดาวน์โหลดได้ที่ www.tpemagazine.com

 

 

Facebook Comments