นั้น HC-SR04 เซ็นเซอร์อัลตราโซนิกเป็นเครื่องมือยอดนิยมที่คุ้มค่าสำหรับการวัดระยะทางในงาน DIY และโครงการระดับมืออาชีพหลากหลาย เมื่อใช้งานร่วมกับ Raspberry Pi มันจะเปิดโลกแห่งความเป็นไปได้ในการสร้างแอปพลิเคชัน เช่น การตรวจจับสิ่งกีดขวาง การวัดระดับ และแม้แต่การติดตั้งแบบโต้ตอบ บทความบล็อกนี้จะแนะนำคุณผ่านขั้นตอนการตั้งค่าและการใช้งาน HC-SR04 เซ็นเซอร์กับ Raspberry Pi ของคุณ.
อะไรคือ HC-SR04 เซ็นเซอร์อัลตราโซนิก?
HC-SR04 เป็นโมดูลเซ็นเซอร์อัลตราโซนิกที่วัดระยะทางโดยการปล่อยคลื่นอัลตราโซนิกและคำนวณเวลาที่เสียงสะท้อนใช้ในการกลับมา ทำงานที่ 5V และขึ้นชื่อเรื่องความแม่นยำและความเชื่อถือได้ในการวัดระยะทางระยะสั้นถึงปานกลาง โดยทั่วไปอยู่ระหว่าง 2 cm ถึง 400 cm
ส่วนประกอบที่คุณต้องใช้
- Raspberry Pi (รุ่นใดก็ได้ที่มีขา GPIO เช่น Raspberry Pi 4)
- HC-SR04 เซ็นเซอร์อัลตราโซนิก
- สายจัมเปอร์
- เบรดบอร์ด
- ตัวต้านทาน 10kΩ (สำหรับการแบ่งแรงดันไฟฟ้า)
- ตัวเลือก: LED และตัวต้านทานสำหรับแสดงสถานะด้วยแสง
การเดินสายไฟของ HC-SR04 ไปยัง Raspberry Pi
กำลังเชื่อมต่อ HC-SR04 ไปยัง Raspberry Pi ต้องจัดการอย่างระมัดระวังเป็นพิเศษ โดยเฉพาะอย่างยิ่งเนื่องจากขา GPIO ของ Raspberry Pi ทำงานที่ 3.3V และ HC-SR04 ทำงานที่ 5V เพื่อป้องกันความเสียหายต่อ Pi ของคุณ จำเป็นต้องใช้ตัวแบ่งแรงดันกับขา Echo
การเชื่อมต่อพิน
- VCC ของ HC-SR04 to 5V ขาบน Raspberry Pi
- GND ของ HC-SR04 to GND บน Raspberry Pi
- ตรีโกณมิติ พินของ HC-SR04 ไปยัง ขา GPIO บน Raspberry Pi (เช่น GPIO23)
- Echo พินของ HC-SR04 ไปยัง Raspberry Pi ผ่านตัวแบ่งแรงดันไฟฟ้า
การตั้งค่าวงจรแบ่งแรงดันไฟฟ้า
เพื่อเชื่อมต่อพิน Echo เข้ากับ Raspberry Pi อย่างปลอดภัย ให้ใช้วงจรแบ่งแรงดันด้วยตัวต้านทาน 10kΩ และตัวต้านทาน 20kΩ วิธีนี้จะลดสัญญาณ 5V ลงมาอยู่ที่ประมาณ 3.3V
# ตัวอย่างผังวงจรสำหรับวงจรแบ่งแรงดัน
# HC-SR04 ขา Echo ---- 10kΩ ----> Raspberry Pi GPIO (Echo)
# |
# 20kΩ
# |
# GND
การติดตั้งไลบรารีที่จำเป็น
ก่อนเขียนโค้ด ตรวจสอบให้แน่ใจว่า Raspberry Pi ของคุณอัปเดตเป็นเวอร์ชันล่าสุดและได้ติดตั้งไลบรารีที่จำเป็นแล้ว
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python3-rpi.gpio
การเขียนสคริปต์ Python
ด้านล่างนี้เป็นสคริปต์ Python อย่างง่ายสำหรับเชื่อมต่อกับ HC-SR04 เซ็นเซอร์ สคริปต์นี้จะส่งพัลส์ทริกเกอร์ รอสัญญาณสะท้อน และคำนวณระยะทางจากเวลาที่สัญญาณสะท้อนใช้ในการกลับมา
import RPi.GPIO as GPIO
import time
# GPIO Mode (BOARD / BCM)
GPIO.setmode(GPIO.BCM)
# Set GPIO Pins
TRIG = 23
ECHO = 24
print("Distance Measurement In Progress")
# Set GPIO direction (IN / OUT)
GPIO.setup(TRIG, GPIO.OUT)
GPIO.setup(ECHO, GPIO.IN)
def distance():
# Set TRIG to LOW
GPIO.output(TRIG, False)
time.sleep(2)
# Send 10us pulse to TRIG
GPIO.output(TRIG, True)
time.sleep(0.00001)
GPIO.output(TRIG, False)
start_time = time.time()
stop_time = time.time()
# Save StartTime
while GPIO.input(ECHO) == 0:
start_time = time.time()
# Save Time of Arrival
while GPIO.input(ECHO) == 1:
stop_time = time.time()
# Time difference between start and arrival
time_elapsed = stop_time - start_time
# Multiply with speed of sound (34300 cm/s)
# and divide by 2, because there and back
distance = (time_elapsed * 34300) / 2
return distance
if __name__ == '__main__':
try:
while True:
dist = distance()
print("Measured Distance = %.1f cm" % dist)
time.sleep(1)
except KeyboardInterrupt:
print("Measurement stopped by User")
GPIO.cleanup()
การเรียกใช้สคริปต์
ตรวจสอบให้แน่ใจว่าการต่อสายของคุณถูกต้อง แล้วจึงรันสคริปต์ด้วย Python 3:
python3 hc-sr04.py
คุณควรเห็นค่าระยะทางที่วัดได้เป็นเซนติเมตรแสดงบนคอนโซล หากคุณใช้ LED สำหรับการแสดงผลด้วยภาพ คุณสามารถปรับสคริปต์ให้ไฟ LED ติดเมื่อมีวัตถุอยู่ภายในระยะที่กำหนด
ยกระดับโปรเจ็กต์ของคุณ
เมื่อคุณทำให้การวัดระยะทางพื้นฐานทำงานได้แล้ว ให้พิจารณาผสานรวมฟีเจอร์เพิ่มเติม:
- ไฟแสดงสถานะ LED: ใช้ไฟ LED เพื่อบ่งชี้ช่วงระยะห่างต่างๆ
- จอแสดงผล LCD: แสดงระยะทางบนหน้าจอ LCD
- การบันทึกข้อมูล: บันทึกการวัดระยะทางตามเวลาเพื่อการวิเคราะห์
- ระบบแจ้งเตือน: เรียกใช้สัญญาณเตือนหรือการแจ้งเตือนเมื่อวัตถุเข้าใกล้เกินไป
การแก้ไขปัญหาที่พบบ่อย
การทำงานกับเซนเซอร์และ GPIO บางครั้งอาจเป็นเรื่องท้าทาย ต่อไปนี้คือปัญหาที่พบบ่อยและวิธีจัดการกับปัญหาเหล่านั้น:
- การเดินสายไฟไม่ถูกต้อง: ตรวจสอบการเชื่อมต่อทั้งหมดอีกครั้ง โดยเฉพาะวงจรแบ่งแรงดันที่ขา Echo
- การวัดที่มีสัญญาณรบกวน: ตรวจสอบให้แน่ใจว่าการตั้งค่าของคุณมีความเสถียร และพิจารณาเพิ่มตัวเก็บประจุเพื่อกรองสัญญาณรบกวน.
- ความขัดแย้งของ GPIO: ตรวจสอบให้แน่ใจว่าไม่มีสคริปต์หรือบริการอื่นกำลังใช้พิน GPIO เดียวกัน.
-
สิทธิ์: เรียกใช้สคริปต์ของคุณด้วยสิทธิ์ที่เหมาะสม โดยใช้
sudoหากจำเป็น.
บทสรุป
HC-SR04 เซ็นเซอร์อัลตราโซนิกเป็นชิ้นส่วนที่อเนกประสงค์และเชื่อถือได้ ซึ่งเมื่อใช้งานร่วมกับ Raspberry Pi แล้ว สามารถรองรับการใช้งานได้หลากหลาย ตั้งแต่งานวัดระยะทางแบบง่ายไปจนถึงระบบอัตโนมัติที่ซับซ้อน โดยทำตามขั้นตอนที่ระบุไว้ในคู่มือนี้ คุณจะสามารถตั้งค่าและเริ่มทดลองใช้งานกับ HC-SR04 บน Raspberry Pi ของคุณ. ขอให้สนุกกับการลองปรับแต่ง!


