پروژهپروژه های AVRماژول های مخابراتیمیکروکنترلرهمه ی مطالب

راه اندازی ماژول بلوتوث HC-05 با بسکام

راه اندازی ماژول بلوتوث HC-05 با بسکام:

در قسمت اول:

با ماژول بلوتوث HC-05 آشنا شدید و نحوه راه اندازی ماژول به طور کامل شرح داده شد. و نحوه ی وصل شدن به ماژول از طریق بلوتوث از طریق یک ویدیوی کوتاه آموزش داده شد.

در قسمت دوم :

ابتدا در ویدیوی نحوه راه اندازی ماژول مرور شد. در ادامه نحوه تغییر تنظیمات ماژول از طریق AT Command ها شرح داده شد. و در ادمه بحث برنامه هایی برای گوشی های هوشمند برای کنترل ماژول بلوتوث معرفی شد.

در این قسمت:

در این قسمت راه اندازی ماژول بلوتوث HC-05 با بسکام رو بررسی می کنیم. در ادامه برنامه ی بسکام رو داریم که در ابن برنامه یک موتور به صورت چپ گرد و راستگرد کنترل می شود درایور مورد استفاده l293D هستش l293D نیازی به دیود هرزگرد  ندارد. و راه اندازی راحتی دارد.

برنامه لازم برای راه اندازی راه اندازی ماژول بلوتوث HC-05 با بسکام:

در این برنامه اگر عدد 1 رو به  ماژول بولوتوث ارسال کنیم موتور چپ گرد می چرخد و با ارسال عدد 2 موتور به صورت راستگرد می چرخد. میکروکنترلر مورد استفاده mega 8 است. باود ریت روی 9600 تنظیم شده و برای کارکرد بدون خطا از کرسیتال 11.0592 مگاهرتز خارجی استفاده کردیم.

'*******************************************************
'***************** electrolab.ir ***********************
'********* developed by Unes Abaszade ******************
'***************** electrolab.ir ***********************
'******************* 2014/8/31 *************************
'*******************************************************
$regfile = "M8def.dat"
$crystal = 11059200
$baud = 9600
$framesize = 40

 Dim B As Byte , C As Byte , D As Bit
 Config Portc.5 = Output , Pind.2 = Input , Pind.3 = Input
 Config Portb.0 = Output , Portd.7 = Output


 Print "ENTER NUMBER"
 'Set Portd.7
Do


 Inputbin B
 Select Case B
   Case "1" : C = 1                                         'open the door
   Case "2" : C = 0                                         'close the door
 End Select


 If C = 1 Then
   Set   Portd.7
   Reset Portb.0
   Waitms 50
 End If


 If C = 0 Then
   Reset Portd.7
   Set   Portb.0
   Waitms 40
 End If

Loop

End                                                         'end program

توضیح سطر به سطر برنامه:

  • از سطر 7 کتابخانه میکروکنترلر mega8 رو به برنامه معرفی می کنیم
  • سطر 8 مقدار کلاک میکرو را مشخص می کنیم.
  • در سطر 9 باودریت روی 9600 قرار می گیرد.
  • در سطر 12 متغییر های لازم تعریف شده است.
  • در سطر 13 و 14 پورت های لازم به صورت وروردی و خروجی تنظیم شده اند بر حسب نیاز
  • در سطر 17 عبارت “ENTER NUMBER” ارسال می شود.
  • در سطر 19 یک حلقه بی نهایت تعریف شده است . که تا سطر 42 ادامه دارد.
  • در 23 از ساختار select case استفاده کردیم تا عدد دریافت شده از ماژول بلوتوث رو تشخیص بدیم.
  • در سطر های 29 و 36 دستور if رو داریم که اگر عدد 1 رو به  ماژول بولوتوث ارسال کنیم موتور چپ گرد می چرخد و با ارسال عدد 2 موتور به صورت راستگرد می چرخد.
  • و در سط 44 با دستور end اتمام برنامه رو به کامپیایلر اعلام می کنیم.

 فایل PCB برای راه اندازی ماژول بلوتوث HC-05 با بسکام:

این PCB با نرم افزار پورتیوس کار شده در پایین لینک دانلود رو قرار می دم و به زودی شماتیک این برد رو آماده می کنم تا کاربرد مدار قابل فهم تر شه اگر چه نیازی به شمتیک نیست و تقریبا همه چیز روی فایل PCB مشخص هست.

عکس PCB آماده

blpcb

IMG_۲۰۱۴۰۷۲۸_۱۵۴۳۲۲

