คำอธิบาย
ชุดทดลองตรวจจับวัตถุบนสายพานลำเลียง
Automation Conveyor + Photoelectric sensors
ระบบอัตโนมัติ หรือ 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 ชุดผลักชิ้นงาน Rejector แบบใช้ Step motor
- 1pcs x บอร์ด L298 Motor Shield
- 1pcs x บอร์ด Arduino Uno
- 1pcs x ชุดสายไฟแบบหัวเสียบ DC Jack สำหรับต่อมอเตอร์
- 1pcs x ชิ้นงานสำหรับทดสอบสี ทดสอบโลหะ ทดสอบอโลหะ ทดสอบน้ำหนัก ทดสอบของเหลว ทรงกระบอก
- 1pcs x เซนเซอร์ Photoelectric ติดตั้งบนแผ่นเพลท
การใช้ Photoelectric Proximity sensors ตรวจจับชิ้นงาน

- สายสีน้ำตาล : +5V
- สายสีน้ำเงิน : GND
- สายสีดำ : DIGITAL OUTPUT / NPN normally open (Active Low) ต่อ DIGITAL OUTPUT เข้ากับขา Analog ของ Arduino Uno
Photoelectric sensors เป็นเซนเซอร์ใช้ตรวจจับวัตถุที่อยู่ห่างออกไประยะทางตรวจจับแตกต่างกันไปตาม P/N: ของเซนเซอร์ตัวนั้นๆ Photoelectric sensors โดยมากก็จะสามารถตรวจจับวัตถุได้ในระยะ 3cm – 80cm โดยประมาณ ทั้งนี้ โฟโตอิเล็กทริคเซ็นเซอร์ ทำงานโดยใช้หลัก การใช้แสงสะท้อนเพื่อตรวจจับวัตถุ ซึ่งโฟโตอิเล็กทริคเซ็นเซอร์สามารถนำมาตรวจจับวัตถุได้เกือบทุกชนิด.
โค้ด Arduino
int Speed = 255; // กำหนด Speed 0-255 ความเร็วสายพาน
เมื่อ Photoelectric เจอชิ้นงานแล้ว
รอเวลาให้ชิ้นงานวิ่งไปใกล้ Rejector สามารถเปลี่ยนแปลงค่าให้เหมาะสมกับความเร็วสายพาน
ส่ง Logic 0 เพื่อให้ Rejector ทำงาน เปรียบเสมือน การ กดสวิตช์
ส่งสัญญาณไปยังวงจรเคาท์เตอร์
หน่วงเวลาขาลง นาน 100 มิลลิเซค
int E1 = 10; // Speed control Motor A
int E2 = 11; // Speed control Motor B
int M1 = 12; // direction control Motor A
int M2 = 13; // direction control Motor B
int sensor_A = A0; //Uno Analog Pin A0 for
int sensor_B = A2; //Uno Analog Pin A2
int Buzzer = 4; //Uno Digital Pin 4 for alarm
int Rejector = 9; //Uno Digital Pin 9 for Rejector
int SensorValue_A = 0;
int SensorValue_B = 0;
int outputValue = 0;
int Count_Value = 0;
int flag_count = 0;
int Speed = 255; // กำหนด Speed 0-255 ความเร็วสายพาน
int delay_injector= 2500; //หน่วงเวลาหลังจากเจอชิ้นงาน ค่อยผลัก
void setup()
{
pinMode(M1, OUTPUT);
pinMode(M2, OUTPUT);
pinMode(Buzzer, OUTPUT);
pinMode(Rejector, OUTPUT);//Rejector
digitalWrite(Rejector, HIGH);
pinMode(A5, OUTPUT);
digitalWrite(A5, HIGH);
Serial.begin(9600);
}
void loop()
{
SensorValue_A = analogRead(sensor_A);
// map it to the range of the analog out:
//SensorValue_A = map(SensorValue_A, 0, 1023, 0, 255);
//Serial.println(SensorValue_A);
// delay(100);
if(SensorValue_A > 128) // sensor_A ไม่เจอชิ้นงาน
{
flag_count=0;
digitalWrite(M1, HIGH); // direction Motor A
digitalWrite(M2, LOW); // direction Motor B
analogWrite(E1, Speed); // อ่านค่า Speed ที่กำหนดไว้ เพื่อควบควม Motor A
analogWrite(E2, Speed); // อ่านค่า Speed ที่กำหนดไว้ เพื่อควบควม Motor B
}
else // sensor_A เจอชิ้นงานแล้ว
{
delay(delay_injector); // รอเวลาให้ชิ้นงานวิ่งไปใกล้ Rejector สามารถเปลี่ยนแปลงค่าให้เหมาะสมกับความเร็วสายพาน
digitalWrite(Rejector, LOW);// ส่ง Logic 0 เพื่อให้ Rejector ทำงาน เปรียบเสมือน การ กดสวิตช์
digitalWrite(A5, LOW);// ส่งสัญญาณไปยังวงจรเคาท์เตอร์
delay(100); //หน่วงเวลาขาลง นาน 100 มิลลิเซค
digitalWrite(Rejector, HIGH);
digitalWrite(A5, HIGH);
}
}






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