คำอธิบาย
ชุดทดลองตรวจสอบน้ำหนักบนสายพานลำเลียง Automation Conveyor + Load cell Sensor Loadcell
ระบบอัตโนมัติ หรือ Automation ประกอบด้วย Hardware และ Software ที่ทำงานร่วมกัน ให้สามารถควบคุมการทำงาน ของระบบเป็นไปแบบอัตโนมัติ ระบบอัตโนมัติ นั้นจะเกี่ยวข้องกับ ระบบควบคุม Control System รวมถึงวิศวกรรมแมคคาทรอนิกส์และหุ่นยนต์พื้นฐานของระบบอัตโนมัติประกอบด้วยส่วนหลักๆคือ
- อินพุทจากเซนเซอร์ต่างๆ เซ็นเซอร์วัดความดัน Pressure sensor, เซ็นเซอร์อุลตราโซนิค Ultrasonic sensor , เซ็นเซอร์ความชื้น Humidity sensor, เซ็นเซอร์วัดก๊าซ Gas sensor, เซ็นเซอร์ตรวจจับการเคลื่อนไหวแบบพีไออาร์ PIR motion sensor, เซ็นเซอร์วัดความเร่ง Acceleration sensor, เซ็นเซอร์วัดแรง Force sensor, เซ็นเซอร์สี color sensor, เซ็นเซอร์เซ็นเซอร์วัดมุมและการหมุน gyro sensor, เซ็นเซอร์อัลตราโซนิก ultrasonic sensor และอื่นๆเช่น เทอร์โมไพล์
- การสื่อสาร – สายเคเบิล USB, RS485, Wi-Fi และอื่นๆ
- ตัวควบคุม เช่น MCU และอื่นๆ
- เอาท์พุท – เช่นวาล์ว, มอเตอร์, หลอดไฟ, ลำโพง และอื่นๆ
ในชุดประกอบด้วย
- 1pcs x สายพานลำเลียง Mini Conveyor 50×06-DC-White
- 1pcs x สายพานลำเลียง Mini Conveyor 30×06-DC ติดตั้ง Weight Sensor (Load Cell)
- 1pcs x 20 Weight Sensor เพื่องานชั่งน้ำหนักแบบดิจิตอล ติดตั้งด้านล่างสายพานลำเลียง
- 1pcs x โมดูลขยายสัญญาณ Weight Sensor (Load Cell) HX711
- 1pcs x ชุดผลักชิ้นงาน Rejector แบบใช้ Step motor 1 ชุด
- 1pcs x บอร์ด Arduino Uno
- 1pcs x ชิ้นงานสำหรับทดสอบสี ทดสอบโลหะ ทดสอบอโลหะ ทดสอบน้ำหนัก ทดสอบของเหลว ทรงกระบอก
- 1pcs x เซนเซอร์ Proximity Photoelectric Sensor
- 1pcs x ชุด Counter แสดงผลนับ 7-Segmen
- 1pcs x อะแดปเตอร์จ่ายไฟ DC 12V 5A
- 1pcs x บอร์ด L298P Shield
การใช้ 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
- Load cell สายสีแดง Power : ต่อ HX711 E +
- Load cell สายสีดำ GND: ต่อ HX711 E-
- Load cell สายสีเขียว Signal + : ต่อ HX711 A+
- Load cell สายสีขาว Signal – : ต่อ HX711 A –
โค้ด 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





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





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