ماژول HC-05 آردوینو؛ آموزش اتصال، کدنویسی و کنترل بلوتوث
بیسیم Bluetooth به پروژههای Arduino است. این ماژول اطلاعات سریال را میان برد
و تجهیزاتی مانند گوشی موبایل یا لپتاپ منتقل میکند؛ به همین دلیل در پروژههای
کنترل از راه دور، ارسال داده، رباتیک و اتوماسیون کاربرد زیادی دارد.در این آموزش از معرفی HC-05 و پایههای آن شروع میکنیم و سپس سراغ اتصال به Arduino،
ارتباط با گوشی، تنظیمات AT، حالت Master و Slave و یک پروژه کنترل رله میرویم.
در کنار این موارد، نکات مهم مربوط به سطح منطقی RX، Baud Rate و مشکلات رایج اتصال
را هم بررسی خواهیم کرد.
📌 ماژول HC-05 آردوینو در یک نگاه
Bluetooth Serial
UART
3.3V
Data / AT
Master / Slave
ارتباط بیسیم سریال
ماژول HC-05 آردوینو چیست؟
HC-05 در اصل یک رابط Bluetooth-to-Serial است. یعنی دادهای که از طریق UART
دریافت میکند، میتواند بهصورت بیسیم منتقل شود و اطلاعات دریافتی از Bluetooth
نیز دوباره در اختیار Arduino قرار بگیرد.
همین ساختار ساده باعث شده راهاندازی این ماژول نسبتاً آسان باشد؛ Arduino
میتواند با همان منطق ارتباط سریال با HC-05 صحبت کند و نیازی نیست برنامهنویس
مستقیماً وارد جزئیات پیچیده ارتباط Bluetooth شود.
💡 HC-05 را مثل یک پل بیسیم ببینید
Arduino اطلاعات را از UART ارسال میکند؛ HC-05 این دادهها را از طریق
Bluetooth منتقل میکند و سمت مقابل نیز داده را دوباره به شکل سریال دریافت میکند.
بنابراین در بسیاری از پروژههای ساده، Bluetooth تقریباً مثل یک کابل سریال بیسیم عمل میکند.
حالت Data و AT در HC-05 چه تفاوتی دارند؟
هنگام استفاده معمول از ماژول، حالت Data Mode وظیفه انتقال
اطلاعات را بر عهده دارد. دادههای ورودی از UART به Bluetooth فرستاده میشوند
و اطلاعات دریافتشده نیز از همین مسیر به Arduino میرسند.
در مقابل، AT Mode برای تنظیم پارامترهای داخلی ماژول استفاده میشود.
تغییر نام، تنظیم برخی پارامترهای ارتباطی و مدیریت بعضی ویژگیهای Bluetooth
از طریق فرمانهای AT انجام میشود.
⚠️ Data Mode را با AT Mode اشتباه نگیرید
اگر هدف شما انتقال اطلاعات است، ماژول باید در حالت Data قرار داشته باشد.
برای تنظیمات داخلی نیز ورود به AT Mode ضروری است؛ در غیر این صورت فرمانهای
AT ممکن است پاسخ مورد انتظار را تولید نکنند.
HC-05 در حالت Master و Slave
نقش Slave زمانی مفید است که ماژول منتظر برقراری ارتباط از
سمت یک دستگاه دیگر باشد. ارتباط با گوشی موبایل یکی از رایجترین نمونههای همین حالت است.
نقش Master شرایط متفاوتی دارد و به ماژول اجازه میدهد برای
پیدا کردن و برقراری ارتباط با دستگاه مقابل اقدام کند. چنین ساختاری در پروژههایی
که دو برد باید مستقیماً با Bluetooth به هم متصل شوند، کاربرد بیشتری دارد.
📱 Slave
منتظر اتصال دستگاه دیگر میماند و برای ارتباط HC-05 با گوشی گزینه رایجی است.
🔗 Master
برای جستوجو و برقراری ارتباط با یک دستگاه Bluetooth دیگر استفاده میشود.
پایه های HC-05
چیدمان پایهها میان بردهای مختلف HC-05 ممکن است کمی متفاوت باشد؛ بنابراین
نوشته روی همان بردی که در اختیار دارید ملاک نهایی اتصال خواهد بود.
در نسخههای رایج معمولاً VCC، GND، TXD، RXD، STATE و EN یا KEY دیده میشود.
| پایه | وظیفه |
|---|---|
| VCC | تغذیه |
| GND | زمین |
| TXD | ارسال داده سریال |
| RXD | دریافت داده سریال |
| STATE | وضعیت اتصال |
| EN / KEY | کنترل حالت ماژول |

