คำอธิบาย
การทดลองตรวจจับและคัดแยกโลหะบนสายพานลำเลียง
ระบบอัตโนมัติ หรือ Automation ประกอบด้วย Hardware และ Software ที่ทำงานร่วมกัน ให้สามารถควบคุมการทำงาน ของระบบเป็นไปแบบอัตโนมัติ ระบบอัตโนมัติ นั้นจะเกี่ยวข้องกับ ระบบควบคุม Control System รวมถึงวิศวกรรมแมคคาทรอนิกส์และหุ่นยนต์
เนื้อหาการทดลองประกอบด้วย
- การทดลองตรวจจับโลหะ
- การทดลองคัดแยกโลหะบนสายพานลำเลียง
มีอะไรเตรียมไว้ให้ในชุด (อุปกรณ์ในชุดติดตั้งบนแผ่นพลาสวูด)
- 1pcs x สายพานลำเลียง CONV-DC12V
- 1pcs x บอร์ด Arduino Uno R3 Compatible CH340
- 1pcs x RJ0001 ชุดผลักชิ้นงานไฟฟ้าสเตปมอเตอร์ Electric Pusher Rejector DC12V
- 1pcs x เซนเซอร์ตรวจจับโลหะ Inductive Proximity Sensor Detection 08mm NPN NO
- 1pcs x อุปกรณ์ติดตั้งฐานยึด ขายึด ที่ยึด Sensor Bracket Mounting Proximity M18
- 1pcs x บอร์ดขับมอเตอร์ DC Motor Driver L298N
- 1pcs x อะแดปเตอร์แปลงไฟ AC-DC Switching Power Supply Adaptor DC12V
- 1pcs x คอนเนคเตอร์ เทอร์มินอลไฟฟ้า Screw Terminal Block 12CH TB1512 15A/600V
- 1pcs x อุปกรณ์เชื่อมต่อและสายไฟ
- 1pcs x อุปกรณ์ติดตั้งฐาน Plastwood
หลักการทำงาน
- ชุดทดลองคัดแยกโลหะบนสายพานลำเลียง เพื่อแยกชิ้นงานที่เป็นโลหะออกจากชิ้นงานที่ไม่ใช่โลหะ โดยผู้ทดลองจะเข้าใจถึงการทำงาน การควบคุมแบบ Manual และการควบคุมแบบ Auto เพื่อเป็นพื้นฐานไปสู่ ระบบควบคุมอุตสาหกรรม อีกทั้งยังก่อให้เกิดทักษะ การคิดอย่างมีระบบ ช่วยในการออกแบบและประยุกต์ใช้ วัสดุ, เครื่องมือ, กระบวนการ
เงื่อนไขการทำงาน
- เมื่อ Inductive Proximity Sensor ตรวจจับชิ้นงานที่เป็นโลหะ
- Arduino จะสั่งให้อุปกรณ์ผลักชิ้นงาน Rejector ผลักชิ้นงานออก เพื่อการคัดแยกโลหะ
- หากชิ้นงานไม่ใช่โลหะ ชิ้นงานจะไหลผ่านไปยังปลายสายพาน
อินพุทจากพร็อกซิมิตี้เซนเซอร์ (Inductive Proximity Sensor)
- พร็อกซิมิตี้เซนเซอร์แบบ อาศัยหลักการเปลี่ยนแปลงค่าความเหนี่ยวนำ ใช้เพื่อตรวจจับวัตถุที่เป็นโลหะ
เอาท์พุทเพื่อการคัดแยก
- อุปกรณ์ผลักชิ้นงาน Rejector แบบทำงานด้วยไฟฟ้า 1 Set
เอาท์พุทเพื่อการควบคุมมอเตอร์
- บอร์ดขับมอเตอร์ DC Motor Driver L298N
Wiring Diagram
AT400L Arduino Code
1 |
https://drive.google.com/drive/folders/1y4Lh41RQ9m8f8AIww4bT3dLlQHA_R3b5?usp=sharing |
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 |
// โปรแกรมนี้การทำงานคือ ทุกครั้งที่เซนเซอร์ตรวจ จับเจอชิ้นงาน จะส่งสัญญาณไปยังตัวผลัก Rejector ให้ผลักชิ้นงานออก // ต่อเซนเซอร์ตัวเดียว มีตัวผลักชิ้นงาน #define enA 6 //ขาควบคุม Speed L298 #define in1 7 //ขาควบคุม Direction L298 #define in2 8 //ขาควบคุม Direction L298 int Sensor_1 = 9; // ต่อพร็อกซิมิตี้เซนเซอร์เข้าที่ขา D9 int Rejector = 10; // ต่อเข้ากับตัวผลักชิ้นงาน D10 int Sensor_Value = 0; //เก็บค่าที่อ่านจากเซนเซอร์ int Output_Value = 0; int Count_Value = 0; int Flag_count = 0; int rotationDirection = 0; // ตัวแปรกำหนดทิศทางการหมุนสายพาน int delay_Rejector = 1500; // หน่วงเวลาหลังจากเจอชิ้นงาน ค่อยผลัก void setup(){ pinMode(enA, OUTPUT); //กำหนดเป็นเอาต์พุต pinMode(in1, OUTPUT); //กำหนดเป็นเอาต์พุต pinMode(in2, OUTPUT); //กำหนดเป็นเอาต์พุต // กำหนดขาอินพุตมีพูลอัพภายในขาของไมโครคอนโทรลเลอร์ pinMode(Sensor_1, INPUT_PULLUP); // Sensor configure Sensor_1 (pin 9) as an input and enable the internal pull-up resistor pinMode(Rejector, OUTPUT); // กำหนดขาสำหรับส่งสัญญาณไปยังตัวผลักชิ้นงาน ให้เป็นเอาต์พุต digitalWrite(Rejector, HIGH); // สั่งลอจิก High ยังไม่สั่งผลัก //กำหนดค่าเริ่มต้นของทิศทางการหมุนสายพาน digitalWrite(in1, LOW); digitalWrite(in2, HIGH); } void loop(){ //*************************************************************************************************** int pwmOutput = 255; //set speed conveyor analogWrite(enA, pwmOutput); // ส่งสัญญาณ PWM 0-255 = 0-100% เพื่อควบคุมความเร็วสายพาน rotationDirection = 0; // 0 = สายพานเคลื่อนไปทางซ้าย 1 = สายพานเคลื่อนไปทางขวา if (rotationDirection == 0) // สายพานเคลื่อนไปทางซ้าย { digitalWrite(in1, HIGH); digitalWrite(in2, LOW); } if (rotationDirection == 1) // สายพานเคลื่อนไปทางขวา { digitalWrite(in1, LOW); digitalWrite(in2, HIGH); } //************************************************************************************************** Sensor_Value = digitalRead(Sensor_1); //อ่านค่าจากขา 9 ที่เซนเซอร์ตรวจจับชิ้นงานต่ออยู่ if(Sensor_Value == LOW) // ถ้าอ่านได้ลอจิก 0 คือ Sensor_1 เจอชิ้นงานแล้ว { delay(delay_Rejector); // รอเวลาให้ชิ้นงานวิ่งไปใกล้ Rejector สามารถเปลี่ยนแปลงค่าให้เหมาะสมกับความเร็วสายพาน digitalWrite(Rejector, LOW); // ส่ง Logic 0 เพื่อให้ Rejector ทำงาน เปรียบเสมือนการกดสวิตช์ delay(100); //หน่วงเวลาขาลง นาน 100 มิลลิเซค digitalWrite(Rejector, HIGH); // เซตสัญญาณกลับมาเป็น HIGH เหมือนเดิม } } |
วิดีโอ
รีวิว
ยังไม่มีบทวิจารณ์