คำอธิบาย
ชุดทดลองตรวจจับของเหลวบนสายพานลำเลียง Automation Conveyor + Proximity Sensor + Counter
ระบบอัตโนมัติ หรือ 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, Wi-Fi และอื่นๆ
- ตัวควบคุม เช่น MCU และอื่นๆ
- เอาท์พุท – เช่นวาล์ว, มอเตอร์, หลอดไฟ, ลำโพง และอื่นๆ
มีอะไรเตรียมไว้ให้ในชุด (อุปกรณ์ในชุดติดตั้งบนแผ่นพลาสวูด)
- สายพานลําเลียง CONV-50×06-DC24
- RJ0001 ชุดผลักชิ้นงานไฟฟ้าสเตปมอเตอร์ Electric Pusher Rejector DC12V
- BDMC04 บอร์ดอาดุยโน่ Arduino Uno R3 Compatible DIP IC CH340 USB Cable
- BDSP08 บอร์ดโมดูลควบคุมความเร็วมอเตอร์ PWM DC Motor Driver Speed Control L298P Arduino Uno Shield Blue
- SC1001 เซนเซอร์ตรวจจับของเหลว Capacitive Proximity Sensor Detect 10mm Adjust NPN NO LJC18A3-B-Z/BX
- SP8001 เซนเซอร์ตรวจจับวัตถุโฟโตอิเล็กทริกแบบอินฟราเรด Infrared Photoelectric Sensor M18 NPN-NO 5VDC DR-80 E18-D80NK
- PA1205 อะแดปเตอร์จ่ายไฟ 12V 1 เซต
- CNT112 คอนเนคเตอร์ เทอร์มินอลไฟฟ้า แบบสกรู Screw Terminal Block 12CH TB1512 15A/600V
- CB0004 สายไฟ Cable DC Jack 5.5×2.1mm-30cm-male
- CTPD04 เครื่องนับจำนวน ดิจิตอลเคาท์เตอร์ Preset Digital Counter 6Digit T9C-1PS-485
- RY0502 บอร์ดรีเลย์ 5V 2CH Coil 12V Active L Contact AC250V 10A
- PB0001 กล่องชิ้นงานพลาสติก Plastic Parts Box LWH 11X10X5 G335
- Plastwood-20mm-30x55mm
เอาท์พุทเพื่อการนับและการคัดแยก
- อุปกรณ์ผลักชิ้นงาน Rejector
- ชุด Counter แสดงผลนับ 7-Segment
การใช้ Capacitive Proximity sensors เพื่อการคัดแยกชิ้นงานที่เป็นของเหลว
- สายสีน้ำตาล : 6-24VDC
- สายสีน้ำเงิน : GND
- สายสีดำ : DIGITAL OUTPUT / NPN normally open (Active Low) ต่อ DIGITAL OUTPUT เข้ากับขา Analog ของ Arduino Uno
Capacitive Proximity sensors พร็อกซิมิตี้เซนเซอร์ชนิดเก็บประจุ ใช้หลักการเปลี่ยนแปลงของค่าความจุไฟฟ้า (คาปาซิแตนซ์) โดยการสร้างสนามไฟฟ้าสถิตย์ เพื่อตรวจจับ ค่าความจุไฟฟ้าระหว่างวัตถุกับเซนเซอร์ จะเปลี่ยนแปลงตาม ขนาด รูปร่าง และชนิดของวัตถุสามารถตรรวจจับระดับของของเหลวเกือบทุกชนิด นิยมใช้ตรวจจับระดับของเหลวในภาชนะทึบแสง เช่นปริมาณของเครื่องดื่มที่บรรจุในขวด ในเรื่องของระยะทางใช้งานตรวจจับวัตถุได้ในระยะใกล้

Wiring Diagram
https://oshwlab.com/s2insupply/302a-automation-metal-detect-l298-inductive-proximity-sensor
Arduino Code
ตัวอย่างโปรแกรมด้านล่างแสดงการตรวจจับชิ้นงานที่เป็นของเหลว (ขวดน้ำ)ระหว่างขวดน้ำ กับ ขวดเปล่า เมื่อ Capacitive Proximity Sensor เจอขวดน้ำ ระบบจะปล่อยผ่าน แต่เมื่อ Capacitive Proximity Sensor เจอขวดเปล่า ระบบจะรอเวลาให้ชิ้นงานวิ่งไปใกล้ Rejector และผลักขวดเปล่าออก
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 คาปาซิตีฟเซนเซอร์
int sensor_B = A1; // Uno Analog Pin A1 โฟโต้เซนเซอร์
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_B = analogRead(sensor_B);// โฟโต้เซนเซอร์
// map it to the range of the analog out:
SensorValue_B = map(SensorValue_B, 0, 1023, 0, 255);
//Serial.println(SensorValue_B);
if(SensorValue_B < 128) //โฟโต้เซนเซอร์ เจอขวด
{
SensorValue_A = map(SensorValue_A, 0, 1023, 0, 255);
//Serial.println(SensorValue_A);
delay(100); //หน่วงเวลา
SensorValue_A = analogRead(sensor_A);// คาปาซิตีฟเซนเซอร์
if(SensorValue_A > 128) //คาปาซิตีฟเช็คเจอว่า ขวดไม่มีน้ำ
{
delay(delay_injector); // รอเวลาให้ชิ้นงานวิ่งไปใกล้ Rejector สามารถเปลี่ยนแปลงค่าให้เหมาะสมกับความเร็วสายพาน
digitalWrite(Rejector, LOW);// ส่ง Logic 0 เพื่อให้ Rejector ทำงาน เปรียบเสมือน การ กดสวิตช์
digitalWrite(A5, LOW);// ส่งสัญญาณไปยังวงจรเคาท์เตอร์
delay(100); //หน่วงเวลาขาลง นาน 100 มิลลิเซค
digitalWrite(Rejector, HIGH);
digitalWrite(A5, HIGH);
}
else // ขวดมีน้ำ ไม่ต้องทำอะไร ปล่อยผ่าน
{
}
}
else // โฟโต้เซนเซอร์ ไม่เจอขวด สั่งให้สายพานหมุน
{
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
}
}





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