คำอธิบาย
ชุดเรียนรู้+ชุดทดลองตรวจจับคัดแยกโลหะและวัตถุสี 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 M18
- 1pcs x เซ็นเซอร์ตรวจจับสีแบบสีแดงและสีเขียว RG22 RG32
- 1pcs x 3D Print Sensor Bracket Mounting RG22 RG32
- 1pcs x RY0512 บอร์ดรีเลย์ Relay Module 4CH Coil 12V Active 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 สกรูเทอร์มินอล 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
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; } |
รีวิว
ยังไม่มีบทวิจารณ์