راهاندازی و استفاده از ماژول بلوتوث HC-05 با AVR
ماژول بلوتوث HC-05 یکی از محبوبترین ماژولهای بلوتوثی است که به دلیل سادگی در راهاندازی و کارایی بالا در پروژههای مختلف میکروکنترلری مورد استفاده قرار میگیرد. در این مقاله، به نحوه راهاندازی و استفاده از ماژول HC-05 با میکروکنترلرهای AVR خواهیم پرداخت. همچنین به معرفی کامپایلر مورد نیاز و توضیح عملکرد کدهای ارائه شده پرداخته خواهد شد.
مقدمه
بلوتوث یکی از تکنولوژیهای بیسیم محبوب است که برای انتقال دادهها بین دستگاهها در فواصل کوتاه استفاده میشود. ماژول HC-05 یکی از پرکاربردترین ماژولهای بلوتوث سریالی است که میتواند به راحتی به میکروکنترلرها متصل شود و ارتباط بیسیم سریالی را فراهم کند.
بخش 1: معرفی ماژول HC-05
ماژول HC-05 یک ماژول بلوتوث است که به عنوان یک رابط سریال بیسیم عمل میکند. این ماژول از پروتکل بلوتوث نسخه 2.0 استفاده میکند و میتواند به عنوان Master یا Slave پیکربندی شود. برخی از ویژگیهای مهم این ماژول عبارتند از:
- ولتاژ کاری: 3.3 ولت
- پروتکل ارتباطی: UART
- نرخ انتقال دیتا: قابل تنظیم از 1200 تا 1382400 بیت در ثانیه
- پشتیبانی از AT Commands: برای تنظیمات و پیکربندی
بخش 2: اتصال HC-05 به میکروکنترلر AVR
برای راهاندازی ماژول HC-05 با یک میکروکنترلر AVR، نیاز به چند مرحله ساده دارید:
- اتصال پایهها:
- پایه VCC ماژول به منبع تغذیه 3.3 ولت
- پایه GND ماژول به زمین
- پایه TXD ماژول به پایه RX میکروکنترلر
- پایه RXD ماژول به پایه TX میکروکنترلر (با استفاده از یک تقسیم ولتاژ برای کاهش ولتاژ 5 ولت میکروکنترلر به 3.3 ولت)
- پیکربندی UART در AVR:
- تنظیم نرخ باود ریت مطابق با تنظیمات ماژول HC-05
- فعالسازی ماژول UART در میکروکنترلر
- نوشتن کد برای ارسال و دریافت دادهها از طریق رابط سریال
بخش 3: معرفی کامپایلر و محیط توسعه
برای نوشتن و کامپایل کردن کدهای مربوط به AVR، از کامپایلر AVR-GCC استفاده میشود. این کامپایلر یکی از رایجترین ابزارهای توسعه برای میکروکنترلرهای AVR است و به همراه محیط توسعه Atmel Studio یا Microchip Studio ارائه میشود. این محیطهای توسعه امکاناتی مانند ویرایشگر کد، دیباگر، و ابزارهای برنامهریزی برای میکروکنترلر را فراهم میکنند.
- AVR-GCC: کامپایلری بر پایه GCC که به صورت خاص برای میکروکنترلرهای AVR طراحی شده است.
- Atmel Studio/Microchip Studio: محیط توسعه یکپارچه (IDE) که از AVR-GCC پشتیبانی میکند و ابزارهای مختلفی برای برنامهنویسی و دیباگ کردن برنامههای AVR فراهم میآورد.
بخش 4: پیکربندی HC-05 با استفاده از AT Commands
برای تغییر تنظیمات ماژول HC-05، میتوانید از دستورات AT استفاده کنید. این دستورات به شما امکان میدهند تا حالت کاری (Master/Slave)، نرخ باود ریت، نام ماژول و سایر پارامترها را تنظیم کنید. به عنوان مثال:
- تغییر نام ماژول:
AT+NAME=MyHC05
- تغییر نرخ باود ریت:
AT+UART=9600,0,0
برای وارد شدن به حالت AT، ماژول باید در حالت دستوری (Command Mode) قرار گیرد که معمولاً با نگه داشتن کلید EN هنگام روشن شدن ماژول انجام میشود.
بخش 5: ارسال و دریافت داده با AVR و HC-05
پس از راهاندازی ماژول، میتوانید دادهها را بین میکروکنترلر و دستگاه بلوتوثی دیگر ارسال و دریافت کنید. در این بخش، کد مثالی برای ارسال یک رشته کاراکتر از طریق UART و دریافت آن را ارائه میدهیم.
مثال کد AVR برای ارسال داده:
#include <avr/io.h>
void UART_Init(unsigned int baud) {
unsigned int ubrr = F_CPU/16/baud-1;
UBRR0H = (unsigned char)(ubrr>>8);
UBRR0L = (unsigned char)ubrr;
UCSR0B = (1<<RXEN0)|(1<<TXEN0);
UCSR0C = (1<<UCSZ01)|(1<<UCSZ00);
}
void UART_Transmit(unsigned char data) {
while (!( UCSR0A & (1<<UDRE0)));
UDR0 = data;
}
int main(void) {
UART_Init(9600);
while (1) {
UART_Transmit('A');
}
}
توضیح عملکرد کد ارسال داده:
- تابع
UART_Init
: این تابع برای تنظیمات اولیه رابط سریال UART در میکروکنترلر AVR استفاده میشود. نرخ باود ریت (مثلاً 9600) به عنوان ورودی دریافت میشود و تنظیمات مربوط به نرخ انتقال داده، فعالسازی ارسال و دریافت سریال و تنظیمات بیتهای داده انجام میشود. - تابع
UART_Transmit
: این تابع برای ارسال داده از طریق UART استفاده میشود. ابتدا مطمئن میشود که بافر ارسال خالی است، سپس داده را در رجیسترUDR0
قرار میدهد که موجب ارسال داده میشود. - تابع
main
: این تابع حلقه اصلی برنامه را اجرا میکند که در آن کاراکتر ‘A’ به طور مداوم از طریق UART ارسال میشود.
مثال کد AVR برای دریافت داده:
unsigned char UART_Receive(void) {
while (!(UCSR0A & (1<<RXC0)));
return UDR0;
}
توضیح عملکرد کد دریافت داده:
- تابع
UART_Receive
: این تابع برای دریافت داده از طریق UART استفاده میشود. در این تابع، برنامه منتظر میماند تا دادهای دریافت شود. زمانی که داده دریافت شد، آن را از رجیسترUDR0
خوانده و به عنوان خروجی برمیگرداند.
نتیجهگیری
ماژول بلوتوث HC-05 با AVR یک ابزار بسیار قدرتمند و ساده برای افزودن قابلیت بلوتوث به پروژههای میکروکنترلری است. با استفاده از این راهنما و کامپایلر AVR-GCC، شما میتوانید به راحتی این ماژول را با میکروکنترلر AVR راهاندازی کرده و دادهها را به صورت بیسیم انتقال دهید. در صورتی که نیاز به تغییرات پیشرفتهتری دارید، میتوانید از دستورات AT استفاده کنید تا ماژول را به دلخواه پیکربندی کنید.
این مقاله برای توسعهدهندگان و علاقهمندان به الکترونیک طراحی شده است تا بتوانند از تکنولوژی بلوتوث در پروژههای خود به راحتی استفاده کنند.