ماژول فاصله سنج SRF04 آلتراسونیک Ultrasonic
2,350,000 ریال
موجود در انبار
اساس کار ماژول آلتراسونیک، تشخیص ویژگیهای هدف از طریق تحلیل بازتاب امواج رادیویی یا صوتی می باشد. این ماژول امواج صوتی را با فرکانس بالا ایجاد کرده و موج بازتاب شده را دریافت و تحلیل می نماید. این سنسور با محاسبه ی زمان بین فرستادن سیگنال و گرفتن بازتاب، فاصلهٔ جسم را محاسبه می کند. در این ماژول سنجش مسافت، فرستنده آلتراسونیک و سنسور بر روی یک برد قرار داده شده و مدار الکترونیکی واسط، کار را برای استفاده از این ماژول بسیار ساده می نماید. قیمت مناسب و به کارگیری آسان، به محبوبیت این ماژول اضافه کرده است.
مشخصات فنی ماژول فاصله سنج التراسونیک SRF04
- ولتاژ : 5V DC
- زاویه موثر : <15°
- محدوده تشخیص فاصله : 2cm – 500 cm
- رزولوشن : 1 سانتی متر
- فرکانس آلتراسونیک : 40k Hz
- جریان ایستا : کمتر از 2mA
- پایداری در عملکرد ماژول
- فاصله سنجی با دقت بالا
- سازگار با آردوینو
پایه های pinout ماژول التراسونیک srf04
ماژول آلتراسونیک SRF04 از پنج پایه تشکیل شده است که شمارهبندی پایههای آن به صورت زیر است.
1- Vcc: ولتاژ تغذیه، باید به یک منبع تغذیه DC متناسب با ولتاژ مورد نیاز ماژول (معمولاً ۵ ولت) متصل شود.
2- Trig: پایهی تریگر برای فعالسازی فرستنده التراسونیک است.
3- Echo: پایهی اکو برای دریافت سیگنال بازگشتی از گیرنده التراسونیک است.
4- NC: پایهی اتصال شده به هیچیز، بهطور کلی از استفادهای برخوردار نیست.
5- GND: مرجع منبع تغذیه و مرجع سیگنالهای الکتریکی، باید به مرجع منبع تغذیه متصل شود.
توضیحات بیشتر در خصوص پایههای ماژول SRF04
- پایه Trig را باید با یک سیگنال پالسی بهصورت کوتاهمدت فعال کرد تا فرستنده آلتراسونیک شروع به فرستادن سیگنال التراسونیک کند.
- پایه Echo هنگامی که سیگنال بازگشتی به گیرنده آلتراسونیک برسد، با ارسال یک سیگنال بازگشتی به مقدار ولتاژ بازگشتی متناسب با فاصله بین ماژول و مانع، پاسخ میدهد.
- پایه NC بیاستفاده است و بهطور کلی به هیچ چیزی وصل نمیشود.
- پایه GND مرجع منبع تغذیه و مرجع سیگنالهای الکتریکی است و باید به مرجع منبع تغذیه متصل شود.
راه اندازی ماژول آلتراسونیک SRF04 با آردوینو
برای راهاندازی ماژول SRF04 به صورت ساده، میتوانید از یک میکروکنترلر مثل آردوینو استفاده کنید. به طور کلی، برای راهاندازی ماژول SRF04، ابتدا باید ماژول را به تغذیه وصل کرده و سپس پایه تریگر (Trig) را به یک پین خروجی میکروکنترلر متصل کنید. سپس پایه اکو (Echo) را به یک پین ورودی میکروکنترلر متصل کنید.
سپس برنامهای برای میکروکنترلر خود بنویسید که پایه تریگر را فعال کند (یعنی آن را به حالت HIGH ببرد)، بعد از کمی تاخیر، پایه تریگر را غیرفعال کند (یعنی آن را به حالت LOW ببرد) و سپس منتظر شروع ارسال سیگنال اکو از ماژول شود. وقتی سیگنال اکو از ماژول دریافت شد، میتوانید زمان گذرشده بین ارسال سیگنال توسط تریگر و دریافت سیگنال توسط اکو را با توجه به سرعت صوت و مسافت محاسبه کنید. در ادامه یک کد نمونه برای راهاندازی ماژول SRF04 با استفاده از آردوینو آمده است.
#define trigPin 3
#define echoPin 2
void setup() {
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
Serial.print(distance);
Serial.println(" cm");
delay(500);
}
در این کد، پایه تریگر به پین 3 و پایه اکو به پین 2 متصل شده است. در تابع loop ابتدا پایه تریگر را فعال میکنیم و بعد از 10 میکروثانیه، آن را غیرفعال میکنیم.
راه اندازی SRF04 با برد STM32F103C8T6
چنانچه برد آردوینو ندارید و یا میخواهید از بردهای دیگری برای راه اندازی استفاده کنید. میتوانید برای راه اندازی ماژول SRF04 بدون استفاده از برد آردوینو از میکروکنترلر STM32F103C8T6 و کد نویسی به زبان C استفاده کنید. ابتدا باید پایه های ماژول SRF04 را به میکروکنترلر وصل کنید. پایه های Trigger و Echo به ترتیب به پایه های PB0 و PB1 میکروکنترلر متصل میشوند. سپس کد زیر را در نرم افزار Keil C نوشته و کامپایل کنید.
#include "stm32f10x.h"
#define TRIG_PIN GPIO_Pin_0
#define ECHO_PIN GPIO_Pin_1
#define TRIG_PORT GPIOB
#define ECHO_PORT GPIOB
void delay_us(uint32_t us)
{
SysTick->LOAD = 9*us;
SysTick->VAL = 0;
SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk |
SysTick_CTRL_ENABLE_Msk;
while (!(SysTick->CTRL & SysTick_CTRL_COUNTFLAG_Msk));
}
void delay_ms(uint32_t ms)
{
while (ms--)
{
delay_us(1000);
}
}
void init(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = TRIG_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(TRIG_PORT, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = ECHO_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(ECHO_PORT, &GPIO_InitStructure);
}
int main(void)
{
uint32_t distance = 0;
init();
while(1)
{
GPIO_SetBits(TRIG_PORT, TRIG_PIN);
delay_us(10);
GPIO_ResetBits(TRIG_PORT, TRIG_PIN);
while(GPIO_ReadInputDataBit(ECHO_PORT, ECHO_PIN) == RESET);
uint32_t start_time = SysTick->VAL;
while(GPIO_ReadInputDataBit(ECHO_PORT, ECHO_PIN) == SET);
uint32_t end_time = SysTick->VAL;
uint32_t elapsed_time = start_time - end_time;
distance = elapsed_time * 0.017; // حساب کردن فاصله با توجه به زمان سپری شده
delay_ms(500); // تاخیر برای انجام
راه اندازی ماژول srf04 بدون استفاده از میکروکنترلر
ماژول SRF04 برای راهاندازی به چندین پین نیاز دارد که برای استفاده بدون میکروکنترلر، میتوان از یک کنترلر منطقی مانند 74HC595 استفاده کرد. برای این کار، ابتدا سیگنال تریگر (Trigger) به یکی از ورودیهای کنترلر منطقی وصل شده و سپس با اعمال سیگنال کنترلی مناسب به ورودیهای کنترلر منطقی، میتوان خروجی ECHO را اندازهگیری کرد.
برای این کار، ابتدا باید به یک پین کنترلر منطقی مانند 74HC595 سیگنال تریگر (Trigger) متصل شود. پس از آن، باید با اعمال یک سیگنال فعال کنترلی مناسب به پین تریگر، سیگنال تریگر فعال شود. سپس باید اندازهگیری زمانی که سیگنال ECHO فعال است را با استفاده از یک تایمر اندازهگیری کرده و با توجه به این زمان و فرمول محاسبه فاصله، فاصله مورد نظر را محاسبه کرد. به طور کلی، استفاده از ماژول SRF04 بدون استفاده از میکروکنترلر یک کار دشوار و زمانبر است و به دلیل پیچیدگی بالای این روش، استفاده از میکروکنترلر بهصورت گستردهتر توصیه میشود.
راه اندازی ماژول srf04 با میکروپایتون و برد esp32
برای راهاندازی ماژول srf04 با میکروپایتون و برد esp32، ابتدا باید پایههای ماژول srf04 را به دقت به پایههای برد esp32 وصل کنید. به طور معمول، پایه VCC ماژول srf04 به پایه 5 ولت برد esp32، پایه GND به پایه GND برد esp32 و پایه Trig به یکی از پایههای GPIO برد esp32 که در کد زیر پایه 26 به کار رفته است. پایه Echo به پایهی 27 برد esp32 متصل میشود. سپس باید کتابخانههای machine و time را در میکروپایتون برای برد esp32 وارد کنید و کد زیر را اجرا کنید.
import machine
import time
trigger = machine.Pin(26, machine.Pin.OUT)
echo = machine.Pin(27, machine.Pin.IN)
def read_distance():
# فعال کردن پالس برای فرستادن سیگنال تریگر به ماژول srf04
trigger.value(0)
time.sleep_us(2)
trigger.value(1)
time.sleep_us(10)
trigger.value(0)
# محاسبه زمانی که سیگنال صوتی به ماژول فرستاده شده و توسط ماژول دریافت شده است
while echo.value() == 0:
pass
t1 = time.ticks_us()
while echo.value() == 1:
pass
t2 = time.ticks_us()
# محاسبه فاصله بر اساس زمانی که سیگنال صوتی طی کرده است
duration = t2 - t1
distance = duration * 0.034 / 2
return distance
while True:
distance = read_distance()
print("Distance: ", distance, "cm")
time.sleep(1)
این کد پالس فرستادن تریگر به ماژول srf04 را کنترل میکند و سپس زمانی که سیگنال فراصوت توسط ماژول دریافت شده است و مدت زمان طی شده بین فرستادن و دریافت سیگنال را اندازهگیری میکند. با استفاده از فرمول distance = duration * 0.034 / 2، فاصله را محاسبه کرده و نمایش میدهد.
سه روش راه اندازی SRF04 با میکروپایتون و برد رزبری پای پیکو
برای راه اندازی ماژول SRF04 با میکروپایتون و برد رزبری پیکو، ابتدا باید این ماژول را به برد متصل کنید. برای این کار، به پایههای مربوطه ماژول (VCC، GND، Trig و Echo)، سیمهای خود را متصل کنید. سپس، به کمک کد زیر، میتوانید ارتفاع فاصله مورد نظر را اندازهگیری کنید. در این کد، پایههای ۱۶ و ۱۸ برد را به پایههای Trig و Echo ماژول متصل کردهایم. پس از اجرای کد، ارتفاع فاصله اندازهگیری شده توسط ماژول SRF04 به واحد سانتیمتر در خروجی چاپ خواهد شد. سپس برای جلوگیری از مشکلات بعدی، باید پایههای ماژول از برد خارج شود.
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setup(16, GPIO.OUT) # Set trigger pin as output
GPIO.setup(18, GPIO.IN) # Set echo pin as input
GPIO.output(16, False)
time.sleep(2)
GPIO.output(16, True)
time.sleep(0.00001)
GPIO.output(16, False)
while GPIO.input(18) == 0:
pulse_start = time.time()
while GPIO.input(18) == 1:
pulse_end = time.time()
pulse_duration = pulse_end - pulse_start
distance = pulse_duration * 17150
distance = round(distance, 2)
print("Distance:",distance,"cm")
GPIO.cleanup()
در روش دوم برای راه اندازی ماژول SRF04 با میکروپایتون و رزبری پیکو در ویندوز میتوانید از یک مبدل USB به سریال استفاده کنید. این مبدل به کامپیوتر شما متصل می شود و پورت سریال را برای شما فراهم می کند. پس از متصل کردن ماژول SRF04 به برد رزبری پیکو و همچنین متصل کردن مبدل USB به سریال به کامپیوتر، باید در میکروپایتون از کتابخانه pyserial استفاده کنید. این کتابخانه به شما امکان ارتباط با پورت سریال را می دهد. در ابتدا باید نام پورت سریال را در ویندوز پیدا کنید. برای این کار می توانید به منوی دستگاه ها و پرینترها بروید و دستگاه را انتخاب کنید. سپس روی پروتکل های کاربردی در بالای صفحه کلیک کنید و شماره پورت را پیدا کنید. بعد از پیدا کردن شماره پورت، در میکروپایتون باید کتابخانه pyserial را نصب کنید. برای این کار می توانید از دستور زیر استفاده کنید: pip install pyserial حالا با استفاده از کد زیر می توانید به ماژول SRF04 ارتباط برقرار کنید و فاصله را اندازه گیری کنید:
import serial
import time
ser = serial.Serial('COM3', 9600) # جای COM3 شماره پورت سریال خود را قرار دهید
while True:
# فرستادن سیگنال شروع به ماژول SRF04
ser.write(bytes([0x55]))
time.sleep(0.1)
# خواندن پاسخ از ماژول SRF04
data = ser.read(2)
distance = (data[0] << 8) + data[1]
print(f"Distance: {distance} cm")
time.sleep(1)
در این کد، ابتدا کتابخانه serial را وارد می کنیم و یک اتصال سریال با استفاده از پورت سریال برقرار میکنیم.
در روش سوم راه اندازی srf با میکروپایتون از کامپایلر thonnyide استفاده میکنیم. مراحل زیر را دنبال کنید.
1- نصب برنامه THONNYide روی ویندوز خود. برای این کار می توانید به سایت رسمی THONNYide مراجعه کرده و آخرین نسخه از آن را دانلود کنید.
2- با استفاده از کابل USB، رزبری پیکو خود را به کامپیوتر وصل کنید.
3- در برنامه THONNYide، یک پروژه جدید ایجاد کنید و یک فایل جدید با پسوند “.py” بسازید.
4- برای استفاده از پایههای GPIO رزبری پیکو، کتابخانهی GPIO را وارد کنید: import RPi.GPIO as GPIO
5- تنظیمات پایههای GPIO را انجام دهید. به عنوان مثال، برای تعیین پایهی Trigger به پایهی ۷ و پایهی Echo به پایهی ۱۱ رزبری پیکو، کد زیر را وارد کنید:
GPIO.setmode(GPIO.BOARD)
TRIG = 7
ECHO = 11
GPIO.setup(TRIG, GPIO.OUT)
GPIO.setup(ECHO, GPIO.IN)
6- سپس، یک حلقه برای اندازهگیری فاصله با استفاده از ماژول SRF04 بسازید. در این حلقه، ابتدا پایهی Trigger را به حالت HIGH تنظیم کنید تا ماژول آمادهی ارسال فرستادن پالس باشد. سپس پس از ارسال پالس، پایهی Trigger را به حالت LOW برگردانید. در ادامه، با استفاده از پایهی Echo، زمانی که سیگنال بازگشتی از ماژول دریافت میشود را اندازهگیری کنید.
while True:
GPIO.output(TRIG, True)
time.sleep(0.00001)
GPIO.output(TRIG, False)
while GPIO.input(ECHO)==0:
pulse_start_time = time.time()
while GPIO.input(ECHO)==1:
pulse_end_time = time.time()
pulse_duration = pulse_end_time - pulse_start_time
چند نمونه آموزش ماژول آلتراسونیک SRF04 در سایت دیجی اسپارک
آموزش اول: ساخت مایع ریز کرونا اتوماتیک با پمپ و آردوینو Arduino
با شیوع اپیدمی کرونا در سراسر دنیا، ساخت مایع ریز کرونا اتوماتیک ایدهای بوده که فراگیر شده است. تقریبا در تمامی مراکز از آن استفاده میشود. به صورت کلی برای پاشش محلول ضدعفونی بدون تماس دست با سطحی خاص، انتخاب مناسبی است. سنسورهای مختلفی یرای این منظور مورد استفاده قرار گرفتهاند هر کدام نقاط قوت و ضعف خاصی دارند. از جمله سنسورهای پرکاربرد و مصرفی در ساخت مایع ریز کرونا، مدل آلتراسونیک است. برای این منظور ساخت مایع ریز با استفاده از بردهای میکروکنترلر مانند آردوینو Arduino به راحتی قابل اجرا است. در این آموزش توسط سنسور فاصله سنج آلتراسونیک SRF به رله فرمان قطع و وصل میدهیم.
محصولات مشابه
ماژول مادون قرمز ir receiver transmitter module TCRT5000 KY
موجود در انبار
850,000 ریال
برد آردوینو
کیت دزدگیر
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.