คำอธิบาย
ชุดเรียนรู้+ชุดทดลองตรวจจับคัดแยกโลหะและวัตถุสี Automation Metal+Color Red Green Sensor+Rejector+Relay+Tower Light
ระบบอัตโนมัติ หรือ Automation ประกอบด้วย Hardware และ Software ที่ทำงานร่วมกัน ให้สามารถควบคุมการทำงาน ของระบบเป็นไปแบบอัตโนมัติ ระบบอัตโนมัติ นั้นจะเกี่ยวข้องกับ ระบบควบคุม Control System รวมถึงวิศวกรรมแมคคาทรอนิกส์และหุ่นยนต์

การทดลอง
- ตรวจจับโลหะ + คัดแยกโลหะบนสายพานลำเลียง
- ตรวจจับวัตถุสีสีแดงและสีเขียว + คัดแยกวัตถุสีแดงและสีเขียวบนสายพานลำเลียง
- การควบคุมความเร็วสายพานมอเตอร์กระแสตรงด้วยบอร์ด รีเลย์
- การควบคุมไฟแสดงผล LED Tower Light ด้วยบอร์ด รีเลย์
มีอะไรเตรียมไว้ให้ในชุด (อุปกรณ์ในชุดติดตั้งบนแผ่นพลาสวูด)
- 1pcs x สายพานลำเลียง DC Conveyor CONV-50×06-DC
- 1pcs x บอร์ด Arduino Uno R3 Compatible CH340
- 2pcs x ชุดผลักชิ้นงานไฟฟ้าสเตปมอเตอร์ Electric Pusher Rejector DC12V
- 1pcs x พร็อกซิมิตี้เซนเซอร์ แบบ Inductive Proximity Sensor NPN สำหรับตรวจจับโลหะ
- 1pcs x 3D Print Sensor Bracket Mounting Proximity
- 1pcs x เซ็นเซอร์ตรวจจับสีแบบสีแดงและสีเขียว RG22 RG32
- 1pcs x 3D Print Sensor Bracket Mounting RG22 RG32
- 1pcs x RY0504-2 บอร์ดรีเลย์ Relay Module Coil 5V 4CH Active H/L Contact AC250V/10A
- 1pcs x PA1205 อะแดปเตอร์แปลงไฟ AC-DC Adaptor DC12V/5A
- 1pcs x LTDU01 ไฟสัญญาณเตือนแสดงสถานะทาวเวอร์ไลท์ LED Tower Light Lamp BEM-X-50-3T-D DC12-24V LED Red, Yellow, Green
- 1pcs x TB1512 สกรูเทอร์มินอล Screw Terminal สำหรับ Wiring สายไฟ
- 1pcs x อุปกรณ์ติดตั้งฐาน Plastwood
หลักการทำงาน
- ชุดทดลองคัดแยกโลหะบนสายพานลำเลียง เพื่อแยกชิ้นงานที่ เป็นโลหะ ออกจาก ชิ้นงานที่ไม่ใช่โลหะ เข้าใจถึงการทำงาน การควบคุมแบบ Manual และการควบคุมแบบ Automation เพื่อเป็นพื้นฐานไปสู่การเข้าใจ ระบบควบคุมอุตสาหกรรม Industrial Control System อีกทั้งยังก่อให้เกิดทักษะ กระตุ้นความคิด การคิดอย่างมีระบบ (System Thinking) ช่วยในการออกแบบและประยุกต์ใช้ วัสดุ, โครงสร้าง, เครื่องจักร, เครื่องมือ, ระบบ และ กระบวนการ
เงื่อนไข
- เมื่อ เซ็นเซอร์แสงอินฟราเรด ตรวจจับชิ้นงานได้ และ Inductive ตรวจจับวัตถุเป็นโลหะ
- Arduino จะสั่งให้อุปกรณ์ผลักชิ้นงาน Rejector ผลักชิ้นงานออก เพื่อการคัดแยก พร้อมสั่งไฟแสดงผล LED Tower Lamp
- หากตรวจจับชิ้นงานได้ แต่ไม่ใช่โลหะ ชิ้นงานจะไหลผ่านไปยังปลายสายพาน
อินพุทจาก พร็อกซิมิตี้เซนเซอร์
- เซ็นเซอร์ตรวจจับวัตถุ Infrared Photoelectric Sensors ใช้หลักการสะท้อนของแสงอินฟราเรด เพื่อตรวจจับวัตถุ
- พร็อกซิมิตี้เซนเซอร์ Inductive Proximity Sensor สำหรับตรวจจับโลหะ อาศัยหลักการเปลี่ยนแปลงค่าความเหนี่ยวนำ ใช้เพื่อตรวจจับวัตถุที่เป็นโลหะ
เอาท์พุทเพื่อการนับการคัดแยกและการแสดงผล
- อุปกรณ์ผลักชิ้นงาน Rejector 1 ชิ้น
- ไฟแสดงผล LED Tower Light
Wiring Diagram
- AT409X V 2013 https://oshwlab.com/s2insupply/at409x-automation-metal-color
- AT409X V 2014 https://oshwlab.com/s2insupply/at409-automation-metal-color-2024
AT409X โค้ด Arduino Code
const int MetelSensor = 2; // เซนเซอร์ ตรวจจับโลหะ
const int ColorSensor = 3; // เซนเซอร์ ตรวจจับสี
const int Rejector_R1 = 4; // Rejector_R1
const int Rejector_R2 = 5; // Rejector_R2
const int Lamp_R = 8; // หลอดไฟสีเแดง
const int Lamp_G = 9; // หลอดไฟสีเขียว
const int Lamp_Y = 10; // หลอดไฟสีเหลือง
const int MotorConveyor = 11; // MotorConveyor
int Photo_Lo_State; // the value reading from the input pin 1
int Photo_Hi_State; // the value reading from the input pin 2
int lastButtonState = LOW;
int lastButtonState2 = LOW;
unsigned long lastDebounceTime = 0; // the last time the output pin was toggled
unsigned long lastDebounceTime2 = 0;
unsigned long debounceDelay = 20; // the debounce time; increase if the output flickers
unsigned long Delay1 = 1800; // หน่วงเวลาให้ชิ้นงานเคลื่อนไปถึงตัวผลัก เหล็ก ออก
unsigned long Delay2 = 2300; // หน่วงเวลาให้ชิ้นงานเคลื่อนไปถึงตัวผลัก สีเขียว ออก
void setup() {
pinMode(MetelSensor, INPUT);
pinMode(ColorSensor, INPUT);
pinMode(Rejector_R1, OUTPUT);
pinMode(Rejector_R2, OUTPUT);
pinMode(MotorConveyor, OUTPUT);
pinMode(Lamp_R, OUTPUT);
pinMode(Lamp_G, OUTPUT);
pinMode(Lamp_Y, OUTPUT);
// Set initial state
digitalWrite(Rejector_R1, HIGH);
digitalWrite(Rejector_R2, HIGH);
digitalWrite(MotorConveyor, LOW); //สั่งสายพานหมุน
digitalWrite(Lamp_R, HIGH); // ปิดหลอดไฟ Lamp_R
digitalWrite(Lamp_Y, HIGH); // ปิดหลอดไฟ Lamp_Y
digitalWrite(Lamp_G, LOW); // ปิดหลอดไฟ Lamp_G
}
void loop() { // read the state of the switch into a local variable:
int reading = digitalRead(MetelSensor);
if (reading != lastButtonState) { // reset the debouncing timer
lastDebounceTime = millis();
}
if ((millis() - lastDebounceTime) > debounceDelay)
{
int reading_Hi = digitalRead(MetelSensor); // เซนเซอร์ ตรวจจับโลหะ
if(reading_Hi == LOW) // เจอโลหะ
{
digitalWrite(Lamp_R, LOW); // สั่งให้หลอดไฟ Lamp_R ติด
digitalWrite(Lamp_G, HIGH); // สั่งให้หลอดไฟ Lamp_G ดับ
delay(Delay1); // หน่วงเวลาให้ชิ้นงานเคลื่อนไปถึงตัวผลัก Rejector_R1
digitalWrite(MotorConveyor, HIGH); //สั่งสายพานหยุด
delay(300);
digitalWrite(Rejector_R1, LOW); // สั่งให้ตัวผลักชิ้นงาน Rejector_R1 ทำงาน
delay(50); // หน่วงเวลาสักครู่
digitalWrite(Rejector_R1, HIGH); // กลับมาสถานะเดิม
digitalWrite(MotorConveyor, LOW); //สั่งสายพานหมุน
delay(1000);
digitalWrite(Lamp_R, HIGH); // สั่งให้หลอดไฟดับ
digitalWrite(Lamp_G, LOW); // สั่งให้หลอดไฟ Lamp_G ติด
}
}
lastButtonState = reading;
//*************************************************************************************************
int readingColor = digitalRead(ColorSensor);
if (readingColor != lastButtonState2) { // reset the debouncing timer
lastDebounceTime2 = millis();
}
if ((millis() - lastDebounceTime2) > debounceDelay)
{
if(digitalRead(ColorSensor) == LOW) //เซนเซอร์ ตรวจจับสี เจอสี
{
digitalWrite(Lamp_Y, LOW); // สั่งให้หลอดไฟ Lamp_Y ติด
digitalWrite(Lamp_G, HIGH); // สั่งให้หลอดไฟ Lamp_G ดับ
delay(Delay2); // หน่วงเวลาให้ชิ้นงานเคลื่อนไปถึงตัวผลัก Rejector_R2
digitalWrite(MotorConveyor, HIGH); //สั่งสายพานหยุด
delay(400);
digitalWrite(Rejector_R2, LOW); // สั่งให้ตัวผลักชิ้นงาน Rejector_R2 ทำงาน
delay(50); // หน่วงเวลาสักครู่
digitalWrite(Rejector_R2, HIGH); // กลับมาสถานะเดิม
digitalWrite(MotorConveyor, LOW); //สั่งสายพานหมุน
delay(1000);
digitalWrite(Lamp_Y, HIGH); // สั่งให้หลอดไฟดับ
digitalWrite(Lamp_G, LOW); // สั่งให้หลอดไฟ Lamp_G ติด
}
}
lastButtonState2 = readingColor;
}





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