คำอธิบาย
ชุดทดลองตรวจจับวัตถุบนสายพานลำเลียง Automation Detect Photoelectric Infrared Sensor 4 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
- เซนเซอร์โฟโตอิเล็คทริคอินฟราเรด Infrared Photoelectric Sensors
- ชุดผลักชิ้นงาน Rejector แบบใช้ Step motor
- บอร์ด Relay Module 4CH
- ชิ้นงานสำหรับทดสอบ 6 เซต
- สกรูเทอร์มินอล Screw Terminal สำหรับ Wiring สายไฟ
- สวิตชิ่งพาวเวอร์ซัพพลาย + สายไฟ AC Power Cord
- ชุดติดตั้งบนแผ่นพลาสวูด
- เครื่องจ่ายชิ้นงานอัตโนมัติ Automatic Dispenser 06
การใช้ Photoelectric sensors ตรวจจับชิ้นงาน
Photoelectric sensors เป็นเซนเซอร์ใช้ตรวจจับวัตถุที่อยู่ห่างออกไประยะทางตรวจจับแตกต่างกันไปตาม P/N: ของเซนเซอร์ตัวนั้นๆ Photoelectric sensors โดยมากก็จะสามารถตรวจจับวัตถุได้ในระยะ 3cm – 80cm โดยประมาณ ทั้งนี้ โฟโตอิเล็กทริคเซ็นเซอร์ ทำงานโดยใช้หลัก การใช้แสงสะท้อนเพื่อตรวจจับวัตถุ ซึ่งโฟโตอิเล็กทริคเซ็นเซอร์สามารถนำมาตรวจจับวัตถุได้เกือบทุกชนิด.
- สายสีน้ำตาล +VCC DC5V
- สายสีน้ำเงิน GND
- สายสีดำ OUTPUT / NPN NO
Wiring Diagram
https://oshwlab.com/s2insupply/at505-automation-dispenser
AT505 Arduino Code
https://drive.google.com/drive/folders/1I4J1xD_lfsvsVsof-6c9arWDOoFsuBEl?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 76 77 78 |
// โปรแกรมนี้การทำงานคือ ทุกครั้งที่เซนเซอร์ตรวจับเจอชิ้นงาน จะส่งสัญญาณไปยังตัวผลัก ให้ผลักชิ้นงานออก // ต่อเซนเซอร์ตัวเดียว มีตัวผลักชิ้นงาน #define in3 6 //ขาควบคุม L298 #define in4 7 //ขาควบคุม L298 #define enB 8 //ขาควบคุม L298 int Sensor_1 = 9; //ต่อเซนเซอร์เข้าที่ขา 9 พร็อกซิมิตี้เซนเซอร์ int Rejector = 10; //ต่อเข้ากับตัวผลักชิ้นงาน int Dispensor = 11; //ต่อเข้ากับตัวปล่อยชิ้นงาน 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);// } } |
รีวิว
ยังไม่มีบทวิจารณ์