// พินของ Ultrasonic Sensor const int trigPin = 9; // พินส่งสัญญาณ (Trig) const int echoPin = 10; // พินรับสัญญาณ (Echo) // พินของเซนเซอร์คัดแยก const int sensorPin = A0; // พินของเซนเซอร์วัสดุ // พินของมอเตอร์ const int motorPlasticPin = 3; // พินสำหรับควบคุมมอเตอร์พลาสติก const int motorAluminumPin = 5; // พินสำหรับควบคุมมอเตอร์อลูมิเนียม // ระยะในการเปิดระบบ (หน่วยเซนติเมตร) const int activationDistance = 20; void setup() { // กำหนดพิน pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(sensorPin, INPUT); pinMode(motorPlasticPin, OUTPUT); pinMode(motorAluminumPin, OUTPUT); // เปิดการสื่อสารซีเรียล Serial.begin(9600); } void loop() { // อ่านค่าระยะทางจาก Ultrasonic Sensor int distance = measureDistance(); Serial.print("Distance: "); Serial.println(distance); // ถ้าระยะห่าง <= activationDistance ให้เริ่มระบบคัดแยก if (distance <= activationDistance) { Serial.println("System Activated"); int sensorValue = analogRead(sensorPin); // อ่านค่าจากเซนเซอร์วัสดุ // ตรวจสอบวัสดุด้วยเซนเซอร์ if (sensorValue > 800) { // วัสดุเป็นขวดพลาสติก digitalWrite(motorPlasticPin, HIGH); digitalWrite(motorAluminumPin, LOW); Serial.println("Plastic detected"); } else if (sensorValue > 400 && sensorValue <= 800) { // วัสดุเป็นกระป๋องอลูมิเนียม digitalWrite(motorAluminumPin, HIGH); digitalWrite(motorPlasticPin, LOW); Serial.println("Aluminum detected"); } else { // ไม่พบวัสดุ digitalWrite(motorPlasticPin, LOW); digitalWrite(motorAluminumPin, LOW); Serial.println("No material detected"); } } else { // ระยะห่างมากกว่า activationDistance ปิดระบบ digitalWrite(motorPlasticPin, LOW); digitalWrite(motorAluminumPin, LOW); Serial.println("System Deactivated"); } delay(500); // หน่วงเวลาสำหรับรอบถัดไป } // ฟังก์ชันวัดระยะทางด้วย Ultrasonic Sensor int measureDistance() { digitalWrite(trigPin, LOW); // เคลียร์สัญญาณก่อน delayMicroseconds(2); digitalWrite(trigPin, HIGH); // ส่งสัญญาณ Trig delayMicroseconds(10); digitalWrite(trigPin, LOW); // คำนวณระยะเวลาและระยะทาง long duration = pulseIn(echoPin, HIGH); int distance = duration * 0.034 / 2; // แปลงเป็นเซนติเมตร return distance; } print("a","b!")
Standard input is empty
// พินของ Ultrasonic Sensor
const int trigPin = 9; // พินส่งสัญญาณ (Trig)
const int echoPin = 10; // พินรับสัญญาณ (Echo)
// พินของเซนเซอร์คัดแยก
const int sensorPin = A0; // พินของเซนเซอร์วัสดุ
// พินของมอเตอร์
const int motorPlasticPin = 3; // พินสำหรับควบคุมมอเตอร์พลาสติก
const int motorAluminumPin = 5; // พินสำหรับควบคุมมอเตอร์อลูมิเนียม
// ระยะในการเปิดระบบ (หน่วยเซนติเมตร)
const int activationDistance = 20;
void setup() {
// กำหนดพิน
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(sensorPin, INPUT);
pinMode(motorPlasticPin, OUTPUT);
pinMode(motorAluminumPin, OUTPUT);
// เปิดการสื่อสารซีเรียล
Serial.begin(9600);
}
void loop() {
// อ่านค่าระยะทางจาก Ultrasonic Sensor
int distance = measureDistance();
Serial.print("Distance: ");
Serial.println(distance);
// ถ้าระยะห่าง <= activationDistance ให้เริ่มระบบคัดแยก
if (distance <= activationDistance) {
Serial.println("System Activated");
int sensorValue = analogRead(sensorPin); // อ่านค่าจากเซนเซอร์วัสดุ
// ตรวจสอบวัสดุด้วยเซนเซอร์
if (sensorValue > 800) {
// วัสดุเป็นขวดพลาสติก
digitalWrite(motorPlasticPin, HIGH);
digitalWrite(motorAluminumPin, LOW);
Serial.println("Plastic detected");
}
else if (sensorValue > 400 && sensorValue <= 800) {
// วัสดุเป็นกระป๋องอลูมิเนียม
digitalWrite(motorAluminumPin, HIGH);
digitalWrite(motorPlasticPin, LOW);
Serial.println("Aluminum detected");
}
else {
// ไม่พบวัสดุ
digitalWrite(motorPlasticPin, LOW);
digitalWrite(motorAluminumPin, LOW);
Serial.println("No material detected");
}
}
else {
// ระยะห่างมากกว่า activationDistance ปิดระบบ
digitalWrite(motorPlasticPin, LOW);
digitalWrite(motorAluminumPin, LOW);
Serial.println("System Deactivated");
}
delay(500); // หน่วงเวลาสำหรับรอบถัดไป
}
// ฟังก์ชันวัดระยะทางด้วย Ultrasonic Sensor
int measureDistance() {
digitalWrite(trigPin, LOW); // เคลียร์สัญญาณก่อน
delayMicroseconds(2);
digitalWrite(trigPin, HIGH); // ส่งสัญญาณ Trig
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// คำนวณระยะเวลาและระยะทาง
long duration = pulseIn(echoPin, HIGH);
int distance = duration * 0.034 / 2; // แปลงเป็นเซนติเมตร
return distance;
}
print("a","b!")