ولتاژ HC-05 چقدر است؟
یکی از مهمترین نکات در زمان سیمکشی، تفاوت میان ولتاژ تغذیه برد ماژول
و ولتاژ منطقی تراشه است. بسیاری از بردهای آماده HC-05 دارای رگولاتور هستند،
بنابراین ورودی تغذیه برد میتواند با محدوده مشخصی کار کند؛ با این حال،
منطق سریال تراشه 3.3V است.
🚨 مهمترین هشدار اتصال HC-05
RXD ماژول را نباید مستقیماً به خروجی 5V یک Arduino متصل کنید.
برای کاهش سطح منطقی، تقسیم مقاومتی یا Level Shifter انتخاب مطمئنتری است.
مثال ساده تقسیم مقاومتی:
Arduino TX → مقاومت 1kΩ → RXD HC-05
RXD HC-05 → مقاومت 2kΩ → GND
اتصال HC-05 به Arduino Uno
برای جدا کردن Bluetooth از ارتباط USB، میتوان از SoftwareSerial روی چند پایه
دیجیتال استفاده کرد. در نمونه زیر D2 برای دریافت اطلاعات و D3 برای ارسال
داده به ماژول در نظر گرفته شده است.
اتصال سریال باید بهصورت ضربدری انجام شود؛ یعنی TXD ماژول به RX آردوینو
میرود و مسیر TX آردوینو نیز به RXD ماژول متصل میشود. در مسیر Arduino TX
رعایت سطح منطقی 3.3V نیز ضروری است.
| HC-05 | Arduino Uno | نکته |
|---|---|---|
| VCC | 5V* | برای بردهای دارای رگولاتور |
| GND | GND | زمین مشترک |
| TXD | D3 | HC-05 → Arduino |
| RXD | D2 | با تقسیم مقاومتی |
* ولتاژ تغذیه را برای مدل دقیق ماژول خود بررسی کنید؛ بردهای مختلف HC-05 ممکن است
مشخصات ورودی متفاوتی داشته باشند.
🔌 اتصال سریع
VCC → Arduino 5V*
GND → Arduino GND
TXD → Arduino D3
RXD ← Arduino D2 با تقسیم مقاومتی

