ارتباط میکروکنترلر AVR و کامپیوتر توسط درگاه سریال UART

درگاه سریال UART

در این بخش دانلود پروژه ارتباط میکروکنترلر AVR و کامپیوتر توسط درگاه سریال UART, توسط تیم الکترونیک وبرنامه نویسی الکترونیک ۹۸ برای شما علاقه مندان به پروژه های میکروکنترلر AVR آماده شده است. ارتباط بین کامپیوترهای شخصی به عنوان پردازشگرهای قدرتمند با دنیای خارج از جمله مسائل ضروری در کاربرد های کنترلی محسوب می شود. یکی از روش های برقراری ارتباط و انتقال اطلاعات بین کامپیوتر و تجهیزات الکترونیکی, استفاده از واسط سریال موجود روی کامپیوتر شخصی است.

واسط سریال, واسط سرعت بالایی به شمار نمی رود, ولی جوابگوی بیشتر نیازهای کنترلی و انتقال اطلاعات خواهد بود, زیرا در کاربرد های کنترلی, معمولا نیازی به ارسال و دریافت اطلاعات با سرعت بالا نیست. هدف ما در این پروژه برقراری ارتباط سریال بین میکروکنترلر و کامپیوتر از طریق واسط سریال و با استفاده از زبان برنامه نویسی Visual Basic 6 است. این پروژه دو قسمت را در بر می گیرد, قسمت الکترونیکی, شامل میکروکنترلر و تجهیزات مربوط به آن و قسمت نرم افزار, شامل یک نرم افزار ساده طراحی شده توسط VB6 که مسئول برقراری ارتباط با میکروکنترلر AVR است. اطلاعات و دستورهای کنترلی از کامپیوتر به میکروکنترلر و برعکس منتقل می شوند و به این ترتیب یک ارتباط تمام دو طرفه غیر همزمان خواهیم داشت. نقشه شماتیک کامل مدار پروژه در تصویر درج شده در ادامه مطلب قابل مشاهده است.

دانلود پروژه ارتباط میکروکنترلر AVR و کامپیوتر توسط درگاه سریال UART

تبدیل سطوح منطقی با تراشه MAX232

سطوح منطقی در استاندارد RS232, با ولتاژ مثبت و منفی 12 ولت مشخص می گردند, حال آنکه این سطوح در استاندارد TTL, با ولتاژ 5 ولت و صفر مشخص شده اند. برای اینکه بتوانید توسط درگاه سریال UART کامپیوتر با میکروکنترلرهای AVR که از استاندارد TTL استفاده می کنند, ارتباط برقرار کنید, در نظر گرفتن واسطی که دو استاندارد ذکر شده را به یکدیگر تبدیل کند, ضروری است.

تراشه های فراوانی برای رسیدن به این هدف موجودند که از جمله معروف ترین آن ها, تراشه MAX232 ساخت شرکت ماکسیم است. این تراشه 16 پایه, دارای دو کانال ارتباطی مجزا, یعنی دو کانال رفت و برگشت کامل می باشد. تصویر زیر ترتیب پایه ها و چگونگی بایاس این تراشه را نشان می دهد. همانطور که مشاهده می شود, برای استفاده از تراشه MAX232 چهار خازن لازم است, خازن های C1 تا C4 که با پلاریته نشان داده شده در شکل, به تراشه متصل می شوند.

نقشه شماتیک راه اندازی آی سی MAX232

نقشه شماتیک پروژه ارتباط میکروکنترلر AVR و کامپیوتر توسط درگاه سریال UART

نقشه شماتیک پروژه ارتباط میکروکنترلر AVR و کامپیوتر توسط درگاه سریال UART

دو رله RL1 و RL2 به عنوان راه انداز دو وسیله الکتریکی دلخواه با نام های Device1 و Device2 در نظر گرفته شده اند. 4 میکروسوئیچ متصل شده به پورت C میکروکنترلر ATmega8 برای روشن و خاموش کردن این وسایل به کار می روند. با فشار دادن سوئیچ Device1 ,D1 ON از طریق رله RL1 روشن می شود و با زدن D1 OFF خاموش می گردد. همین عمل در مورد Device2 و رله RL2 توسط دو سوئیچ D2 ON و D2 OFF صورت می گیرد. چهار عدد دیود متصل به سوئیچ ها, به این دلیل به کار رفته اند که با فشار دادن هر سوئیچ, یک وقفه به میکروکنترلر اعمال شود. در زیروال وقفه, وضعیت پورت C خوانده می شود تا مشخص گردد کدام سوئیچ فشار داده شده است.

