คำอธิบาย
ชุดทดลองตรวจจับวัตถุบนสายพานลำเลียง Automation Detect Photoelectric Infrared Sensor 2 Relay
ระบบอัตโนมัติ หรือ 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, WiFi และอื่นๆ
- ตัวควบคุม เช่น MCU และอื่นๆ
- เอาท์พุท – เช่นวาล์ว, มอเตอร์, หลอดไฟ, ลำโพง และอื่นๆ
มีอะไรเตรียมไว้ให้ในชุด (อุปกรณ์ในชุดติดตั้งบนแผ่นพลาสวูด)
- สายพานลำเลียง Mini Conveyor 30×6 DC
- ชุดบอร์ดควบคุม Arduino
- เซนเซอร์ตรวจจับโลหะ Inductive Proximity Sensor
- ชุดผลักชิ้นงาน Rejector แบบใช้ Step motor
- บอร์ด Relay Module 2CH
- สกรูเทอร์มินอล Screw Terminal สำหรับ Wiring สายไฟ
- อะแดปเตอร์จ่าย DC12V
- ชุดติดตั้งบนแผ่นพลาสวูด
- เครื่องจ่ายชิ้นงานอัตโนมัติ Automatic Dispenser 10
- ชิ้นงานสำหรับทดสอบ 10 เซต
ตารางกำหนด I/O Input, Output
Arduino UNO R3 Pin | Model AT405 | Comment |
D0 | ||
D1 | ||
D2 | Input | Inductive Proximity Sensor |
D3 | ||
D4 | Output | Relay, ผลักชิ้นงาน Rejector |
D5 | ||
D6 | ||
D7 | ||
D8 | ||
D9 | Output | Relay, จ่ายชิ้นงานอัตโนมัติ Automatic Dispenser |
D10 | ||
D11 | ||
D12 | ||
D13 |
การใช้ Inductive Proximity Sensor ตรวจจับชิ้นงานโลหะ
Inductive Proximity Sensor Switch เซนเซอร์ที่อาศัยหลักการสร้างสนามแม่เหล็กไฟฟ้าเพื่อตรวจจับความเหนี่ยวนำวัตถุที่เป็นโลหะ จึงสามารถใช้ตรวจจับวัตถุที่เป็นโลหะได้ Output NPN NO
แรงดัน DC12-24V Output Current 300mA Response Frequency 100Hz เส้นผ่าศูนย์กลาง 18mm /การติดตั้ง รูเจาะ M18
- สายสีน้ำตาล +VCC DC12V
- สายสีน้ำเงิน GND
- สายสีดำ OUTPUT / NPN NO
Wiring Diagram
https://oshwlab.com/s2insupply/at405-automation-dispenser-10-2relay-12v
AT405 Arduino Code
https://drive.google.com/drive/folders/1N1wDAgm6Kff_P7oTdnqlHq-EJYL3sfWD?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 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
// โปรแกรมนี้การทำงานคือ ทุกครั้งที่เซนเซอร์ตรวจับเจอชิ้นงาน จะส่งสัญญาณไปยังตัวผลัก ให้ผลักชิ้นงานออก // ต่อเซนเซอร์ตัวเดียว มีตัวผลักชิ้นงาน #define in3 6 //ขาควบคุม L298 #define in4 7 //ขาควบคุม L298 #define enB 8 //ขาควบคุม L298 int Sensor_1 = 2; //ต่อเซนเซอร์เข้าที่ขา 2 พร็อกซิมิตี้เซนเซอร์ int Rejector = 4; //ต่อเข้ากับตัวผลักชิ้นงาน int Dispensor = 9; //ต่อเข้ากับตัวปล่อยชิ้นงาน int SensorValue_A = 0; //เก็บค่าที่อ่านจากเซนเซอร์ int Output_Value = 0; int Count_Value = 0; int Flag_count = 0; int rotDirection = 0; //ตัวแปรกำหนดทิศทางการหมุนสายพาน int delay_Rejector= 2500; //หน่วงเวลาหลังจากเจอชิ้นงาน ค่อยผลัก 2500 คือ 2.5วินาที void setup(){ pinMode(enB, OUTPUT); //กำหนดเป็นเอาต์พุต pinMode(in3, OUTPUT); //กำหนดเป็นเอาต์พุต pinMode(in4, 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);//กำหนดขาสำหรับส่งสัญญาณไปยังตัวผลักชิ้นงาน ให้เป็นเอาต์พุต pinMode(Dispensor, OUTPUT);//กำหนดขาสำหรับส่งสัญญาณไปยังตัวปล่อยชิ้นงาน ให้เป็นเอาต์พุต digitalWrite(Rejector, HIGH);// สั่งลอจิก High ยังไม่สั่งผลัก digitalWrite(Dispensor, HIGH);// สั่งลอจิก High ยังไม่ปล่อยชิ้นงาน //ส่งสัญญาณไปทริกตัวปล่อยชิ้นงาน digitalWrite(Dispensor, LOW);// สั่งลอจิก LOW ปล่อยชิ้นงาน delay(100); //หน่วงเวลาขาลง นาน 100 มิลลิเซค digitalWrite(Dispensor, HIGH);// //กำหนดค่าเริ่มต้นของทิศทางการหมุนสายพาน digitalWrite(in3, LOW); digitalWrite(in4, HIGH); } void loop(){ //*************************************************************************************************** int pwmOutput = 255; //set speed conveyor analogWrite(enB, pwmOutput); // ส่งสัญญาณ PWM 0-255 = 0-100% เพื่อควบคุมความเร็วสายพาน rotDirection = 0; // 0 = สายพานเคลื่อนไปทางซ้าย 1=สายพานเคลื่อนไปทางขวา if (rotDirection == 0) // สายพานเคลื่อนไปทางซ้าย { digitalWrite(in3, HIGH); digitalWrite(in4, LOW); } if (rotDirection == 1) // สายพานเคลื่อนไปทางขวา { digitalWrite(in3, LOW); digitalWrite(in4, HIGH); } //************************************************************************************************** SensorValue_A = digitalRead(Sensor_1); //อ่านค่าจากขา 9 ที่เซนเซอร์ตรวจจับชิ้นงานต่ออยู่ if(SensorValue_A == LOW) // ถ้าอ่านได้ลอจิก Low คือ sensor_A เจอชิ้นงานแล้ว { delay(delay_Rejector); // รอเวลาให้ชิ้นงานวิ่งไปใกล้ Rejector สามารถเปลี่ยนแปลงค่าให้เหมาะสมกับความเร็วสายพาน //ส่งสัญญาณไปทริกตัวผลักชิ้นงาน digitalWrite(Rejector, LOW);// ส่ง Logic 0 เพื่อให้ Rejector ทำงาน เปรียบเสมือน การ กดสวิตช์ delay(100); //หน่วงเวลาขาลง นาน 100 มิลลิเซค digitalWrite(Rejector, HIGH); //เซตสัญญาณกลับมาเป็น high เหมือนเดิม //ส่งสัญญาณไปทริกตัวปล่อยชิ้นงาน digitalWrite(Dispensor, LOW);// สั่งลอจิก LOW ปล่อยชิ้นงาน delay(100); //หน่วงเวลาขาลง นาน 100 มิลลิเซค digitalWrite(Dispensor, HIGH);// } } |
รีวิว
ยังไม่มีบทวิจารณ์