AT201 ชุดเรียนรู้+ชุดทดลอง ชั่งน้ำหนัก Mini Automation Load Cell Weight Sensor Counter

฿32,900.00

สั่งจองสินค้าได้

คำอธิบาย

ชุดทดลองตรวจสอบน้ำหนักบนสายพานลำเลียง Automation Conveyor + Load cell Sensor Loadcell

หลักการทำงานชุดทดลองตรวจสอบน้ำหนักบนสายพานลำเลียง
Automation Conveyor with Load Cell Sensor

ภาพรวมระบบ
ชุดทดลองตรวจสอบน้ำหนักบนสายพานลำเลียง เป็นระบบอัตโนมัติสำหรับศึกษาหลักการตรวจวัดน้ำหนัก การตรวจสอบคุณภาพ และการคัดแยกชิ้นงานตามค่าน้ำหนักที่กำหนด โดยระบบประกอบด้วยสายพานลำเลียง เซนเซอร์ตรวจจับชิ้นงาน โหลดเซลล์ โมดูลขยายสัญญาณ HX711 บอร์ดควบคุม Arduino ชุดผลักชิ้นงาน และอุปกรณ์แสดงผล ซึ่งทำงานร่วมกันเป็นกระบวนการอัตโนมัติอย่างต่อเนื่อง

การเตรียมและสอบเทียบ
เมื่อเริ่มต้นใช้งาน ระบบจะทำการปรับค่าศูนย์ของโหลดเซลล์ หรือ Tare เพื่อชดเชยน้ำหนักของโครงสร้างสายพานและถาดรองชั่ง จากนั้นผู้ใช้งานสามารถวางชิ้นงานมาตรฐานบนสายพานและกดปุ่มบันทึกค่าน้ำหนัก เพื่อกำหนดเป็นค่าน้ำหนักเป้าหมาย หรือ Target Weight สำหรับใช้เปรียบเทียบกับชิ้นงานในกระบวนการตรวจสอบ

การใช้ Load cell Sensor เพื่อการคัดแยกชิ้นงานที่น้ำหนักต่างกัน Load cell กับ HX711 (Load Cell Amplifier)

HX711 ตัวแปลงสัญญาณอนาล็อกเป็นดิจิตอลขนาด 24 บิต (ADC) ออกแบบมาสำหรับเครื่องชั่งน้ำหนักและโปรแกรมควบคุมน้ำหนักในงานอุตสาหกรรม เพื่อเชื่อมต่อโดยตรงกับเซ็นเซอร์จำพวกวิจสโตน บริดจ์ โมดูล HX711 ทำงานที่ 5V การสื่อสารโดยใช้ serial pins DT และ SCK

  • Precision Classes : C2 (are sufficient for simple building materials scales used to weigh sand, cement or water.)
  • วัสดุ: อลูมิเนียม
  • แรงดัน output: 1.0 +- 0.15mV / V
  • แรงดันใช้งานที่แนะนำ: 10-15V
  • อุณหภูมิใช้งาน: -10 ถึง 40 ℃

Load cell กับ HX711 (Load Cell Amplifier) HX711 ตัวแปลงสัญญาณอนาล็อกเป็นดิจิตอลขนาด 24 บิต (ADC) ออกแบบมาสำหรับเครื่องชั่งน้ำหนักและโปรแกรมควบคุมน้ำหนักในงานอุตสาหกรรม เพื่อเชื่อมต่อโดยตรงกับเซ็นเซอร์จำพวกวิจสโตน บริดจ์ โมดูล HX711 ทำงานที่ 5V การสื่อสารโดยใช้ serial pins DT และ SCK

การต่อ Load cell กับ โมดูลขยายสัญญาณ HX711

  1. Load cell สายสีแดง Power : ต่อ HX711 E +
  2. Load cell สายสีดำ GND: ต่อ HX711 E-
  3. Load cell สายสีเขียว Signal + : ต่อ HX711 A+
  4. Load cell สายสีขาว Signal – : ต่อ HX711 A –

