میکروکنترلر AVR در واقع یک چیپـست هست و عمل برنامه نویسی روی آن توسط کامپیوتر انجام میشود .

در واقع میشه گفت تکنولوژی حال حاضر جهان در میکروکنترلرها و میکروپروسسور ها خلاصه میشود

و این یک مزیت برای مهندسین رشته برق و‌ کامپیوتر هست ، چرا که با یادگیری میکروکنترلرِ AVR میتونن ، مبتکر و سازنده تکنولوژی نوین در آینده بشوند

جالب است بدانید تمام پروژه ها اعم از هوشمند سازی منازل ، کارت خوان هوشمند ( مثل کارت دانشجویی ) ، قفل رمزی دیجیتالی و اثر انگشت ، پروژه وای فای و بلوتوث ، جی پی اس و ... همه ی اینا با استفاده از میکروکنترلر های AVR و ARM انجام میپذیرد.

نکته مهم این است که هزینه ساخت مدارات با میکروکنترلرِ AVR به نسبت پایین است . برای مثال می‌توانید با تنها ۲۰ هزار تومان درب های منزل خود را هوشمند کنید بدین گونه که با وارد کردن پسورد ، درب باز شود.

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

جالب است بدانید که با AVR میتوان تلفن همراه هم ساخت !!!!!!!!! . یعنی میتونید تماس بگیرین ، به تماس پاسخ بدهید و اس ام اس بفرستید و یا حتی به اینترنت متصل بشین !

 

جلسه اول : (آشنایی مقدماتی)

❓❓میکروکنترلر AVR دقیقا چیه ؟ما قراره با چی کار کنیم ؟

میکروکنترلرها در واقع یک نوع خاصی از مدارهای مجتمع ( آی سی - IC ) هستند.ویژگی منحصربه فرد کننده این آی سی ها در این هست که از اجزای مختلفی مثل میکروپروسسور ، حافظه ، واحدهای ورودی و خروجی ، تایمر و ... تشکیل شده اند.وجود این اجزا موجب شده که میکروکنترلرها به مانند یک کامپیوتر توانایی پردازش و محاسبات رو داشته باشند.کمپانی ATMEL میکروکنترلرهای خود را با نام تجاری AVR روانه بازار کرده است. یک نمونه از این میکروکنترلرها را در شکلی پایین این پست در کانال میبینید.

ورودی ها میتوانند دیتای خروجی یک سنسور(دما ، فشار و ...) ، فشرده شدن یک کلید و دیتای دریافتی یک ماژول(بلوتوث ، جی اس ام ، وایفای و ... ) و ... باشد.

خروجی ها هم میتوانند روشن و خاموش شدن یک لامپ LED ویا روشن کردن موتور با سرعت خاص ، فعال شدن یک رله ، ارسال یک اس ام اس توسط ماژول جی اس ام ، باز شدن درب و ... باشد.

خب طبیعتا همانگونه که یک کامپیوتر برای به کار افتادن نیاز به برنامه نویسی دارد ، برای کنترل میکروکنترلر نیز باید از برنامه نویسی استفاده کنیم.دو زبان  BASICو C برای برنامه نویسی این میکروکنترلر وجود دارد.چون زبان سی کامل تر هست،لذا آموزش های ما هم بر اساس همین زبان خواهد بود.مسلما برای وارد کردن کدها به یک کامپایلر نیاز داریم ، کامپایلر مورد استفاده ما نرم افزار Codevision هست.این نرم افزار را در قدم اول دانلود و نصب کنید.

برای انتقال کدهای نوشته شده به میکرو کنترلر نیاز به یک واسطه وجود دارد.این ارتباط بین میکروکنترلر و کامپیوتر توسط دستگاهی به نام Programmer انجام میشود که میتوانید آن را از بازار تهیه کنید.

 

#جلسه

پایه های ورودی و خروجی دیجیتال ( Digital Input/Output ):

در میکروکنترلرهای AVR تعدادی پایه وجود دارد.برخی از این پایه ها توانایی ورودی یا خروجی شدن ( به اختیار خودمان) را دارند.یعنی میتوانیم به دلخواه تعدادی پایه را به عنوان ورودی دیجیتال ویا تعدادی دیگر را به عنوان خروجی دیجیتال تعریف کنیم (مثالهایی از ورودی و خروجی ها در پست گفته شد ).پایه هایی که به عنوان ورودی تعریف کرده ایم ، توسط مدار یا سنسوری به آنها صفر و یک اعمال میشود و ما میتوانیم توسط این پایه مقدار آن را متوجه بشیم،برای مثال فرضا سنسوری داریم که اگر دما محیط از 30درجه بیشتر شد مقدار خروجی سنسور یک منطقی بشود و اگر کمتر از 30درجه باشد خروجی سنسور صفر منطقی باشد.حال اگر پایه خروجی سنسور را به یک پایه ورودی میکروکنترلر وصل کنیم ، میتوانیم متوجه بشیم که چه زمانی دمای محیط بیشتر از 30 درجه شده است.پایه هایی که به عنوان خروجی تعیین میکنیم ، مقدار منطقی این پایه ها دست خودمان است.یعنی میتوانیم تعیین کنیم که مقدار این پایه صفر باشد یا یک . خب با صفر و یک کردن ( به تمایل خودمون ) میتوانیم یک لامپ یا موتور الکتریکی را روشن ویا خاموش کنیم.

گروه بندی پایه های ورودی و خروجی :

برای راحتی استفاده از پایه های ورودی و خروجی ، پایه ها را با حروف الفبای لاتین ( A,B,C,… ) نامگذاری و دسته بندی کرده اند(عمدتا دسته های هشت تایی ).برای مثال در تصویر زیر یک نمونه از میکروهای AVR با کد ATMEGA 16 را مشاهده میکنید.میبینید که پایه های ورودی و خروجی به 4 دسته 8تایی تقسیم شده اند.برای مثال PA0 اولین پایه از دسته A هست.یا PC4 پنجمین پایه از دسته C است.