กลับหน้าหลัก
views
วิธีใช้งาน Arduino กับเซ็นเซอร์ตรวจจับความเคลื่อนไหว HB100 แบบคลื่นไมโครเวฟ
Last updated on

วิธีใช้งาน Arduino กับเซ็นเซอร์ตรวจจับความเคลื่อนไหว HB100 แบบคลื่นไมโครเวฟ


วิธีใช้งาน Arduino กับเซ็นเซอร์ตรวจจับความเคลื่อนไหว HB100 แบบคลื่นไมโครเวฟ

บทความนี้จะพาทดลองต่อวงจรและเขียนโค้ด Arduino เพื่ออ่านค่าจากเซ็นเซอร์ตรวจจับความเคลื่อนไหว HB100 ซึ่งทำงานด้วยหลักการ Doppler Radar ความถี่ 10.525 GHz

![วงจรต่อ Arduino UNO กับ HB100 Sensor และ LED บนบอร์ดทดลอง](image: วงจรแสดงการต่อสายไฟระหว่าง Arduino UNO, HB100 sensor module, LED แดง และบอร์ดทดลอง MB-102 โดยแต่ละขามีสีสายบอกชัด)

HB100 Microwave Sensor คืออะไร

HB100 เป็นเซ็นเซอร์ตรวจจับความเคลื่อนไหวแบบไมโครเวฟ (Microwave Motion Sensor) ที่ใช้หลักการ Doppler Effect ส่งคลื่นความถี่สูงออกไปแล้ววัดการเปลี่ยนแปลงความถี่สะท้อนกลับเมื่อมีวัตถุเคลื่อนที่

ข้อดีหลักของ HB100 เทียบกับ PIR Sensor:

  • ไม่ถูกรบกวนจากสภาพแวดล้อม แสงแดด หรืออุณหภูมิ
  • ตรวจจับได้รอบทิศทาง 360 องศา
  • เหมาะกับงานอุตสาหกรรมและกลางแจ้ง

อุปกรณ์ที่ต้องใช้

อุปกรณ์จำนวน
Arduino UNO R31 ชิ้น
HB100 Microwave Doppler Sensor Module1 ชิ้น
LED 5mm สีแดง1 ชิ้น
ตัวต้านทาน 220 Ohm1 ชิ้น
บอร์ดทดลอง Breadboard MB-1021 ชิ้น
สายจัมเปอร์ ผู้-ผู้ 20cm5 เส้น
Power Adapter 9V 2A (ถ้าต้องการจ่ายไฟแยก)1 ชิ้น

วิธีต่อวงจร HB100 กับ Arduino

ขา HB100 Module

เซ็นเซอร์ HB100 มีขาต่อใช้งาน 4 ขา:

  • VCC - ขาจ่ายไฟ 5V
  • GND - ขากราวด์
  • OUT - ขาส่งสัญญาณเมื่อตรวจจับเคลื่อนไหว
  • 3.3V - ขาอ้างอิงไฟ 3.3V (สำหรับบางรุ่น)

การต่อสาย

![ตารางแสดงการต่อขา Arduino UNO กับ HB100 และ LED](image: ตารางการต่อขาประกอบด้วย Arduino Pin 13 > LED > 220 Ohm, Arduino 5V > HB100 VCC, Arduino GND > HB100 GND, Arduino Pin 2 > HB100 OUT)

ต่อวงจรตามนี้:

  1. LED ต่อขา anode (ขายาว) เข้าขา 13 ผ่าน R 220 Ohm และขา cathode (ขาสั้น) เข้า GND
  2. HB100 VCC ต่อเข้า 5V ของ Arduino
  3. HB100 GND ต่อเข้า GND ของ Arduino
  4. HB100 OUT ต่อเข้าขา Digital Pin 2 ของ Arduino

![ภาพเซ็นเซอร์ HB100 Module พร้อมขาต่อใช้งาน](image: ภาพ HB100 microwave sensor module ขนาดจริงแสดงขาต่อสัญญาณ VCC GND OUT บนแผงวงจร)

ติดตั้ง Library MsTimer2

ต้องติดตั้ง Library MsTimer2 ก่อนเขียนโค้ด:

  1. ดาวน์โหลด Library จาก GitHub หรือ MediaFire
  2. เปิด Arduino IDE
  3. ไปที่ Sketch > Include Library > Add .ZIP Library
  4. เลือกไฟล์ MsTimer2-master.zip
  5. รอจน IDE แจ้งว่าติดตั้งเสร็จ

