سلام دوباره.
آغاز کد نویسی (
چون این تاپیک مبحث اموزش میکروکنترولر AVR و برنامه نویسی نیست، کدها رو به صورت کامل توضیح نخواهیم داد،انشالله در تاپیک مربوطه در این رابطه ها بیشتر صحبت خواهیم کرد)
طبق روال برنامه نویسی ،ابتدا کتابخانه هایی مورد نیاز را در ابتدا صفحه قرار میدهیم . (کتابخانه معرفی میکروکنترولر،تاخیر،ال سی دی و ..)
Please Login or Register to see this codeو در قسمت بعدی،ما باید
ولتاژ مرجع را معرفی کنیم! اما
ولتاژ مرجع چیست؟! واحد
ADC همیشه خودش را به یک ولتاژ اصلی مقایسه میکند. این ولتاژ می توان به سه طریق تامین شود، پایه
AVCC میکروکنترولر، یا پایه
AREF میکروکنترولر، یا به کمک ولتاژ
2.56 درونی خود میکروکنترولر(شرکت سازنده این ولتاژ دقیق را درون میکروکنترولر ایجاده کرده) به وجود اورد.
که ما برای اسانی پروژه ولتاژ مراجع را
5 ولت بر روی پایه
AVCC میکروکنترولر قرار دادیم.
میکروکنترولر وقتی ولتاژ 5 ولت را برایش تعریف کردیم، از این به بعد ولتاژ دریافتی را با این
5 ولت مقایسه می کند و به نسبت ان تعداد
1024 واحد خود را افزایش یا کاهش میدهد. به عنوان مثال اگر ولتاژی حدود
4.5 ولت را برای اندازگیری به او بدهیم حدود
921 واحد خود را افزایش میدهد.
میکروکنترولر در وضعیت بالا می تواند با دقت هر
0.005 (
5 میلی ولت) تغییر، یک واحد خود را افزایش و یا کاهش دهد.که این در نوع خودش بسیار خوب می باشد.
حال برای اینکه میکروکنترولر ولتاژ مرجع خود را پایه AVCC قرار دهید . یک تابع تعریف می کنیم و ولتاژ مرجع را اینطور تعریف می کنیم:
Please Login or Register to see this codeو بعد از ان، برای نمونه برداری واحد ADC از ولتاژ مد نظرمان از این کدها استفاده میکنیم(نگران این کدها نباشید،معمولا توسط خود کدوِیژن داده میشود)
Please Login or Register to see this codeتابع اصلی برنامه رو تعریف می کنیم (
تابع اصلی جایه است که همیشه کدهای اصلی برنامه در انجا قرار می گیرد)
Please Login or Register to see this codeسپس یک متغییر
16 بیتی از نوع
int به نام
result تعریف می کنیم(
result در واقع متغیریست که ما خروجی ها ADC را در ان قرار میدهیم)
Please Login or Register to see this codeاین قسمت از کدها رو هم بعد از کد قبلی قرار میدهیم(
بدلیل پیچیدگی ها خاص خودش،توضیح مختصری در رابطه اشان داده ام)
Please Login or Register to see this codeحال وارد چرخه دائمی while میشویم
Please Login or Register to see this codeابتدا با کد زیر ADC شماره 0 (
پایه شماره 23 میکروکنترولر) را خوانده و به درون متغیر result قرار میریزیم(
اگر دقت کرده باشید،در اول مطالب این نکته رو توضیح دادیم که، ولتاژ خوانده شده توسط ADC به صورت یک عددی بین 1 تا 1024 می باشد.که ما در کدی بعدی به کمک یک فرمول آن را تبدیل به ولتاژ می کنیم)
Please Login or Register to see this codeسپس برای بدست اوردن ولتاژ ابتدا متغیر را ضربدر 5 می کنیم و در نهایت تقسیم بر 1024 می کنیمPlease Login or Register to see this codeحال در متغیر result ولتاژ اندازه گرفته شده قرار دارد،به کمک باقی کدها ، ان را نمایش میدهیم ..
Please Login or Register to see this codeهمه کدهای گفته شده یک جا:Please Login or Register to see this codeاکنون بعد از ذخیر سازی (
به کمک دکمه شبفت + f9 پروژه را ذخیر کنید،تا به شما یک فایل Hex بدهد) شبیه ساز را باز کنید روی میکروکنترولر کلیک کنید،روی گزینه
program file کلیک کنید و به ادرس
Debug\Exe\ (
واقع در محل ذخیر سازی فایل نوشته شده با کدویژن) رفته و فایل پسوند hex را انتخاب کنید .
اکنون اگر کلید
run the simulation رو بزنید(انتها گوشه سمت چپ) ال سی دی روشن میشود و شما می توانیم با تغییر دادن مقاومت متغیر ولتاژ ها را اندازه بگیرید ..
ادامه دارد .. باتشکر.