ลำดับการทำงาน
เมื่อมอเตอร์ขับสายพานทำงาน ชิ้นงานจะถูกลำเลียงเข้าสู่บริเวณชั่งน้ำหนัก โฟโตอิเล็กทริกเซนเซอร์จะตรวจจับตำแหน่งของชิ้นงานและส่งสัญญาณไปยังบอร์ด Arduino เพื่อเริ่มอ่านค่าน้ำหนักจากโหลดเซลล์ โหลดเซลล์จะเปลี่ยนแรงกดจากน้ำหนักของชิ้นงานให้เป็นสัญญาณไฟฟ้าขนาดเล็กในระดับมิลลิโวลต์ สัญญาณดังกล่าวจะถูกส่งเข้าสู่โมดูล HX711 เพื่อขยายสัญญาณและแปลงจากสัญญาณแอนะล็อกเป็นข้อมูลดิจิทัลความละเอียด 24 บิต ก่อนส่งข้อมูลให้ Arduino ผ่านขาสื่อสาร DT และ SCK

การตัดสินผลและคัดแยกชิ้นงาน
Arduino จะนำค่าน้ำหนักที่วัดได้มาเฉลี่ยหลายครั้งเพื่อลดความผันผวนของสัญญาณ แล้วเปรียบเทียบกับค่าน้ำหนักเป้าหมายและช่วงค่าความคลาดเคลื่อนที่ตั้งไว้ หากน้ำหนักของชิ้นงานอยู่ภายในช่วงที่กำหนด ระบบจะตัดสินให้เป็นชิ้นงานผ่าน หรือ PASS พร้อมส่งสัญญาณพัลส์ไปยังชุดเคาน์เตอร์ 7-Segment เพื่อเพิ่มจำนวนชิ้นงานที่ผ่านการตรวจสอบ จากนั้นสายพานจะลำเลียงชิ้นงานไปยังขั้นตอนถัดไป

หากน้ำหนักของชิ้นงานต่ำกว่าหรือสูงกว่าช่วงที่กำหนด ระบบจะตัดสินให้เป็นชิ้นงานไม่ผ่าน หรือ REJECT โปรแกรมจะหน่วงเวลาตามระยะทางและความเร็วของสายพาน เพื่อรอให้ชิ้นงานเคลื่อนที่มาถึงตำแหน่งชุดผลัก จากนั้นระบบจะหยุดหรือชะลอสายพานชั่วคราว และส่งสัญญาณควบคุมให้ชุด Rejector ทำงาน เพื่อผลักชิ้นงานออกจากแนวสายพาน เมื่อการคัดแยกเสร็จสิ้น ชุดผลักจะกลับสู่ตำแหน่งเดิม และสายพานจะเริ่มทำงานต่อโดยอัตโนมัติ

การควบคุมอุปกรณ์
การควบคุมมอเตอร์สายพานดำเนินการผ่านบอร์ด L298P Shield ซึ่งรับคำสั่งจาก Arduino เพื่อกำหนดทิศทางและความเร็วของมอเตอร์ด้วยสัญญาณ PWM ส่วนอะแดปเตอร์ DC 12V 5A ทำหน้าที่จ่ายพลังงานให้กับมอเตอร์และอุปกรณ์ในระบบ ขณะที่วงจรควบคุม Arduino และ HX711 ใช้แรงดันไฟฟ้าระดับ 5V

การประยุกต์ใช้งาน
ชุดทดลองนี้แสดงให้เห็นองค์ประกอบสำคัญของระบบอัตโนมัติ ได้แก่ อินพุตจากเซนเซอร์ การประมวลผลด้วยตัวควบคุม การสื่อสารข้อมูล และเอาต์พุตสำหรับควบคุมอุปกรณ์ โดยสามารถนำไปใช้ศึกษาการเขียนโปรแกรม Arduino การสอบเทียบโหลดเซลล์ การควบคุมมอเตอร์ การนับจำนวนชิ้นงาน และการคัดแยกผลิตภัณฑ์ตามน้ำหนัก หลักการดังกล่าวสามารถต่อยอดไปสู่งานตรวจสอบน้ำหนักในสายการผลิต เช่น การตรวจสอบปริมาณสินค้าในบรรจุภัณฑ์ การตรวจหาชิ้นส่วนที่ขาดหรือเกิน การแบ่งเกรดสินค้าตามน้ำหนัก และการคัดแยกผลิตภัณฑ์ที่ไม่เป็นไปตามข้อกำหนด อย่างไรก็ตาม ชุดนี้เหมาะสำหรับการทดลองและการศึกษาเบื้องต้น หากนำไปใช้ในงานอุตสาหกรรมจริง ควรเพิ่มระบบป้องกันสัญญาณรบกวน การสอบเทียบด้วยตุ้มน้ำหนักมาตรฐาน ระบบติดตามตำแหน่งชิ้นงาน และอุปกรณ์ควบคุมที่เหมาะสมกับสภาพแวดล้อมการผลิต

