คำอธิบาย
ชุดทดลองตรวจจับวัตถุบนสายพานลำเลียง 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 และอื่นๆ
- เอาท์พุท – เช่นวาล์ว, มอเตอร์, หลอดไฟ, ลำโพง และอื่นๆ
ในชุดประกอบด้วย (อุปกรณ์ในชุดติดตั้งบนแผ่นพลาสวูด)
- 1pcs x สายพานลำเลียง Mini Conveyor
- 1pcs x ชุดบอร์ดควบคุม Arduino
- 1pcs x เซนเซอร์โฟโตอิเล็คทริคอินฟราเรด Infrared Photoelectric Sensors
- 1pcs x ชุดผลักชิ้นงาน Rejector แบบใช้ Step motor
- 1pcs x บอร์ด Relay Module 4CH
- 1pcs x ชิ้นงานสำหรับทดสอบ 6 เซต
- 1pcs x สกรูเทอร์มินอล Screw Terminal สำหรับ Wiring สายไฟ
- 1pcs x สวิตชิ่งพาวเวอร์ซัพพลาย + สายไฟ AC Power Cord
- 1pcs x ชุดติดตั้งบนแผ่นพลาสวูด
- 1pcs x เครื่องจ่ายชิ้นงานอัตโนมัติ 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
// โปรแกรมนี้การทำงานคือ ทุกครั้งที่เซนเซอร์ตรวจับเจอชิ้นงาน จะส่งสัญญาณไปยังตัวผลัก ให้ผลักชิ้นงานออก
// ต่อเซนเซอร์ตัวเดียว มีตัวผลักชิ้นงาน
#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);//
}
}





รีวิว
ยังไม่มีบทวิจารณ์