เซ็นเซอร์วัดระยะทาง แสดงผลออกจากไฟ Led

หนูได้โจทย์จากอาจารย์ว่าให้ใช้เซ็นเซอร์วัดระยะทาง แสดงผลออกจากไฟ Led โดยให้ระยะไกลไฟดับระยะใกล้ไฟติด หนูอยากทราบว่าที่หนูเขียนไว้ถูกไหมคะ ต้องแก้ตรงไหนบ้างขอบคุณค่ะ

#define echoPin D2
#define trigPin D3 
long duration; 
int distance;
void setup() {
  // put your setup code here, to run once:
    pinMode(D5, OUTPUT);
   pinMode(trigPin, OUTPUT); 
  pinMode(echoPin, INPUT); 
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  // Clears the trigPin condition
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
   digitalWrite(trigPin, HIGH);
  delayMicroseconds(5);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH); 
  distance = duration * 0.034 / 2; 
    Serial.print("Distance:10 ");
  Serial.print(distance);
  Serial.println(" cm");
  delay(1000);

 if(distance>=200 ||distance>=0){
   Serial.print("Distance:off ");
  Serial.print(distance);
  Serial.println(" 10cm");  
 }else
   Serial.print("Distance:on ");
  Serial.print(distance);
  Serial.println(" 30cm"); 
 }

พี่อยากรู้ว่าผลการทดสอบจากโค้ตนี้เป็นยังไงบ้าง

ไฟไม่ติดค่ะ ไม่แน่ใจว่าต่อถูกไหม :sweat_smile: Serial Monitor ออกมาแล้วอาจารย์บอกว่าผิดค่ะ ต้องแบบขึ้นแบบว่า ยกตัวอย่างนะคะ ขึ้นสักระยะ10 cm.แล้วขึ้นว่า on ไฟติด ถ้าไกลกว่า10cm. ขึ้น off ไฟดับค่ะ

แล้วที่ Serial prinf ออกมา มันถูกต้องรึป่าว นอกจากการแสดงผล LED

ไม่ถูกค่ะ อาจารย์บอกว่าที่ถูกต้องต้องเป็นแบบนี้ค่ะ
image

ตัวแปรไหนที่เราใช้แทน ระยะทาง ในโปรแกรมครับ

#define echoPin D2
#define trigPin D3
long duration;
int distance;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(115200);
อันนี้ค่ะ

เอาแค่ตัวแปรระยะทาง แค่อันเดียวครับ อันไหน?

int distance

คำถามต่อไปคือ โค้ตตรงส่วนนี้มัน เปลี่ยนแปลงหรือไม่เวลาเราขยับ เซ็นเซอร์

ดูจาก Serial prinf