راه اندازی ماژول بلوتوث 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 آماده
دانلود فایل PCB
دستت درد نکنه، یعنی دست جفتتون درد نکنه.
خدا خیرتون بده ایشالله، باعث حل مشکلات ما و گسترش علم میشید.
خداقوت و امیدوارم همیشه همینطور شاداب و با انگیزه به کارتون ادامه بدید و ماهم استفاده کنیم….
ممنون دوست عزیز همین نظرات شما باعث می شه با انگیزه ادامه بدیم
سلام
این کدی که نوشتید {
تو خط 12 Dim B As Byte , C As Byte , D As Bit
کار D As Bit چیه. تو جایی از برنامه نمیبینم.
}
بله شما درست میگین برنامه رو ویرایش کردیم ولی یادمون رفته متغییر D رو حذف کنیم
سلام
خواهشا راهنمایی کنید
من برای فعال کردن کریستال خارجی برای 11.059200
فیوزبیت نوسان ساز رو دستکاری کردم اما باعث غیر فعال شدن میکرو کنترلر شد و نمیشه با پرگرامر وصل شد
ظمنا من کریستال خارجی هم گذاشتم اما بی نتیجه هست
یادتون میاد فیوزبیت رو آخرین بار روی چه چیزی تنظیم کردین؟
سلام
اره کریستال تنظیم شده رو گذاشتم اما کار نکرد 🙁
احتمالا اشتباهی رویه به چیزه دیگه تنظیم کردید چون اگه روی کریستال خارجی تنظیم شده باشه با گذاشتن کریستال پروگرم میشد
با سلام خدمت دوست خوبم
قبل از هر چیز از اینکه آموزشهای مفید در سایت میگذارید و دانش خودتون را به دیگران انتقال میدید ممنونم و آرزوی موفقیت برای شما دارم.
من تازه کارم و اگه براتون ممکنه راهنمایی کنید
من چند وقتیه که با خرید ماژول بلوتوث سعی دارم چند led را روشن و خاموش کنم با استفاده از بلوتوث گوشی به میکرو اما تا الان موفق نشدم اگه برای شما امکانش هست بگید چطوری برنامه ایی که نوشته ایی با بسکام میشه کریستال 11.0592را به صورت منبع خارجی به میکرو وصل کرد آیا در بسکام امکان تغییر فیوزبیت هست ؟
من بنامه بالا رو بروی میکرو ریختم اما نتیجه ایی نگرفتم خواهشمندم راهنمایی کنید.
دوست عزیز باید به این نکته متذکر بشم که ما معمولا فیوز بیت ها رو از طریق پروگرمر تغیر میدیم نه از طریق بسکام البته با بسکام هم میشه ولی باید پروگرمرتون نوع دیگه باشه منظورم اینه که ما از پروگرمر usb asp یا همون progisb استفاده میکنیم در ضمن شما در بسکام فقط با نوشتن مثلا $ crystal=8000000به میکرو تون میگید که کلاک کاریت رو این قرار بده که در این صورت اگر فیوز بیت مثلا یک مگا هرتز باشه دستور wait 1 یک ثانیه طول نمیکشه بلکه 8 ثانیه طول میکشه. شما برید در قسمت navigationپروگرمر کریستال بالا که با پیش نویس ext رو هست رو تیک بزنیدextیعنی تنظیم میکرو برای استفاده از کریستال خارجی که اگر کریستال وصل باشه کار میکنه وگر نه اصلا کار نمیکنه این موضوع هنگام پروگرم کردن نیز صادق هست البته به پروگرامر هم بستگی داره
سلام
دوست خوبم میشه بگید در خط 10 برنامهفهوم framesize = 40 $ چیه و کاربردش چیه ؟
دوست عزیز این دستور برای این هست که کامپیوتر امتیاز مناسبی به برنامه نوشته شده شما بدهد در ضمن با این دستورشما نیازی به فایل configurationندارید به طور خلاصه یه چیز اضافه هست که میتونید حذف کنید
سلام مهندس
فایل configuration چیه میشه یه توضیح کامل بدی
فایلی هست که بسکام خودش تولید میکنه واصلا مهم نیست و کاربرد نداره
سلام مهندس
مگه نباید ارتباط بین میکرو و ماژول بلوتوث از طریق پایه های rx & tx باشه چرا پایه های 2&3 پورت دی رو ورودی تعیین کردین
خب تعریف شده که شده اگه تو برنامه استفاده نشده میتونید حذف کنید . من واسه یه کاری اون پورت ها رو تعیین کرده بودم که بعد منصرف شده حالا شما اینقدر سخت نگیر تو برنامه نویسی اینجور ایراد ها که کار رو مختل نمیکنه زیاده
سلام
توی کدی که بالا هست به سطر 18 فکر نکنم نیاز باشه چون تا منبع تغذیه رو به میکرو وصل میکنیم موتور شروع میکنه به چرخیدن.دزست میگم؟
واسه همینه که من هم به عنوان توضیح قراردادم و اصلا اون سطر کامپایل نمیشه و تاثیری تو برنامه نداره
سلام
توی کدی که بالا هست به سطر 18 فکر نکنم نیاز باشه چون تا منبع تغذیه رو به میکرو وصل میکنیم موتور شروع میکنه به چرخیدن.درست میگم؟
سلام
ببخشید برادر زیاد سوال میپرسم
اگه توی این مدار کریستال خارجی رو بردارم و کریستال رو 8000000 تعیین کنم توی این مدار چه مشکلی پیش میاد
سوال بعدی
اون جایی که نوشته ENTER NUMBER گفتید که ارسال میشه. به کجا ارسال میشه روی گوشی نمایش داده میشه؟ و اگر جوابش بله بود میشه بجای ENTER NUMBER از کاراکتر های فارسی استفاده کنم؟
سوال بعدی
توی سطر های 32&39 یه تاخیر گذاشتی واسه چین؟
سلام برادر من یه تازه کارم و تو ذهنم سوالاتی پیش میاد خواهش میکنم که جواب بده
توی اون کدی که هست چرا این دو خطو ننوشتی Enable Urxc
Enable Utxc
اصلا اینا چیه لازم نیست از اینا استفاده کنی همون BAUD رو تنظیم کنی کافیه زیاد به ریزش نرو
با سلام و عرض خسته نباشید من برنامه ای رو برا روشن و خاموش کردن 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
مشکل شما تو این هست که سطح ارتباطی بین ماژول و میکرو یکی نیست میکرو با 5ولت هست و ماژول با 3.3 ولت . دو راه برای حل این مشکل وجود داره یکی این هست که میکرو رو با تغذیه ای که ماژول رو راه اندازی کردی راه اندازی کنی . دومین راه مدار level shifter هست که باید در پایه tx میکرو اجرا کنی
سلام برادر
شما فایلی که واسه دانلود گذاشتید رو دانلود کردم در شماتیک مدار یه مشکلی وجود داشت شما نباید پایه ۳۴ key ماژول بلوتوث رو به زمین وصل کنی در این صورت دیگه baud rate 9600نداری برای جواب دادن باید تو کدش یه ویرایش ایجاد کنید.
یه پایه رو با یه تاخیر دو دهم ثانیه یک کنید پایه 34 رو به اون وصل کنید در این صورت جواب میده
من که با این روش جواب گرفتم (در الکترونیک نیازی به رعایت نکات ریز نیست)
سلام اقا پونس من اول 3.3v رو برا هردوشون گزاشتم دیدم جواب نمیده بعد 5v رو به میکرو و 3.3v رو به ماژول زدم وزمینشون رو یکی کردم بعدم جواب نداد حتی با برنامه های بیسیک و c شما هم تستش کردم نمیشه خوهشن کمکم کنین
ببینید شما اول ماژول رو به مبدل یو اس بی به سریال وصل کنید و کارهایی رو که میخواهید انجام بدهید و ببینید که ماژول سالمه یا نه؟
سلام رفتم مبدل یو اس بی به سریال رو تهیه کردم با یک نرم افزار ترمینال تستش کردم buad ماژول رو هم روی 9600 و هم 38400 گزاشتم و چندتا دستور فرستادم ولی ماژول جوابی نداد فکر کنم ماژول خرابه ماژول نوی نو بودش گندش بزنم این شانسو بازم بابت راهنماییتون ممنون اقا یونس
ناراحت نشو من خودم 200 هزار تومن فقط ماژول و ایسی سوزوندم
سلام اقا یونس رفتم یکی دیگه خریدم از این مدل با برد مبدلش وبا مبدل یو اس بی به سریال و نرم افزار ترمینال تستش کردم اما مثل قبلی چیزی ارسال نمیکرد و دریافت هم نه , به گوشی و هم وصل میشه ولی ولی خروجی نداره نمیدونم اشکال از منه ؟ از چیه ؟ خواهشن کمکم کنید
شما پایه tx مبدلتون رو به rx خود مبدلتون وصل کنید و در ترمینال تایپ کنید ببینید متنی که تایپ میکنید باید دوباره نمایش داده شود و اینکه مدل مبدل رو به من بگید درضمن خواهشا از این پس در انجمن سوالات خودتون رو مطرح کنید تا من بهتر پاسخ بدم
اقا یونس فهمیدم اشکال از چی بودش من باید یک کریستال به میکروم وصل میکردم تا مشکلم حل میشد برنامه ای بلوتوثی که از کسی گرفته بودم به میکرو کریستال خارجی ای وصل نکرده بود و منم اینکارو نکردم میکرو طرف فکر کنم قدیمی بودش و فرکانس رو دقیق تر تنظیم میکرد ولی ماله من از این جدیدا بود و فرکانس رو دقیق تنظیم نمیکرد .در ضمن کریستالی که گزاشتم 11.0592M بودش . این رو برا این نوشتم تا بقیه اشتباه منو نکنن. با تشکر
سلام.ببخشید اگه بخواهیم بجای کریستال خارجی از کریستال داخلی استفاده کنیم علاوه بر نوشتم مقدار کریستال در برنامه ایا نیاز هست فیوز بیت هارا هم تعییر بدیم؟
بله نیاز به تغییر فیوز بیت خواهید داشت بهتره به این پست نگاه کنید:
http://electrolab.ir/avr-fuse-bits/
با سلام
یه نقد به نوع سایت دارم :
این سایت همه جوره خوبه اما مطالب این سایت یکمی نامنظم قرار گرفته
به نظرتون باید چجوری میتونه باشه لطفا راهنمایی نمایید
سلام ،دوستان من از سنسوردماي ds18b20استفاده ميکنم که با کريستال داخلي يک مگاهرتز کارميکنه ،،همينو ميخوام به اين ماژول وصل کنم ولي شما کريستال خارجي يازدپ مگا بايت استفاده کرديد ،راه حلش چيه؟؟ميتونم کريستال اين ماژول رو روي يک مگا هرتز تنظيم کنم و مشکلي پيش نياد؟؟؟؟دوستان اگه کسي ميدونه بهم کمک کنه خيلي فوووووري لازمش دارم… ممنون
مشکلی پیش نمیاد شما از داخلی 1 مگ استفاده کنید
سلام
خسته نباشید
می خواستم بدونم اگه بخوایم یه کد رو از طریق میکرو و بلوتوث ارسال کنیم باید چیکار کرد
هرچه printbin میزنم هیچی ارسال نمیشه
اگه میشه جواب رو ایمیل کنید ممنون میشم
من آشنایی با بسکام ندارم آقای عباس زاده هم مدتی هست به سایت سر نمیزنه
خوب باید نرم افزاری که رو اندرویده یا هر چیزی قابلیت دریافت و نمایش کاراکتر رو داشته باشه
با سلام …. من این پروژه رو میخام انجام بدم ولی به مشکل برخوردم .. ماژول رو راه اندازی کردم و به میکرو وصل کردم وقتی با گوشی به ماژول وصل میشم و اطلاعاتی رو ارسال میکنم یا خروجی ندارم و یا به ازای کاراکتر متفاوت خروجی های یکسانی رو توی میکرو میگیرم ( این خروجی ها رو روی lcd ) نمایش دادم و مقادیر 255 و 245 و حول و حوش این مقادیره مشکلم اینه به ازای ارسال یک کاراکتر یک خروجی منحصر بفرد رو از دستور inputbin نمیگیرم
سلام کریستال مناسب گذاشتین؟
سلام.
ممنون از سایت خوبتون.
سطر ده رو چیه؟؟
سلام آیا امکان برنامه ریزی مستقیم این ماژول ها هست؟ یعنی بدون استفاده از AT COMMANDها؟
از کریستال داخلی 8 مگ استفاده کنم بازم کار خواهد کرد
سلام میشه بگید با چه برنامهی اندرویدی میشه کنترلش کرد