คำอธิบาย
การทดลอง
- การทดลองตรวจจับวัตถุ
- การทดลองคัดแยกความสูงชิ้นงาน Hi-Lo Sorting 2 Rejector
- การทดลองตรวจจับวัตถุ โลหะ Metal Sensor
อุปกรณ์ในชุดติดตั้ง
- 1pcs สายพานลำเลียง CONV-DC12V
- เซนเซอร์ตรวจจับชิ้นงาน แบบ Photo Electric (เซนเซอร์แสงอินฟราเรด) 2 ชิ้น
- อุปกรณ์ผลักชิ้นงาน Rejector 2 ชิ้น
- บอร์ด Arduino UNO Compatible 1 ชิ้น
- บอร์ดขับ Relay Module
- จุดเชื่อมต่อสายไฟแบบสกรูเทอร์มินอล Screw Terminal
- อะแดปเตอร์จ่ายไฟ 12V 1 ชิ้น
- ไฟ ทาวเวอร์แลมป์ LED Tower Lamp 3 สี
- Inductive Proximity Sensor ตรวจจับโลหะ 1 ชิ้น
การทำงานระบบอัตโนมัติ ชุดทดลองตรวจจับและคัดแยกความสูงชิ้นงาน
Mini Automation Sorting height
- ชุดทดลองนี้จะเป็นการตรวจจับวัตถุ และสามารถคัดแยกวัตถุที่มีความสูง
- ชุดทดลองนี้สามารถตรวจจับวัตถุที่เป็นโลหะ ใช้ พร็อกซิมิตี้เซนเซอร์แบบ Inductive
โดยมีเงื่อนไข
1.เมื่อชิ้นงานมีความสูงได้ตามเกณฑ์
- ตัวควบคุม Arduino จะสั่งให้อุปกรณ์ผลักชิ้นงาน Rejector ตัวที่ 1 จะผลักชิ้นงานออก
- พร้อมไฟสีเขียวติด
2.เมื่อชิ้นงานมีความสูงน้อยกว่าเกณฑ์
- ชิ้นงาน จะถูกปล่อยผ่านไปบนสายผ่านลำเลียง ตัวควบคุม Arduino จะสั่ง Rejector ตัวที่ 2 ผลักชิ้นงานออก
- พร้อมไฟสีแดงติด
- เมื่อชิ้นงานเป็นโลหะจะมีไฟเตือนสีส้ม
อินพุทจากโฟโตอิเล็กทริค (เซ็นเซอร์แสงอินฟราเรด)
- ใช้แสงเพื่อตรวจจับวัตถุ สามารถตรวจจับวัตถุได้เกือบทุกชนิด ยกเว้นวัตถุที่มีความใสที่แสงส่องผ่านได้เช่นฟิล์มใสหรือแก้วใบใส เราสามารถใช้ Photo Electric พร็อกซิมิตี้เซนเซอร์ 2 ตัวเพื่อทำการคัดแยกชิ้นงานที่มีความสูงต่างกัน
- เมื่อเซ็นเซอร์ตัวล่างตรวจจับวัตถุได้แต่ตัวบนตรวจจับวัตถุไม่ได้เราถือว่าความสูงไม่ได้เกินมาตรฐานเราจะถือเป็นชิ้นงานที่อยู่ในเกณฑ์
- หากเซ็นเซอร์ตัวบนและตัวล่างตรวจจับชิ้นงานได้พร้อมกันเราจะถือว่าชิ้นงานนั้นมีความสูงมากเกินไป
- ชิ้นงานที่เหมาะสมในการทดสอบชิ้นงานตามเกณฑ์ควรมีขนาดความสูงไม่เกินไม่เกิน 3 cm
- ชิ้นงานที่มีขนาดสูงกว่าเกณฑ์ควรใช้ชิ้นงานที่มีขนาดความสูงมากกว่า 4 cm
อินพุทจากพร็อกซิมิตี้เซนเซอร์แบบ Inductive ใช้เพื่อตรวจจับวัตถุที่เป็นโลหะ
- ตรวจจับวัตถุที่เป็นโลหะ ใช้ พร็อกซิมิตี้เซนเซอร์แบบ Inductive
เอาท์พุทเพื่อการคัดแยกและแสดงผล
- อุปกรณ์ผลักชิ้นงาน Rejector 2 ชิ้น
- หลอดไฟ Tower Lamp 3 สี เพื่อการแสดงผล
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 |
const int Photo_Hi = 8; // เซนเซอร์ตัวบน const int Photo_Lo = 9; // เซนเซอร์ตัวล่าง const int Metal_Sensor = 10; // เซนเซอร์โลหะ const int Rejector_R1 = 2; const int Rejector_R2 = 3; const int LampG = 5; // ไฟเเขียว const int LampY = 6; // ไฟเหลือง const int LampR = 7; // ไฟแดง int reading2 = 0; int Photo_Hi_State; // the current reading from the input pin int Photo_Lo_State; // the current reading from the input pin int Metal_Sensor_State; // the current reading from the input pin int lastButtonState = LOW; // the previous reading from the input pin int lastButtonState2 = LOW; // the previous reading from the input pin unsigned long lastDebounceTime = 0; // the last time the output pin was toggled unsigned long debounceDelay = 50; // the debounce time; increase if the output flickers void setup() { pinMode(Photo_Hi, INPUT); pinMode(Metal_Sensor, INPUT); pinMode(Rejector_R1, OUTPUT); pinMode(Rejector_R2, OUTPUT); pinMode(LampR, OUTPUT); pinMode(LampY, OUTPUT); pinMode(LampG, OUTPUT); // set initial state digitalWrite(Rejector_R1, HIGH); digitalWrite(Rejector_R2, HIGH); digitalWrite(LampR, HIGH); //ปิดหลอดไฟ digitalWrite(LampY, HIGH); //ปิดหลอดไฟ digitalWrite(LampG, HIGH); //ปิดหลอดไฟ Serial.begin(9600); } void loop() { // read the state of the switch into a local variable: int reading1 = digitalRead(Photo_Lo); if (reading1 != lastButtonState) { // reset the debouncing timer lastDebounceTime = millis(); } reading2 = digitalRead(Metal_Sensor); //อ่านค่าเซนซอร์โลหะ if (reading2 != lastButtonState2) { // reset the debouncing timer lastDebounceTime = millis(); Metal_Sensor_State =1; //เก็บข้อมูลไว้เช็คกับเซนเซอร์ตัวล่าง } Serial.println(reading2); if ((millis() - lastDebounceTime) > debounceDelay) { if (reading1 != Photo_Lo_State) { Photo_Lo_State = reading1; if (Photo_Lo_State == LOW) { //เซนเซอร์ตัวล่างจับชิ้นงานได้ int reading_Hi = digitalRead(Photo_Hi);//อ่านค่าเซนซอร์ตัวบน if(reading_Hi==LOW)//เจอชิ้นงานสูง { digitalWrite(LampR, LOW); // สั่งให้หลอดไฟติด delay(2200); // หน่วงเวลาให้ชิ้นงานเคลื่อนไปถึงตัวผลัก digitalWrite(Rejector_R2, LOW); // สั่งให้ตัวผลักชิ้นงานทำงาน delay(50); // หน่วงเวลาสักครู่ digitalWrite(Rejector_R2, HIGH); // กลับมาสถานะเดิม digitalWrite(LampR, HIGH); // สั่งให้หลอดไฟดับ } else { if(Metal_Sensor_State==1) // { digitalWrite(LampY, LOW); // สั่งให้หลอดไฟติด delay(1500); // หน่วงเวลาให้ชิ้นงานเคลื่อนไปถึงตัวผลัก delay(50); // หน่วงเวลาสักครู่ digitalWrite(LampY, HIGH); // สั่งให้หลอดไฟดับ Metal_Sensor_State =0; } else//เจอชิ้นงานเตี้ย { digitalWrite(LampG, LOW); // สั่งให้หลอดไฟติด delay(1200); //หน่วงเวลาให้ชิ้นงานเคลื่อนไปถึงตัวผลัก digitalWrite(Rejector_R1, LOW); //สั่งให้ตัวผลักชิ้นงานทำงาน delay(50); //หน่วงเวลาสักครู่ digitalWrite(Rejector_R1, HIGH);//กลับมาสถานะเดิม digitalWrite(LampG, HIGH); // สั่งให้หลอดไฟดับ } } } } } lastButtonState = reading1; lastButtonState2 = reading2; } |
ไดอะแกรมรวม 701 ชุดเรียนรู้
https://www.dropbox.com/s/grdevl3cuiivj0r/Mini%20Automation%20701.pdf?dl=0
2. การต่อใช้งาน Tower light
3. การต่อใช้งาน Conveyor
4. การต่อใช้งาน บอร์ด Relay 4
5.การต่อสาย การต่อใช้งาน Infrared photoelectric sensor
- สายสีน้ำตาล : ไฟเลี้ยง + VCC
- สายสีน้ำเงิน : กราวด์ GND
- สายสีดำ : สัญญาณออก Signal Output
6. การต่อใช้งาน Inductive proximity sensors
รีวิว
ยังไม่มีบทวิจารณ์