ماژول و تجهیزات لازم

برای پیاده‌سازی این پروژه به موارد زیر نیاز دارید:

  • میکروکنترلر AVR (مثل ATmega8 یا ATmega328)
  • ماژول آلتراسونیک SRF05 یا SRF04
  • مقاومت‌ها (در صورت نیاز)
  • منبع تغذیه
  • سیم و اتصالات مناسب

مشخصات اتصالات ماژول ها

  • VCC: ۵V
  • GND: زمین
  • ECHO: پین خروجی
  • TRIG: پین ورودی

مراحل راه‌اندازی

۱. اتصالات سخت‌افزاری

اتصالات ماژول آلتراسونیک به میکروکنترلر را به ترتیب زیر انجام دهید:

  • VCC به +5V
  • GND به زمین
  • TRIG به یکی از پین‌های دیجیتال (مثلاً PD2)
  • ECHO به یکی از پین‌های دیجیتال (مثلاً PD3)

۲. برنامه‌نویسی میکروکنترلر

در این بخش از زبان C برای برنامه‌نویسی استفاده می‌کنیم و برای راه‌اندازی از کتابخانه‌های AVR استفاده می‌کنیم:

#define F_CPU 1000000UL  // فرکانس میکروکنترلر  
#include <avr/io.h>  
#include <util/delay.h>

۳. تنظیمات پین‌ها

پین‌های TRIG به عنوان خروجی و ECHO به عنوان ورودی تنظیم می‌شوند:

پین‌ها

پین‌های TRIG به عنوان خروجی و ECHO به عنوان ورودی تنظیم می‌شوند:

void init() {  
DDRD |= (1 << PD2);  // TRIG as output  
DDRD &= ~(1 << PD3); // ECHO as input  
}

۴. تابع اندازه‌گیری فاصله

تابع get_distance() برای اندازه‌گیری فاصله بر اساس زمان دریافت سیگنال ECHO نوشته می‌شود

uint16_t get_distance() {  
uint16_t time;  
uint16_t distance;  

PORTD |= (1 << PD2); // Trigger  
_delay_us(10);  
PORTD &= ~(1 << PD2);  

while (!(PIND & (1 << PD3))); // Wait for ECHO  
TCNT1 = 0; // Reset timer  
TCCR1B |= (1 << CS11); // Start timer  

while (PIND & (1 << PD3)); // Wait for ECHO to go low  
TCCR1B &= ~(1 << CS11); // Stop timer  

time = TCNT1;  
distance = (time / 58); // Convert to cm  

return distance;  
}

۵. تابع main

تابع main برای اندازه‌گیری و نمایش فاصله:

int main(void) {  
init();  
while (1) {  
uint16_t distance = get_distance();  
// نمایش فاصله با استفاده از UART یا LCD  
_delay_ms(1000); // تاخیر بین اندازه‌گیری‌ها  
}  
}

نکات مهم برای موفقیت

  • تنظیمات نرم‌افزاری: ممکن است بسته به نوع ماژول و شرایط محیطی، نیاز به تنظیمات مجدد داشته باشید.
  • نمایش نتایج: برای مشاهده خروجی، می‌توانید از نمایشگر LCD یا روش‌های دیگر استفاده کنید.
  • آزمون و خطا: پیشنهاد می‌شود تا نتایج را آزمایش کنید و برای بهینه‌سازی کد و تنظیمات خود در صورت نیاز اصلاحاتی انجام دهید.
  • نتیجه‌گیری
    با پیروی از این راهنما، شما قادر خواهید بود ماژول‌های آلتراسونیک SRF05 و SRF04 را با میکروکنترلر AVR راه‌اندازی کنید. اگر سوالی دارید یا به جزئیات بیشتری نیاز دارید، لطفاً مطرح کنید!
  • #include <avr/io.h>