چرا از SoftwareSerial استفاده کنیم؟
Arduino Uno یک UART سختافزاری دارد که در بسیاری از پروژهها به ارتباط USB
و Serial Monitor اختصاص پیدا میکند. به همین دلیل ایجاد یک رابط سریال
روی پایههای دیگری مانند D2 و D3 میتواند ارتباط Bluetooth را از مسیر
اصلی جدا کند.
البته SoftwareSerial برای همه شرایط ایدهآل نیست. سرعت بالا، پردازشهای
همزمان و حجم زیاد داده میتواند محدودیتهایی ایجاد کند؛ بنابراین در پروژههای
سنگین، استفاده از بردی با UART سختافزاری بیشتر گزینه مناسبتری خواهد بود.
کد ارتباط HC-05 با Arduino
برای اولین تست بهتر است مدار را ساده نگه دارید. برنامه زیر نقش یک پل سریال
را بازی میکند؛ هر دادهای که در Serial Monitor وارد شود به HC-05 فرستاده
خواهد شد و اطلاعات دریافتی از Bluetooth نیز روی مانیتور نمایش داده میشود.
#include <SoftwareSerial.h>
SoftwareSerial hc05(3, 2);
void setup() {
Serial.begin(9600);
hc05.begin(9600);
Serial.println("HC-05 Ready");
}
void loop() {
if (Serial.available()) {
hc05.write(Serial.read());
}
if (hc05.available()) {
Serial.write(hc05.read());
}
}
✅ قبل از رفتن سراغ پروژه اصلی
ابتدا فقط یک پیام کوتاه بین گوشی و Serial Monitor ردوبدل کنید.
وقتی این ارتباط پایه درست شد، کنترل رله، موتور یا سایر تجهیزات بسیار سادهتر خواهد بود.
اتصال HC-05 به گوشی
بعد از روشن شدن ماژول، LED وضعیت Bluetooth را نمایش میدهد و معمولاً میتوان
از روی الگوی چشمکزدن آن وضعیت کلی اتصال را تشخیص داد.
📱 مراحل اتصال به گوشی
- HC-05 را روشن کنید.
- Bluetooth گوشی را فعال کنید.
- دستگاه HC-05 را جستوجو کنید.
- Pair را انجام دهید.
- در صورت درخواست، PIN مربوط به همان ماژول را وارد کنید.
- یک Bluetooth Serial Terminal باز کنید.
- ارسال و دریافت یک پیام ساده را تست کنید.
تنظیم HC-05 با AT Command
فرمانهای AT امکان تغییر برخی تنظیمات ماژول را فراهم میکنند. برای مثال،
میتوان نام فعلی دستگاه را خواند و در صورت پشتیبانی Firmware، یک نام جدید
برای آن تعیین کرد.
AT
AT+NAME?
AT+NAME=RNGO_HC05
⚙️ قبل از ارسال AT Command
قرار داشتن HC-05 در AT Mode و انتخاب Baud Rate درست، دو شرط اصلی
برای دریافت پاسخ صحیح هستند. توجه داشته باشید که مقدار Baud Rate
در حالت تنظیمات ممکن است با Data Mode یکسان نباشد.
کنترل رله با HC-05 و Arduino
بعد از تست موفق ارتباط Bluetooth، میتوان یک خروجی واقعی را کنترل کرد.
یکی از مثالهای ساده، فعال و غیرفعال کردن یک ماژول رله با فرمانهای متنی
ارسالشده از گوشی است.
فرض کنید پیام on برای روشن کردن رله و عبارت
off برای خاموش کردن آن استفاده شود. Arduino پیام دریافتی
را بررسی میکند و سپس وضعیت خروجی را تغییر میدهد.
⚠️ نکته ایمنی رله
اگر رله برای قطع و وصل برق شهر استفاده میشود، ایزولاسیون، فاصلههای
ایمنی، ترمینال مناسب و روش صحیح سیمکشی باید کاملاً رعایت شود.
برای تست اولیه بهتر است فقط بخش منطقی کنترل رله را بررسی کنید.
چرا HC-05 به گوشی وصل نمی شود؟
مشکل اتصال را بهتر است مرحلهبهمرحله بررسی کنید. شروع کار از تغذیه و
GND منطقیتر است؛ زیرا ضعف تغذیه میتواند حتی قبل از رسیدن برنامه به
مرحله ارتباط سریال، عملکرد ماژول را مختل کند.
1️⃣ تغذیه
VCC و GND را بررسی کنید.
2️⃣ TX / RX
مسیر ارسال و دریافت باید ضربدری باشد.
3️⃣ سطح منطقی
RXD ماژول را با سیگنال 5V مستقیم تغذیه نکنید.
4️⃣ Baud Rate
تنظیمات Arduino و HC-05 باید هماهنگ باشند.
🚨 Pair می شود ولی داده منتقل نمی شود؟
در این حالت احتمالاً Bluetooth اصلی مشکلی ندارد. سیمکشی TX/RX،
Baud Rate، SoftwareSerial و کد Arduino را به ترتیب بررسی کنید.
جدا کردن مشکل Bluetooth از مشکل UART معمولاً زمان عیبیابی را بسیار کمتر میکند.
کاربردهای HC-05 در پروژه های Arduino
رابط Bluetooth-to-Serial این ماژول، استفاده از آن را در پروژههای مختلف ساده کرده است.
از کنترل تجهیزات گرفته تا انتقال داده، بسیاری از پروژههای آموزشی میتوانند
با همین معماری توسعه پیدا کنند.
- کنترل رله با گوشی
- کنترل LED و موتور
- ربات کنترلشونده با موبایل
- ارسال اطلاعات سنسورها
- مانیتورینگ داده
- اتوماسیون ساده
- ارتباط بیسیم بین دو سیستم
- پروژههای آموزشی Arduino
🎯 چه زمانی HC-05 انتخاب مناسبی است؟
برای انتقال فرمان و داده سریال در پروژههای ساده و آموزشی، HC-05 گزینه کاربردی
و نسبتاً سادهای است. اگر پروژه به BLE، مصرف بسیار پایین، امنیت مدرن یا امکانات
خاص Bluetooth نیاز دارد، بهتر است ماژولهای جدیدتر را نیز مقایسه کنید.
برای پروژه HC-05 چه قطعاتی نیاز دارید؟
یک پروژه بلوتوثی معمولاً فقط به HC-05 و Arduino محدود نمیشود. بسته به کاربرد،
ممکن است مقاومت برای Level Shifting، بردبورد، سیم جامپر، رله، LED، سنسور،
درایور موتور یا منبع تغذیه مناسب هم لازم باشد.
🛒 قطعات پروژه را از پژوهشگران تهیه کنید
برای ساخت پروژههای Arduino میتوانید ماژولهای Bluetooth، برد Arduino،
مقاومت، رله، سنسورها، کانکتورها، بردبورد و دیگر قطعات موردنیاز را
در فروشگاه پژوهشگران بررسی کنید.
مقالات بیشتر درباره Arduino و ارتباطات بی سیم
مقالات بیشتر پژوهشگران
آموزشهای بیشتر درباره Arduino، ESP32، Bluetooth، سنسورها، ماژولها
و پروژههای الکترونیکی را در مجموعه مقالات پژوهشگران ببینید.
برای انتخاب قطعه و طراحی پروژه مشاوره فنی می خواهید؟
برای انتخاب قطعه و طراحی مدار نیاز به مشاوره دارید؟
اگر درباره HC-05، Arduino، رله، سنسورها، ماژولهای ارتباطی یا سطح منطقی
قطعات پروژه خود سوال دارید، پیش از خرید میتوانید برای
مشاوره فنی با مجموعه پژوهشگران در ارتباط باشید.
انتخاب مناسب ماژول و ولتاژ منطقی آن از همان ابتدای طراحی، بسیاری از
مشکلات ارتباطی و آسیبهای احتمالی به قطعات را کاهش میدهد.
جمع بندی ماژول HC-05 آردوینو
ماژول HC-05 آردوینو یک راهکار ساده برای اضافه کردن Bluetooth
Serial به پروژههای مبتنی بر Arduino محسوب میشود. وجود حالتهای Master و Slave،
ارتباط UART و امکان تنظیم با AT Command، انعطاف مناسبی برای پروژههای آموزشی
و کنترلی فراهم میکند.
با این حال، راهاندازی موفق فقط به کدنویسی محدود نیست. اتصال درست TX و RX،
تنظیم Baud Rate، تشخیص Data Mode و AT Mode و مهمتر از همه رعایت سطح منطقی
3.3V در ورودی RXD باید از ابتدا در نظر گرفته شوند.
بعد از برقراری ارتباط پایه، میتوانید پروژه را به سمت کنترل رله، ربات،
موتور یا ارسال اطلاعات سنسورها توسعه دهید. در پروژههای پیشرفتهتر نیز
بهتر است امکانات HC-05 را با نیازهای واقعی سیستم مقایسه کنید.
⚡ چک لیست سریع HC-05
✔ VCC و GND را بررسی کنید.
✔ TX و RX را بهصورت ضربدری وصل کنید.
✔ برای RXD سطح منطقی 3.3V را رعایت کنید.
✔ Data Mode و AT Mode را از هم تشخیص دهید.
✔ Baud Rate مناسب را انتخاب کنید.
✔ ابتدا ارسال متن ساده را آزمایش کنید.
✔ بعد از تست موفق، سراغ کنترل تجهیزات بروید.
💬 تجربه شما از کار با HC-05 چیست؟
اگر قبلاً با HC-05 یا پروژههای Bluetooth Arduino کار کردهاید،
تجربه خود را با ما و سایر علاقهمندان به الکترونیک به اشتراک بگذارید.
آیا با Pair شدن، AT Command، Baud Rate، اتصال TX/RX یا کنترل رله
به مشکل خوردهاید؟ در بخش نظرات همین پایین برای ما بنویسید.
سوالات متداول درباره ماژول HC-05 آردوینو
HC-05 را چگونه به Arduino وصل کنیم؟
VCC و GND به تغذیه و زمین مناسب متصل میشوند. سپس TXD ماژول به RX آردوینو
و TX آردوینو به RXD ماژول میرود؛ در مسیر ارسال به RXD باید سطح منطقی
3.3V رعایت شود.
آیا می توان HC-05 را مستقیم به Arduino وصل کرد؟
مسیر TX آردوینو 5V نباید بدون کاهش سطح ولتاژ مستقیماً به RXD ماژول وارد شود.
تقسیم مقاومتی یا Level Shifter راهکار مناسبتری است.
HC-05 برای چه پروژه هایی مناسب است؟
کنترل رله، کنترل ربات، انتقال اطلاعات سنسورها، مانیتورینگ و بسیاری از
پروژههای آموزشی که به ارتباط Bluetooth Serial نیاز دارند، از کاربردهای
رایج این ماژول هستند.