โค้ด Arduino อ่านค่า HB100

#include <MsTimer2.h>

// กำหนดขาที่ต่อกับ HB100
#define HB100_OUT 2

// ตัวแปรเก็บจำนวนครั้งที่ตรวจจับเคลื่อนไหว
volatile int motionCount = 0;

// ฟังก์ชัน Interrupt สำหรับนับจำนวนครั้งที่มีเคลื่อนไหว
void motionDetected() {
  motionCount++;
}

void setup() {
  Serial.begin(9600);
  
  // ตั้งค่าขา Interrupt (Pin 2 = INT0)
  pinMode(HB100_OUT, INPUT);
  
  // ตั้งค่า Timer Interrupt ทุก 1 วินาที
  // ปรับค่าให้เหมาะสมกับการใช้งาน
  MsTimer2::set(1000, printMotionCount);
  MsTimer2::start();
  
  // เมื่อมีสัญญาณขึ้นลงที่ขา OUT ให้เรียกฟังก์ชัน motionDetected
  attachInterrupt(digitalPinToInterrupt(HB100_OUT), motionDetected, CHANGE);
  
  Serial.println("Arduino HB100 Microwave Sensor Ready");
  Serial.println("ค่าที่แสดง = จำนวนครั้งที่ตรวจจับได้ใน 1 วินาที");
}

void loop() {
  // ไม่ต้องทำอะไรใน loop เพราะใช้ Interrupt
}

// ฟังก์ชันแสดงผลทุก 1 วินาที
void printMotionCount() {
  Serial.println(motionCount);
  motionCount = 0; // รีเซ็ตค่าหลังแสดงผล
}

หมายเหตุ: ค่า Timer (1000ms) สามารถปรับได้ตามความต้องการ ถ้าต้องการอ่านเร็วขึ้นก็ลดค่าลง แต่ต้องระวังเรื่อง debounce

ขั้นตอนอัพโหลดโค้ดและทดสอบ

  1. เปิด Arduino IDE แล้ว copy โค้ดด้านบนไปวาง
  2. เลือกบอร์ด Tools > Board > Arduino Uno
  3. เลือก Port Tools > Port > COMx (ดูที่ Device Manager ถ้าไม่แน่ใจ)
  4. กดปุ่ม Upload (ลูกศรขวา)
  5. รอจนขึ้น “Done uploading”
  6. เปิด Serial Monitor ที่ Tools > Serial Monitor หรือกด Ctrl+Shift+M
  7. ตั้งค่า Baud Rate เป็น 9600

ผลลัพธ์ที่คาดหวัง

เมื่อเปิด Serial Monitor จะเห็น:

  • ค่าเริ่มต้นเป็น 0 เมื่อไม่มีการเคลื่อนไหว
  • ค่าเปลี่ยนไปตามจำนวนครั้งที่ตรวจจับเคลื่อนไหวได้
  • LED บนขา 13 จะกระพริบตามการตรวจจับ (ถ้าเพิ่มโค้ด)

วิดีโออ้างอิง

ปัญหาที่พบบ่อยและวิธีแก้

ปัญหาสาเหตุวิธีแก้
ค่าเป็น 0 ตลอดต่อสายผิดขาตรวจสอบการต่อ VCC, GND, OUT
ค่าอ่านได้แต่ไม่แม่นยำระยะห่างจากเซ็นเซอร์ปรับระยะให้เหมาะสม
ค่ากระโดดไม่หยุดสัญญาณรบกวนเพิ่ม Capacitor กรองสัญญาณ

สรุป

การใช้งาน HB100 กับ Arduino ต้องอาศัย Library MsTimer2 สำหรับ Interrupt เพื่อนับจำนวนครั้งที่ตรวจจับเคลื่อนไหวได้ ความไวขึ้นอยู่กับการตั้งค่า Timer และระยะห่างจากเซ็นเซอร์ เหมาะกับงานที่ต้องการตรวจจับการเคลื่อนไหวในสภาพแวดล้อมที่ PIR ไม่เสถียร

อยากทำโปรเจคแบบนี้?

รับทำโปรเจค Arduino / IoT จบงานไว ส่งงานครบ พร้อมสอน

หากต้องการ รับทำโปรเจคอาดูโน่ หรือระบบ IoT แบบเร่งด่วน สามารถดูรายละเอียดบริการได้ที่หน้าแรก

จ้างทำโปรเจคเลย

ความคิดเห็น