คำอธิบาย
ชุดเรียนรู้+ชุดทดลอง ตรวจจับและคัดแยกโลหะบนสายพานลำเลียง
ระบบอัตโนมัติ หรือ Automation ประกอบด้วย Hardware และ Software ที่ทำงานร่วมกัน ให้สามารถควบคุมการทำงาน ของระบบเป็นไปแบบอัตโนมัติ ระบบอัตโนมัติ นั้นจะเกี่ยวข้องกับ ระบบควบคุม Control System รวมถึงวิศวกรรมแมคคาทรอนิกส์และหุ่นยนต์
การทดลองประกอบด้วย
- การทดลองตรวจจับโลหะ
- การทดลองคัดแยกโลหะบนสายพานลำเลียง
- การควบคุมความเร็วสายพานมอเตอร์กระแสตรงด้วยบอร์ด รีเลย์
มีอะไรเตรียมไว้ให้ในชุด (อุปกรณ์ในชุดติดตั้งบนแผ่นพลาสวูด)
- 1pcs x สายพานลำเลียง CONV DC12V
- 1pcs x บอร์ด Arduino Uno R3 Compatible CH340
- 1pcs x ชุดผลักชิ้นงานไฟฟ้าสเตปมอเตอร์ Electric Pusher Rejector DC12V
- 1pcs x พร็อกซิมิตี้เซนเซอร์ แบบ Inductive Proximity Sensor สำหรับตรวจจับโลหะ NPN
- 1pcs x Sensor Bracket Mounting Proximity
- 1pcs x บอร์ดรีเลย์ 5V 2CH
- 1pcs x อะแดปเตอร์แปลงไฟ AC-DC Switching Power Supply Adaptor DC12V
- 1pcs x สกรูเทอร์มินอล Screw Terminal สำหรับ Wiring สายไฟ
- 1pcs x อุปกรณ์ติดตั้งฐาน Plastwood
หลักการทำงาน
ชุดทดลองคัดแยกโลหะบนสายพานลำเลียง เพื่อแยกชิ้นงานที่เป็นโลหะออกจากชิ้นงานที่ไม่ใช่โลหะ โดยผู้ทดลองจะเข้าใจถึงการทำงาน การควบคุมแบบ Manual และการควบคุมแบบ Auto เพื่อเป็นพื้นฐานไปสู่ ระบบควบคุมอุตสาหกรรม อีกทั้งยังก่อให้เกิดทักษะ การคิดอย่างมีระบบ ช่วยในการออกแบบและประยุกต์ใช้ วัสดุ, เครื่องมือ, กระบวนการ
เงื่อนไข
- เมื่อ Inductive Proximity Sensor ตรวจจับชิ้นงานที่เป็นโลหะ
- Arduino จะสั่งให้อุปกรณ์ผลักชิ้นงาน Rejector ผลักชิ้นงานออก เพื่อการคัดแยกโลหะ
- หากชิ้นงานไม่ใช่โลหะ งานจะไหลผ่านไปยังปลายสายพาน
อินพุทจากพร็อกซิมิตี้เซนเซอร์ (Inductive Proximity Sensor)
- พร็อกซิมิตี้เซนเซอร์แบบ อาศัยหลักการเปลี่ยนแปลงค่าความเหนี่ยวนำ ใช้เพื่อตรวจจับวัตถุที่เป็นโลหะ
เอาท์พุทเพื่อการคัดแยก
- อุปกรณ์ผลักชิ้นงาน Rejector แบบทำงานด้วยไฟฟ้า 1 Set
Wiring Diagram
โค้ด Arduino Code
const int Sensor1 = 2; // ต่อเซนเซอร์ตัวที่ 1
const int Reject1 = 4; // สั่งตัวผลักชิ้นงาน
const int Relay_1 = 8; // สั่ง Relay_1 active low
//เมื่อเซนเซอร์เจอชิ้นงาน จะหน่วงเวลาให้ชิ้นงานเคลื่อนที่ถึงตัวผลัก แล้วสั่งให้ตัวผลักทำงาน
int Sensor1_State; // the current reading from the input pin
int lastButton_State = LOW; // the previous reading from the input pin
unsigned long lastDebounceTime = 0; // the last time the output pin was toggled
unsigned long debounceDelay = 50; // the debounce time; increase if the output flickers
void setup() {
pinMode(Sensor1, INPUT_PULLUP);
pinMode(Reject1, OUTPUT);
pinMode(Relay_1, OUTPUT);
// set initial state
digitalWrite(Reject1, HIGH);
Serial.begin(9600);
}
void loop() { // read the state of the switch into a local variable:
digitalWrite(Relay_1, LOW); // สั่งให้รีเลย์ทำงานจ่ายไฟให้สายไฟหมุน
int reading1 = digitalRead(Sensor1); // อ่านค่าจากเซนเซอร์
if (reading1 != lastButton_State) { // reset the debouncing timer
lastDebounceTime = millis();
Serial.println(reading1);
}
if ((millis() - lastDebounceTime) >= debounceDelay) // >= หน่วงเวลาป้องกันสัญญาณรบกวน คือต้องมีค่าเวลามากกว่าตัวแปร debounceDelay เพื่อให้แน่ใจว่ามีชิ้นงานจริงๆ ไม่ใช่สัญญาณรบกวน
{
if (reading1 != Sensor1_State)
{
Sensor1_State = reading1;
if (Sensor1_State == LOW) // ยืนยันว่าเซนเซอร์ตรวจจับชิ้นงานได้จริงๆ เป็น Active Low
{
delay(700); // หน่วงเวลา 500 = 1/2 s, 1000 = 1s, 2000 = 2s ให้ชิ้นงานเคลื่อนไปถึงตัวผลัก
digitalWrite(Reject1, LOW); // สั่งให้ตัวผลักชิ้นงานทำงาน
delay(50); // หน่วงเวลาสักครู่
digitalWrite(Reject1, HIGH); // กลับมาสถานะเดิม
}
}
}
lastButton_State = reading1;
}





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