عملکرد نرم افزار طراحی شده در VB6

همزمان با تغییر وضعیت رله ها بر روی مدار, وضعیت فعلی هر یک از رله ها, توسط ارتباط سریال به کامپیوتر منتقل می گردد تا در فرم برنامه VB6 نمایش داده شود. در برنامه طراحی شده توسط نرم افزار VB6 در قسمت Device Checker, وضعیت فعلی Device1 و Device2 مشخص است و می توان وضعیت آن ها را در دو کادر کناری موجود تغییر داد. چراغ مقابل این کادرها, نیز در صورت روشن بودن هر یک از وسایل به رنگ قرمز در خواهد آمد. با استفاده از دکمه های رادیویی (Radio Buttons) موجود در قسمت وسط فرم به نام های COM1 و COM2, می توان شماره درگاه مورد نظر را انتخاب کرد (در حالت پیش فرض Com1 انتخاب شده است).

در صورتی که COM1 با COM2 توسط وسایل دیگر مورد استفاده قرار گرفته باشد, پیغام خطایی صادر می شود تا کاربر را از اینگه درگاه مورد نظر, در حال استفاده است مطلع سازد. همچنین توسط سه نوار پیمایشی افقی (HScroll Bar) موجود که با نام های R, G و B مشخص شده اند, می توان شدت نور هر یک از کانال های RGB LED متصل به پایه های PB0 تا PB2 را تنظیم کرد. در نتیجه با تنظیم این سه نوار پیمایش افقی, رنگ RGB LED موجود به  دلخواه کاربر تغییر می کند.

برنامه میکروکنترلر در محیط نرم افزار Bascom-AVR

برنامه میکروکنترلر در محیط نرم افزار Code Vision AVR

شرح برنامه میکروکنترلر به زبان بیسیک و زبان C

این دو برنامه، به صورتی ساده و روان طراحی شده اند و جنبه های مختلف و نکات مربوط به چگونگی برقراری ارتباط سریال بین میکروکنترلر و کامپیوتر از طریق واسط سریال را مطرح می کنند و همانطور که اشاره شد، هدف این پروژه، جز آموزش آنها نیست. در اینجا با توجه به یکسان بودن عملکرد هر دو برنامه، تنها برنامه میکروکنترلر در محیط نرم افزار Bascom-AVR را شرح می دهیم.

برای برقراری ارتباط، از پایه های RXD و TXD میکروکنترلر استفاده شده است. این دو پایه امکان ارتباط دو طرفه کامل را به صورت سخت افزاری فراهم می کنند. در ابتدای برنامه با استفاده از دستور Baud = 9600 میزان باود برای ارسال و دریافت مشخص شده است. بدیهی است در برنامه نوشته شده توسط VB6 که روی کامپیوتر اجرا می گردد، نیز همین مقدار برای ارسال و دریافت به کار رفته است. تایمر صفر برای تولید موج PWM به منظور تغییر شدت نور، در هریک از کانال های R و G و B از RGB LED استفاده شده است.

معرفی وقفه ها و تایمرها تعریف شده در برنامه

بعد از تعریف متغیرها و مقدار دهی اولیه، برنامه وارد یک حلقه Do…Loop می گردد و از این پس، کل عملیات به صورت وقفه ای انجام می شود. در این برنامه، سه منبع وقفه به کار گرفته شده است که عبارتند از:

1- وقفه تایمر صفر که برای زمانبندی جهت تولید پالس PWM استفاده شده است.

2- وقفه خارجی صفر که برای آگاهی از وضعیت سوئیچ ها به کار گرفته شده است.

3- وقفه واسط سریال که برای آگاهی از زمان دریافت اطلاعات در واسط سریال استفاده شده است.

شرح عملکرد وقفه ها و تایمرها در برنامه

در زیر روال وقفه تایمر، با توجه به مقادیر موجود در متغیرهای R و G و B سیگنال PWM مناسب روی پایه های PB0 تا PB2 تولید می شود. مقادیر R و G و B با توجه به اطلاعات دریافتی از کامپیوتر به روز می شوند.

