ماژول و تجهیزات لازم
برای پیادهسازی این پروژه به موارد زیر نیاز دارید:
- میکروکنترلر 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>
دیدگاه خود را بنویسید