دانلود فایل PCB

نوشته های مشابه

48 دیدگاه

  1. دستت درد نکنه، یعنی دست جفتتون درد نکنه.
    خدا خیرتون بده ایشالله، باعث حل مشکلات ما و گسترش علم میشید.
    خداقوت و امیدوارم همیشه همینطور شاداب و با انگیزه به کارتون ادامه بدید و ماهم استفاده کنیم….

  2. سلام
    این کدی که نوشتید {
    تو خط 12 Dim B As Byte , C As Byte , D As Bit
    کار D As Bit چیه. تو جایی از برنامه نمیبینم.
    }

    1. بله شما درست میگین برنامه رو ویرایش کردیم ولی یادمون رفته متغییر D رو حذف کنیم

  3. سلام
    خواهشا راهنمایی کنید
    من برای فعال کردن کریستال خارجی برای 11.059200
    فیوزبیت نوسان ساز رو دستکاری کردم اما باعث غیر فعال شدن میکرو کنترلر شد و نمیشه با پرگرامر وصل شد
    ظمنا من کریستال خارجی هم گذاشتم اما بی نتیجه هست

    1. احتمالا اشتباهی رویه به چیزه دیگه تنظیم کردید چون اگه روی کریستال خارجی تنظیم شده باشه با گذاشتن کریستال پروگرم میشد

  4. با سلام خدمت دوست خوبم
    قبل از هر چیز از اینکه آموزشهای مفید در سایت میگذارید و دانش خودتون را به دیگران انتقال میدید ممنونم و آرزوی موفقیت برای شما دارم.
    من تازه کارم و اگه براتون ممکنه راهنمایی کنید
    من چند وقتیه که با خرید ماژول بلوتوث سعی دارم چند led را روشن و خاموش کنم با استفاده از بلوتوث گوشی به میکرو اما تا الان موفق نشدم اگه برای شما امکانش هست بگید چطوری برنامه ایی که نوشته ایی با بسکام میشه کریستال 11.0592را به صورت منبع خارجی به میکرو وصل کرد آیا در بسکام امکان تغییر فیوزبیت هست ؟
    من بنامه بالا رو بروی میکرو ریختم اما نتیجه ایی نگرفتم خواهشمندم راهنمایی کنید.

    1. دوست عزیز باید به این نکته متذکر بشم که ما معمولا فیوز بیت ها رو از طریق پروگرمر تغیر میدیم نه از طریق بسکام البته با بسکام هم میشه ولی باید پروگرمرتون نوع دیگه باشه منظورم اینه که ما از پروگرمر usb asp یا همون progisb استفاده میکنیم در ضمن شما در بسکام فقط با نوشتن مثلا $ crystal=8000000به میکرو تون میگید که کلاک کاریت رو این قرار بده که در این صورت اگر فیوز بیت مثلا یک مگا هرتز باشه دستور wait 1 یک ثانیه طول نمیکشه بلکه 8 ثانیه طول میکشه. شما برید در قسمت navigationپروگرمر کریستال بالا که با پیش نویس ext رو هست رو تیک بزنیدextیعنی تنظیم میکرو برای استفاده از کریستال خارجی که اگر کریستال وصل باشه کار میکنه وگر نه اصلا کار نمیکنه این موضوع هنگام پروگرم کردن نیز صادق هست البته به پروگرامر هم بستگی داره

  5. سلام
    دوست خوبم میشه بگید در خط 10 برنامهفهوم framesize = 40 $ چیه و کاربردش چیه ؟

    1. دوست عزیز این دستور برای این هست که کامپیوتر امتیاز مناسبی به برنامه نوشته شده شما بدهد در ضمن با این دستورشما نیازی به فایل configurationندارید به طور خلاصه یه چیز اضافه هست که میتونید حذف کنید

    1. فایلی هست که بسکام خودش تولید میکنه واصلا مهم نیست و کاربرد نداره

  6. سلام مهندس
    مگه نباید ارتباط بین میکرو و ماژول بلوتوث از طریق پایه های rx & tx باشه چرا پایه های 2&3 پورت دی رو ورودی تعیین کردین

    1. خب تعریف شده که شده اگه تو برنامه استفاده نشده میتونید حذف کنید . من واسه یه کاری اون پورت ها رو تعیین کرده بودم که بعد منصرف شده حالا شما اینقدر سخت نگیر تو برنامه نویسی اینجور ایراد ها که کار رو مختل نمیکنه زیاده

  7. سلام
    توی کدی که بالا هست به سطر 18 فکر نکنم نیاز باشه چون تا منبع تغذیه رو به میکرو وصل میکنیم موتور شروع میکنه به چرخیدن.دزست میگم؟

    1. واسه همینه که من هم به عنوان توضیح قراردادم و اصلا اون سطر کامپایل نمیشه و تاثیری تو برنامه نداره

  8. سلام
    توی کدی که بالا هست به سطر 18 فکر نکنم نیاز باشه چون تا منبع تغذیه رو به میکرو وصل میکنیم موتور شروع میکنه به چرخیدن.درست میگم؟

  9. سلام
    ببخشید برادر زیاد سوال میپرسم
    اگه توی این مدار کریستال خارجی رو بردارم و کریستال رو 8000000 تعیین کنم توی این مدار چه مشکلی پیش میاد
    سوال بعدی
    اون جایی که نوشته ENTER NUMBER گفتید که ارسال میشه. به کجا ارسال میشه روی گوشی نمایش داده میشه؟ و اگر جوابش بله بود میشه بجای ENTER NUMBER از کاراکتر های فارسی استفاده کنم؟
    سوال بعدی
    توی سطر های 32&39 یه تاخیر گذاشتی واسه چین؟

  10. سلام برادر من یه تازه کارم و تو ذهنم سوالاتی پیش میاد خواهش میکنم که جواب بده
    توی اون کدی که هست چرا این دو خطو ننوشتی Enable Urxc
    Enable Utxc

    1. اصلا اینا چیه لازم نیست از اینا استفاده کنی همون BAUD رو تنظیم کنی کافیه زیاد به ریزش نرو

  11. با سلام و عرض خسته نباشید من برنامه ای رو برا روشن و خاموش کردن led دارم و نرم افزار اندرویدشم دارم ولی هنگامیکه دستورات میخواد از بلوتوث به میکرو ارسال بشه ارتباط سریال برقرار نمیشه و خروجی ای برای led ندارم
    من از ماژول بلوتوث hc-05 مدل zs-040 استفاده میکنم
    1. میکرو رو تست کردم میکرو سالم هستش
    2. برا میکرو 5v و برای بلوتوث 3.3v استفاده میکنم
    3. زمانیکه به بلوتوث وصل میشم پایه ی state که به پایه ی 32 ماژول وصل هستش یک میشه نشان دهنده ی وصل شدن بلوتوث به گوشی هستش
    در ضمن برای میکرو کریستال نزاشتم چون برنامه رو که از جاییکه گرفتم نزاشته بود
    این وسط فقط ارتباط سریال بین بلوتوث و میکرو هستش که اشکال داره خواهشن کمکم کنین بگید از چی میتونه باشه از Baud Rate میکرو باشه من روی 9600 تنظیم کردم (بطور معمول ماله بلوتوث هم 9600 هستش؟)
    و فرکانس میکرو هم 8مگ هستش , در ضمن برنامه اندرویدیمم درست هستش
    برا توضیح بیشتر هم برنامه و توضیحات رو براتون تو لینک زیر میزارم
    http://s3.picofile.com/file/8208835834/1.rar.html

    1. مشکل شما تو این هست که سطح ارتباطی بین ماژول و میکرو یکی نیست میکرو با 5ولت هست و ماژول با 3.3 ولت . دو راه برای حل این مشکل وجود داره یکی این هست که میکرو رو با تغذیه ای که ماژول رو راه اندازی کردی راه اندازی کنی . دومین راه مدار level shifter هست که باید در پایه tx میکرو اجرا کنی

  12. سلام برادر
    شما فایلی که واسه دانلود گذاشتید رو دانلود کردم در شماتیک مدار یه مشکلی وجود داشت شما نباید پایه ۳۴ key ماژول بلوتوث رو به زمین وصل کنی در این صورت دیگه baud rate 9600نداری برای جواب دادن باید تو کدش یه ویرایش ایجاد کنید.
    یه پایه رو با یه تاخیر دو دهم ثانیه یک کنید پایه 34 رو به اون وصل کنید در این صورت جواب میده

    1. من که با این روش جواب گرفتم (در الکترونیک نیازی به رعایت نکات ریز نیست)

  13. سلام اقا پونس من اول 3.3v رو برا هردوشون گزاشتم دیدم جواب نمیده بعد 5v رو به میکرو و 3.3v رو به ماژول زدم وزمینشون رو یکی کردم بعدم جواب نداد حتی با برنامه های بیسیک و c شما هم تستش کردم نمیشه خوهشن کمکم کنین

    1. ببینید شما اول ماژول رو به مبدل یو اس بی به سریال وصل کنید و کارهایی رو که میخواهید انجام بدهید و ببینید که ماژول سالمه یا نه؟

  14. سلام رفتم مبدل یو اس بی به سریال رو تهیه کردم با یک نرم افزار ترمینال تستش کردم buad ماژول رو هم روی 9600 و هم 38400 گزاشتم و چندتا دستور فرستادم ولی ماژول جوابی نداد فکر کنم ماژول خرابه ماژول نوی نو بودش گندش بزنم این شانسو بازم بابت راهنماییتون ممنون اقا یونس

  15. سلام اقا یونس رفتم یکی دیگه خریدم از این مدل با برد مبدلش وبا مبدل یو اس بی به سریال و نرم افزار ترمینال تستش کردم اما مثل قبلی چیزی ارسال نمیکرد و دریافت هم نه , به گوشی و هم وصل میشه ولی ولی خروجی نداره نمیدونم اشکال از منه ؟ از چیه ؟ خواهشن کمکم کنید

    1. شما پایه tx مبدلتون رو به rx خود مبدلتون وصل کنید و در ترمینال تایپ کنید ببینید متنی که تایپ میکنید باید دوباره نمایش داده شود و اینکه مدل مبدل رو به من بگید درضمن خواهشا از این پس در انجمن سوالات خودتون رو مطرح کنید تا من بهتر پاسخ بدم

  16. اقا یونس فهمیدم اشکال از چی بودش من باید یک کریستال به میکروم وصل میکردم تا مشکلم حل میشد برنامه ای بلوتوثی که از کسی گرفته بودم به میکرو کریستال خارجی ای وصل نکرده بود و منم اینکارو نکردم میکرو طرف فکر کنم قدیمی بودش و فرکانس رو دقیق تر تنظیم میکرد ولی ماله من از این جدیدا بود و فرکانس رو دقیق تنظیم نمیکرد .در ضمن کریستالی که گزاشتم 11.0592M بودش . این رو برا این نوشتم تا بقیه اشتباه منو نکنن. با تشکر

  17. سلام.ببخشید اگه بخواهیم بجای کریستال خارجی از کریستال داخلی استفاده کنیم علاوه بر نوشتم مقدار کریستال در برنامه ایا نیاز هست فیوز بیت هارا هم تعییر بدیم؟

  18. با سلام
    یه نقد به نوع سایت دارم :
    این سایت همه جوره خوبه اما مطالب این سایت یکمی نامنظم قرار گرفته

  19. سلام ،دوستان من از سنسوردماي ds18b20استفاده ميکنم که با کريستال داخلي يک مگاهرتز کارميکنه ،،همينو ميخوام به اين ماژول وصل کنم ولي شما کريستال خارجي يازدپ مگا بايت استفاده کرديد ،راه حلش چيه؟؟ميتونم کريستال اين ماژول رو روي يک مگا هرتز تنظيم کنم و مشکلي پيش نياد؟؟؟؟دوستان اگه کسي ميدونه بهم کمک کنه خيلي فوووووري لازمش دارم… ممنون

  20. سلام
    خسته نباشید
    می خواستم بدونم اگه بخوایم یه کد رو از طریق میکرو و بلوتوث ارسال کنیم باید چیکار کرد
    هرچه printbin میزنم هیچی ارسال نمیشه
    اگه میشه جواب رو ایمیل کنید ممنون میشم

    1. خوب باید نرم افزاری که رو اندرویده یا هر چیزی قابلیت دریافت و نمایش کاراکتر رو داشته باشه

  21. با سلام …. من این پروژه رو میخام انجام بدم ولی به مشکل برخوردم .. ماژول رو راه اندازی کردم و به میکرو وصل کردم وقتی با گوشی به ماژول وصل میشم و اطلاعاتی رو ارسال میکنم یا خروجی ندارم و یا به ازای کاراکتر متفاوت خروجی های یکسانی رو توی میکرو میگیرم ( این خروجی ها رو روی lcd ) نمایش دادم و مقادیر 255 و 245 و حول و حوش این مقادیره مشکلم اینه به ازای ارسال یک کاراکتر یک خروجی منحصر بفرد رو از دستور inputbin نمیگیرم

  22. سلام آیا امکان برنامه ریزی مستقیم این ماژول ها هست؟ یعنی بدون استفاده از AT COMMANDها؟

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

همچنین ببینید
بستن