زیر روال وقفه خارجی با فشار دادن هر یک از چهار سوئیچ نشان داده شده در نقشه شماتیک فراخوانی می گردد. در ابتدا وضعیت پورت C بررسی می شود تا مشخص گردد که کدام یک از سوئیچ ها فشرده شده است. سپس عمل مناسب (خاموش و یا روشن کردن وسیله مورد نظر) انجام می شود و بسته به عمل انجام شده، یکی از اعداد 1 تا 4 توسط دستور Print و از طریق واسط سریال ارسال می شود تا وضعیت هر وسیله در فرم برنامه ای که روی کامپیوتر در حال اجراست، نمایش داده شود.

همچنین با دریافت اطلاعات در واسط سریال میکروکنترلر، با توجه به فعال بودن وقفه دریافت واسط سریال، کنترل برنامه به زیر روال مربوط (Intlab) هدایت می شود. ابتدا توسط دستور Receive=inkey() بایت دریافتی موجود در بافر ورودی، در متغیر Receive قرار می گیرد. سپس توسط ساختار Selectr Case با توجه به مقدار متغیر Receive عمل مناسب انجام می شود. اعداد 1 تا 4 برای روشن و خاموش کردن رله یک و رله دو به کار می روند. اعداد 10 و 11 و 12 به ترتیب برای تعیین شدت نور در LED های قرمز، سبز و آبی به کار رفته اند.

با دریافت هر یک از اعداد، مقدار موجود در متغیر S که از قبل توسط برنامه VB6 ارسال سده بود، در متغیرهای R و G یا B قرار می گیرد تا در فراخوانی بعدی زیر روال وقفه تایمر صفر به صورت موج PWM به RGB LED اعمال شود.

برنامه نرم افزار تحت ویندوز در محیط Visual Basic 6

توجه : برنامه طراحی شده توسط نرم افزار VB6 را می توان در ویندوزهای اکس پی XP نسخه 32 بیتی اجرا نمود در صورتی که ویندوز سیتسم شما ویندوز ویستا, ویندوز هفت و یا ویندوز هشت بود می توانید برای اجرای برنامه کدک ها ویندوز اکس پی XP را برای ویندوز مربوطه خود از طریق اینترنت دانلود نمائید و سپس برنامه را اجرا کنید.

 اطلاعات پروژه

 رمز فایل : www.electronics98.com

 حجم فایل : 903 کیلوبایت

 محیط برنامه نویسی : BASCOM-AVR | Code Vision | Visual Basic 6

 برنامه نویسی شده به زبان : BASIC | C | Visual Basic

 نویسنده : فرهاد اکبری

 تاریخ انتشار : 10 آگوست 2014

2 دیدگاه

  1. سلام. من یه پروژه دارم که توش از UART استفاده میکنم. یه مشکلی دارم. اطلاعات رو از UART1 دریافت میکنم و روش محاسباتی انجام میدم و در نهایت اونو با UART0 ارسال میکنم. دفعه اول اطلاعات درست ارسال میشه، اما دفعه دوم خراب میشه. یه وقتایی هم دومیش خوبه و سوم به بعدش خراب میشه.مشکلم رو اینجا مطرح کردم با توضیحات ولی پاسخ ها فایده ای نداشته. ممنون میشم راهنماییم کنین

  2. سلام دوست عزیز
    آدرسی که داده بودید اشتباه بود، لطفا برنامه خود را به آدرس ایمیل ارسال کنید.

 شرایط و قوانین ثبت دیدگاه

 فارسی بنویسید و از کیبورد فارسی استفاده کنید.

 لطفاً بیش‌از‌حدِ معمول، شکلک یا ایموجی استفاده نکنید و از کشیدن حروف یا کلمات با صفحه‌کلید بپرهیزید.

 به کاربران و سایر اشخاص احترام بگذارید. پیام‌هایی که شامل محتوای توهین‌آمیز و کلمات نامناسب باشند، حذف می‌شوند.

 از ارسال لینک‌های سایت‌های دیگر و ارایه‌ی اطلاعات شخصی خودتان مثل شماره تماس، ایمیل و آی‌دی شبکه‌های اجتماعی پرهیز کنید.