ในชุดประกอบด้วย

  1. 1pcs x สายพานลำเลียง Mini Conveyor 50×06-DC-White
  2. 1pcs x สายพานลำเลียง Mini Conveyor 30×06-DC ติดตั้ง Weight Sensor (Load Cell)
  3. 1pcs x 20 Weight Sensor เพื่องานชั่งน้ำหนักแบบดิจิตอล ติดตั้งด้านล่างสายพานลำเลียง
  4. 1pcs x โมดูลขยายสัญญาณ Weight Sensor (Load Cell) HX711
  5. 1pcs x ชุดผลักชิ้นงาน Rejector แบบใช้ Step motor 1 ชุด
  6. 1pcs x บอร์ด Arduino Uno
  7. 1pcs x ชิ้นงานสำหรับทดสอบสี ทดสอบโลหะ ทดสอบอโลหะ ทดสอบน้ำหนัก ทดสอบของเหลว ทรงกระบอก
  8. 1pcs x เซนเซอร์ Proximity Photoelectric Sensor
  9. 1pcs x ชุด Counter แสดงผลนับ 7-Segmen
  10. 1pcs x อะแดปเตอร์จ่ายไฟ DC 12V 5A
  11. 1pcs x บอร์ด L298P Shield

โค้ด Arduino ตัวอย่างโปรแกรมด้านล่างแสดง

  • การตรวจจับชิ้นงานที่มีน้ำหนักต่างกัน และตรวจสอบน้ำหนักอยู่ในช่วงที่ต้องการ
  • เมื่อ ชิ้นงานมีน้ำหนักน้อยกว่า หรือ มากว่า ค่าที่ต้องการ รอเวลาให้ชิ้นงานวิ่งไปใกล้ Rejector และผลักออก

ไลบรารี่ Load cell กับ HX711 (Load Cell Amplifier) https://github.com/bogde/HX711

#include "HX711.h"
#include <Wire.h> 
// +5V (UNO) ---> VCC (HX711)
// D3  (UNO) ---> SCK (HX711)
// D2  (UNO) ---> DT  (HX711)
// GND (UNO) ---> GND (HX711)
// HX711 circuit wiring
const int LOADCELL_DOUT_PIN = 2;
const int LOADCELL_SCK_PIN = 3;
HX711 scale;  // สร้างออปเจ็กต์ชื่อ scale
//************************************************************ 
#define in1 9   //ขาควบคุม L298
#define in2 10   //ขาควบคุม L298
#define enA 8  //ขาควบคุม L298

#define in3 11   //ขาควบคุม L298
#define in4 12   //ขาควบคุม L298
#define enB 13  //ขาควบคุม L298

#define CntPin  5 // ขาเอาต์พุตส่งสัญญาณไปยังตัวเคาเตอร์

#define sensor_A A1 // เซนเซอร์ตรวจจับชิ้นงานบนสายพานชั่งน้ำหนัก
#define Rejector  4 // Uno Digital Pin 4 for Rejector

int SensorValue_A = 0;

