การใช้งาน Arduino Nano กับเซ็นเซอร์วัดระยะ และเซอร์โวมอเตอร์

1. บทนำ

เซ็นเซอร์ HC-SR04 สามารถวัดระยะทางของวัตถุด้านหน้าได้ เมื่อเรานำค่าระยะทางที่วัดได้มาประมวลผล จะสามารถควบคุมอุปกรณ์ต่าง ๆ ได้ เช่น Servo Motor ในการทดลองนี้ เราจะทำให้ Servo หมุนไปยังมุมที่กำหนด เมื่อมีวัตถุอยู่ใกล้


2. อุปกรณ์ที่ใช้

  • Arduino Nano
  • HC-SR04 Ultrasonic Sensor
  • Servo Motor (SG90 หรือ MG90S)
  • สาย Jumper

3. การต่อวงจร

จากภาพ:

  • Servo Motor
    • สายแดง (VCC) → ขา 5V บน Arduino
    • สายดำ/น้ำตาล (GND) → ขา GND บน Arduino
    • สายส้ม (Signal) → ขา D2
  • HC-SR04
    • VCC → ขา 5V
    • GND → GND
    • Trig → D4
    • Echo → D3

4. โค้ด (ของครูทีม)

#include <Servo.h>
Servo myservo;

void setup() {
  myservo.attach(2);   // Servo ต่อที่ขา D2
  pinMode(4, OUTPUT);  // Trig
  pinMode(3, INPUT);   // Echo
}

void loop() {
  digitalWrite(4, HIGH);
  delay(1000);
  digitalWrite(4, LOW);

  if (pulseIn(3, HIGH) < 10000) {
    myservo.write(0);    // ถ้าวัตถุอยู่ใกล้ → Servo หมุนไปที่ 0 องศา
  } else {
    myservo.write(90);   // ถ้าไม่มีวัตถุใกล้ → Servo อยู่ที่ 90 องศา
  }
}

5. คำอธิบายโค้ด

  1. #include <Servo.h> → ใช้ไลบรารี Servo ช่วยควบคุมมอเตอร์
  2. myservo.attach(2); → กำหนดขา D2 สำหรับสัญญาณ Servo
  3. digitalWrite(4, HIGH); ... digitalWrite(4, LOW); → ส่งสัญญาณจากขา Trig
  4. pulseIn(3, HIGH) → อ่านเวลาสัญญาณสะท้อนกลับจาก Echo
  5. เงื่อนไข if (pulseIn(3, HIGH) < 10000) → ถ้าเวลาที่สะท้อนกลับมาสั้น (แสดงว่ามีวัตถุใกล้) → Servo หมุนไปที่ 0°
  6. ถ้าไม่ใช่ → Servo หมุนไปที่ 90°

6. สรุป

  • เซ็นเซอร์ HC-SR04 ใช้ตรวจจับวัตถุด้วยคลื่นเสียงอัลตร้าโซนิก
  • Arduino Nano สามารถใช้ผลการวัดเพื่อควบคุม Servo Motor ได้
  • การทดลองนี้จำลองพฤติกรรม “ประตูอัตโนมัติ” หรือ “แขนกลที่ตอบสนองต่อวัตถุ”
  • นักเรียนสามารถนำไปต่อยอด เช่น ระบบ แขนกลหยิบของ, หุ่นยนต์เลี่ยงสิ่งกีดขวาง, หรือ ระบบเปิด–ปิดฝาถังขยะอัตโนมัติ