ได้รับส่งมอบฟรีในคําสั่งทั้งหมดมากกว่า 20 ปอนด์!

ใช้ HC-SR04 กับ Raspberry Pi

Using the HC-SR04 With the Raspberry Pi

นั้น 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 ของคุณ. ขอให้สนุกกับการลองปรับแต่ง!

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.

แสดงความคิดเห็น