int flag_count = 0;
int Speed = 255; // กำหนด Speed 0-255 ความเร็วสายพาน
int delay_injector= 3200; //หน่วงเวลาหลังจากเจอชิ้นงาน ค่อยผลัก
float read_weight_zero=0;
int rotDirection = 0; //ตัวแปรกำหนดทิศทางการหมุนสายพาน
float TargetWeight = 0.0; //ค่าน้ำหนักที่ต้องการ
const long interval = 200;
float read_weight =0;
unsigned long previousMillis = 0;
int pwmOutput = 0;
//************************************************************ 
void setup() {
  Serial.begin(38400);

  pinMode(enA, OUTPUT);
  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);  

  pinMode(enB, OUTPUT);
  pinMode(in3, OUTPUT);
  pinMode(in4, OUTPUT);  

  pinMode(CntPin, OUTPUT); 
  pinMode(Rejector, OUTPUT); 
  
  pinMode(A1,INPUT);    // A1 โฟโตเซนเซอร์
  digitalWrite(A1,HIGH); // pullup input

  pinMode(A0,INPUT);    // A0 อินพุตสำหรับกดรีเซตน้ำหนัก
  digitalWrite(A0,HIGH); // pullup input

  scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN);

  //*********************************************************************************
  scale.set_scale(105000.f);   //ลดค่าลง น้ำหนักมากขึ้น ถ้าเพิ่มค่ามากขึ้น น้ำที่แสดงจะลดลง
  scale.tare();				        // reset the scale to 0
  //*********************************************************************************

  digitalWrite(Rejector, HIGH);
  digitalWrite(CntPin, LOW);

  while (digitalRead(sensor_A) == HIGH) 
  {
    unsigned long currentMillis = millis();
  if (currentMillis - previousMillis >= interval) {
    // save the last time you blinked the LED
    previousMillis = currentMillis;
      Serial.print("realtime weight: ");
      read_weight = scale.get_units(3); //อ่านค่าจากตาชั่ง เฉลี่ย 3 ครั้ง
      String data = String(read_weight, 3); //ปริ้นทศนิยม 3 ตำแหน่ง
      Serial.print(data);
      Serial.print(" kg");
       if( digitalRead(A0)==0){ // ถ้ากดสวิตช์ A0 ให้อ่านค่าน้ำหนัก จากตัวอย่างชิ้นงาน ที่วางไว้บนสายพานเก็บไว้
           TargetWeight = scale.get_units(10); //อ่านค่าน้ำหนักชิ้นงาน หาค่าเฉลี่ย10ครั้ง
       }
      Serial.print("\t"); 
      Serial.print("Target weight: ");       
      Serial.print(TargetWeight,3); //ปริ้นทศนิยม 3 ตำแหน่ง
      Serial.println(" kg");

        pwmOutput = 0; //set speed conveyor
        analogWrite(enB, pwmOutput); // ส่งสัญญาณ PWM 0-255 = 0-100% เพื่อควบคุมความเร็วสายพานตัวที่1
        analogWrite(enA, pwmOutput); // ส่งสัญญาณ PWM 0-255 = 0-100% เพื่อควบคุมความเร็วสายพานตัวที่2 อยู่บนโหลดเซลล์

  }
  }
        pwmOutput = 255; //set speed conveyor
        analogWrite(enB, 128); // ส่งสัญญาณ PWM 0-255 = 0-100% เพื่อควบคุมความเร็วสายพานตัวที่1
        analogWrite(enA, 255); // ส่งสัญญาณ PWM 0-255 = 0-100% เพื่อควบคุมความเร็วสายพานตัวที่2 อยู่บนโหลดเซลล์
        rotDirection = 1;   // 1 = สายพานเคลื่อนไปทางซ้าย   0=สายพานเคลื่อนไปทางขวา        
        if (rotDirection == 0) // สายพานเคลื่อนไปทางซ้าย
        {
          digitalWrite(in1, HIGH);//สำหรับสายพานตัวที่อยู่บนโหลดเซลล์
          digitalWrite(in2, LOW);//สำหรับสายพานตัวที่อยู่บนโหลดเซลล์
          digitalWrite(in3, HIGH);//สำหรับสายพานตัวที่1
          digitalWrite(in4, LOW);//สำหรับสายพานตัวที่1      
        }
        if (rotDirection == 1) // สายพานเคลื่อนไปทางขวา
        {
          digitalWrite(in1, HIGH);//สำหรับสายพานตัวที่อยู่บนโหลดเซลล์
          digitalWrite(in2, LOW);//สำหรับสายพานตัวที่อยู่บนโหลดเซลล์
          digitalWrite(in3, LOW);//สำหรับสายพานตัวที่1
          digitalWrite(in4, HIGH);//สำหรับสายพานตัวที่1
        }  

}

