PDA

View Full Version : مبدل آنالوگ به دیجیتال در avr



fahimeh2010
جمعه 09 بهمن 1388, 18:06 عصر
سلام
من میخوام یه برنامه برای ADC در codevision برای IC Atmega32 بنویسیم و در نرم افزار Proteus شبیه سازی کنم.ورودی adc در Protues رو چی در نظر بگیرم و خروجی رو روی چی نمایش بدم.

farzadsw
جمعه 09 بهمن 1388, 19:56 عصر
برای ورودی راه های زیادی هست ، راحت تربنش اینه:
http://img38.imagefra.me/img/img38/2/1/29/farzadsw/f_1ima0l30kh2m_49b7a3e.png


خروجی رو میتونید روی lcd کاراکتری ، یه ردیف مثلا 8 تاییLED و ... نشون بدید.

raha_20
جمعه 09 بهمن 1388, 20:20 عصر
میشه یه کم بیشتر تو ضیح بدین

من این را به عنوان ورودی بزارم بعد به کدوم پورت ای سی وصل کنم. میشه یه design کامل بزارین

raha_20
یک شنبه 11 بهمن 1388, 12:14 عصر
یعنی هیچ کس تو این سایت نیست که یه کم به ما کمک کنه . تراخدایکی بیاد یه کم اینجا به ما کمک کنه .......

:عصبانی++::گریه::افسرده:

fahimeh2010
یک شنبه 11 بهمن 1388, 12:24 عصر
سلام
اکه میشه بیشتر توضیح بدید.ورودی که به ATMEGA 32 وصل میشه چیه و به کدام پایه ها باید وصل بشه؟

farzadsw
یک شنبه 11 بهمن 1388, 19:58 عصر
پایه های 32 تا 40 (پورت A) برای ADC هستن . ولتاژی(مثل ولتاژ وتغییر شکل بالا) که قراره خونده بشه باید به اون وصل بشه.
برای استفاده از ADC باید تغذیه اون رو هم وصل کنید.
اینجا 3 تا کتاب آموزشی معرفی شده :
http://barnamenevis.org/forum/showthread.php?t=166278
15 دقیقه وقت بگذارید میتونید بخش ADC رو بخونید.
اگه حوصله ندارید کتاب بخونید و یاد بگیرید ، باید معلم خصوصی بگیرید!

HjSoft
دوشنبه 23 فروردین 1389, 18:47 عصر
اینم آموزش کامل adc در Codevision :
سلام ، برای استفاده از ADC در میکرو های Avr می بایست ابتدا ولتاژ مرجع را انتخاب کنید . ولتاژ مرجع یا Reference در کمپایلر ها مثل کدویژن به 3 صورت می باشد . ولتاژ پایه Aref ، ولتاژ پایه Avcc و ولتاژ داخلی میکرو . شما باید نسبت به پروژه خود یکی از این سه حالت را انتخاب کنید . اگر ولتاژ کاری شما از 2.5 بیشتر نمی شود می توانید از مرجع داخلی میکرو استفاده کنید ، اگر بیشتر از این ها میشه شما می تونید ولتاژ مورد نظر رو به پایه Aref میکرو مربوطه متصل کنید . مثلا اگر میخواهید سطح ولتاژ 5 باشد ( یعنی ورودی adc نسبت به آن سنجید شود ) می توانید aref رو به 5 وصل کنید . البته همراه با اون معمولا avcc رو هم وصل میکنن که بهتره وصل بشه . در ضمن شما برای اینکه راحت تر باشید یا بتونید یک اختلاف زیاد تری در adc داشته باشید بهتره از Pot یا همون مولتی ترن خودمون استفاده کنید .
برای استفاده در کدویژن کافیست در قسمت CodeWizard آن تیک مربوط به Adc Enable را بزنید . و ولتاژ مرجع را انتخاب کنید Int, Cap , on Aref همون ولتاژ داخلیه میکرو که معمولا من از aref استفاده می کنم .
کلاک پیشفرض بهترین کلاک برای کار های عادی است . پس آن را روی کلاک پیشفرض بگذارید .
گزینه Use8Bits : همونطوری که میدونید در ابتدا اگر اشتباه نکنم به صورتی 12 بیتی کار میکنه یعنی 1024 این بدین معنا است که اگر ولتاژ پایه Aref با Adc مربوطه برابر باشه مقدار خروجی 1024 . حالا اگر بخواین از 8 بیتی استفاده کنید این گزینه رو تیک می زنید . اینطوری به 255 تبدیل میشه .
گزینه Interrput : این گزینه وقفه adc را فعال میکند .
----------------
بعد از تنظیمات و generate and save کردن . به طور خودکار تابعی در codevision به نام read_adc باز میشه . و شما در هر جای برنامه که خواستید می تونید از اون استفاده کنید . مثلا اگر خواستید Adc0 رو بخونید . مینوسید .

while(1)
{
int adc;
adc =read_adc(0);
};

narges.niyazi
دوشنبه 14 فروردین 1391, 12:07 عصر
سلام دوستان
سال نو مبارک
من یه سوال دارم:
فرض کنید میکرو داره با فرکانس کاری 16مگاهرتز کار می کنه , اگه من از adc یا pwm استفاده کنم باز هم با همین فرکانس بدون ایجاد مشکل کار میکنه؟ یعنی منظورم ایمه که این فرکانس قابل اعتماده ، یهو قاطی نمیکنه میکرو هنگ کنه یا از این قبیل مسائل. من یه فرکانس کار ی قابل اعتماد میخوام مثلا واسه mega 16

sharin
دوشنبه 14 فروردین 1391, 17:55 عصر
سلام.

از سمت شركت سازنده ، تا فركانس كاري 16MHz براي تمامي عملكردها گارانتي شده ...
مشكلاتي كه سر كريستال 16MHz هست ، به خاطر جنس ساختش هست ... ( اگر جنس خوب گير بياريد مشكلي ندارهه ... )
كريستال 12MHz مي تونه مناسب باشه ...

اينكه به ADC و PWM اشاره كرديد ، لازمه بدونيد كه فركانس نمونه برداري ADC ، حداكثر چيزي حدود 200KHz هست. براي PWM هم بسته به كاربرد ، دنبال فركانس خيلي بالا نيستيم.
همون 8MHz هم مي تونه جوابگو باشه ...

موفق باشيد.