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
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!")