void loop() { 

               SensorValue_A = digitalRead(sensor_A);//อ่านค่าจากโฟโตเซนเซอร์ ว่ามีชิ้นงานบนสายพานชั่งน้ำหนักหรือไม่                  
                if(SensorValue_A == 0) { // โฟโตเซนเซอร์  เจอชิ้นงานแล้ว สัญญาณจะเป็น 0
                  read_weight = scale.get_units(3); //อ่านค่าจากตาชั่ง เฉลี่ย 3 ครั้ง
                  Serial.print("read_weight: ");       
                  Serial.print(read_weight,3); //ปริ้นทศนิยม 3 ตำแหน่ง
                  Serial.println(" kg");
                  Serial.print("\t"); 
                  Serial.print("Target weight: ");       
                  Serial.print(TargetWeight,3); //ปริ้นทศนิยม 3 ตำแหน่ง
                  Serial.println(" kg");

                  if((read_weight > (TargetWeight-0.05))&&(read_weight < (TargetWeight+0.005))) { // มีชิ้นงาน Good  น้ำหนักอยู่ในช่วงที่ต้องการ +/-0.005 กรัม
                      Serial.println(" PASS");
                      digitalWrite(CntPin, HIGH);// ส่งสัญญาณไปยังวงจรเคาท์เตอร์
                      delay(100);  //หน่วงเวลาขาลง นาน 100 มิลลิเซค
                      digitalWrite(CntPin, LOW);
                      delay(2500);
                  }
                  
                  else { // ชิ้นงานมีน้ำหนักน้อยกว่า หรือ มากว่า ค่าที่ต้องการ ให้ผลักออก
                      delay(delay_injector);  // รอเวลาให้ชิ้นงานวิ่งไปใกล้ Rejector สามารถเปลี่ยนแปลงค่าให้เหมาะสมกับความเร็วสายพาน
                      analogWrite(enB, 0); // STOP
                      analogWrite(enA, 0); // STOP
                       delay(500);
                      Serial.println(" Reject");
                      digitalWrite(Rejector, LOW);// ส่ง Logic 0 เพื่อให้ Rejector ทำงาน เปรียบเสมือน การ กดสวิตช์
                      delay(100);  //หน่วงเวลาขาลง นาน 100 มิลลิเซค
                      digitalWrite(Rejector, HIGH);
                      delay(1000);
                      analogWrite(enB, 130); // ส่งสัญญาณ PWM 0-255 = 0-100% เพื่อควบคุมความเร็วสายพานตัวที่1
                      analogWrite(enA, pwmOutput); // ส่งสัญญาณ PWM 0-255 = 0-100% เพื่อควบคุมความเร็วสายพานตัวที่2 อยู่บนโหลดเซลล์
                  }
               }
}

ดาวน์โหลด

  • คู่มือการใช้งานชุดทดลอง Automation Conveyor
  • https://www.dropbox.com/sh/65s1bco53zf2zii/AACtUNL04D5q8IjNrlkuwFP5a?dl=0
  • https://www.dropbox.com/sh/125h1rywzbicczl/AAA9kOqgjyV-gbKzEt3AkcCHa?dl=0

Wiring AT201

 

เครื่องตรวจสอบน้ำหนักบนสายพาน ใช้เพื่อตรวจสอบน้ำหนักของผลิตภัณฑ์ชิ้นเดียวที่มีลักษณะใกล้เคียงกัน
oplus_0

เครื่องตรวจสอบน้ำหนักบนสายพาน ใช้เพื่อตรวจสอบน้ำหนักของผลิตภัณฑ์ชิ้นเดียวที่มีลักษณะใกล้เคียงกัน

ข้อมูลเพิ่มเติม

น้ำหนัก 3000 กรัม
ขนาด 40 × 120 × 30 เซนติเมตร
ความยาว (Length)

60cm, 100cm

รีวิว

ยังไม่มีบทวิจารณ์

เฉพาะลูกค้าที่เข้าสู่ระบบ และเคยซื้อสินค้าชิ้นนี้แล้วเท่านั้น ที่เขียนบทวิจารณ์ได้