تبلیغات
پایگاه تخصصی روباتیک و الکترونیک - مبدل آنالوگ به دیجیتال ADC در میکروهای AVR
 
درباره وبلاگ




مدیر وبلاگ : محمد علی
نویسندگان
نظرسنجی
به نظر شما وبلاگ چگونه است ؟








آمار وبلاگ
  • کل بازدید :
  • بازدید امروز :
  • بازدید دیروز :
  • بازدید این ماه :
  • بازدید ماه قبل :
  • تعداد نویسندگان :
  • تعداد کل پست ها :
  • آخرین بازدید :
  • آخرین بروز رسانی :
پایگاه تخصصی روباتیک و الکترونیک
صفحه نخست             تماس با مدیر           پست الکترونیک               RSS                  ATOM
دوشنبه 3 فروردین 1388 :: نویسنده : محمد علی
سلام به همه اونایی که دوست دارن ADC کار کنن. تو این پست یاد میگیرید چه طوری از ADC استفاده کنید .

همون طور که میدونید ADC مبدل آنالوگ به دیجیتاله ، یعنی چی ؟ یعنی شما به میکرو یک ولتاژ از 0 تا 5 ولت میدین و میکرو عدد ولتاژ اون رو به صورت دیجیتال بهتون میده .

تو اینجا من از میکروهای خانواده AVR و از برنامه codevision استفاده کردم .

بذارید اول بگم اصلا ADC چی کار میکنه ؟

ADC ولتاژ ورودی رو طبق فرمول روبه رو به یک داده 10 بیتی تبدیل میکنه که در اون 0 یعنی 0 ولت و 1023 یعنی 5 ولت یا مثلا 512 حدود 2.5 ولت . فرمول اینه :

Digital output = (V in * 1024 ) / Vref

خروجی دیجیتالی = (ولتاژ ورودی * 1024 ) / ولتاژ مرجع

 

Vref یا ولتاژ مرجع چیه ؟

میکرو برای تبدیل باید یک مرجع داشته باشه تا بتونه ولتاژهای ورودی رو با اون مقایسه کنه . در میکرو یه پورت با نام Aref وجود داره که هر ولتاژی که بهش بدین به عنوان مرجع انتخاب میکنه . مثلا یه 5 ولت ثابت بهش میدین تا Vref همیشه 5 باشه .

البته توی برنامه میتونید کاری کنید که مستقیما میکرو از پایه Avcc 5 ولت رو به عنوان مرجع انتخاب کنه .

 

 مهم : اول از همه باید پایه Avcc و GND رو به 5 ولت و زمین وصل کنید تا ADC ها شروع به کار کنند .

حالا بریم سراغ تنظیمات برنامه :

برنامه رو از حالت wizard انتخاب کنید و در قسمت codewizard تب ADC رو انتخاب کنید .

حالا تنظیمات رو مثل نمونه زیر قرار بدین .



نکات :

در قسمت volt.ref اگر Avcc رو قرار بدین میکرو مستقیم به 5 ولت وصل میشه تا اون رو ولتاژ مرجع قرار بده . اما اگر گزینه Aref.pin رو انتخاب کنید هر ولتاژی که به پایه Aref بدین مرجع انتخاب میشه .

در قسمت clock نیز شما فرکانس خوندن ADC رو انتخاب میکنید که هر چی بیشتر باشه سرعت خوندن بالاتر میره .

باقی تنظیمات هم مربوط به وقفه ها میشه که خارج از بحث ماست .

 

حالا باید کدهای برنامه شما اینجوری باشه :

 // ADC initialization

// ADC Clock frequency: 1000.000 kHz

// ADC Voltage Reference: AVCC pin

ADMUX=ADC_VREF_TYPE & 0xff;

ADCSRA=0x83;

حالا چه جوری باید اون عدد رو استخراج کنیم ؟

میکرو وقتی عمل تبدیل رو انجام میده اون عدد رو در متغیری به نام read_adc(x)  قرار میده که ط در اون شماره پایه ADC مورد نظره مثلا read_adc(5) که به adc5 وصل میشه .

خیلی ها فکر میکنن این عدد باید مقدار ولتاژ رو بهع ما نشون بده ، اما این تبدیل طبق فرمول ذکر شده عمل کرده و یک داده ده بیتی تولید میکنه که البته میشه با چپه کردن فرمول مقدار ولتاژ رو هم بدست آورد .

کد مقابل متغیر a رو برابر adc(3) قرار میده :

a= read_adc(3

کد مقابل متغیر a رو برابر مقدار ولتاژ قرار میده :

 a= read_adc(3);

a= (a/1024)*5;


 

امیدوارم از تبدیل ADC لذت ببرید . موفق باشید .

باما تماس بگیرید !!!!




نوع مطلب :
برچسب ها :
لینک های مرتبط :


شنبه 18 شهریور 1396 10:45 ق.ظ
Magnificent beat ! I wish to apprentice while you amend your website, how can i subscribe for a weblog site?

The account aided me a acceptable deal. I were a little bit acquainted of this
your broadcast offered bright transparent idea
دوشنبه 30 مرداد 1396 11:54 ق.ظ
I loved as much as you'll receive carried out right here. The sketch is tasteful, your authored subject matter stylish.

nonetheless, you command get got an impatience over that you wish be delivering the following.
unwell unquestionably come more formerly again as exactly the same nearly
very often inside case you shield this increase.
دوشنبه 5 تیر 1396 06:53 ب.ظ
Hello, Neat post. There's a problem together with your site in internet explorer, could
test this? IE nonetheless is the market chief and a good component to other folks
will leave out your excellent writing due to this problem.
یکشنبه 4 تیر 1396 10:21 ب.ظ
core از خود نوشتن در حالی که ظاهر شدن دلنشین در آغاز آیا واقعا نشستن کاملا
با من پس از برخی از زمان. جایی درون
پاراگراف شما در واقع موفق به
من مؤمن متاسفانه تنها برای کوتاه در
حالی که. من با این حال مشکل خود را با فراز در
منطق و شما ممکن است را خوب به کمک
پر کسانی که شکاف. در این رویداد شما که
می توانید انجام من را قطعا بود در گم.
جمعه 21 تیر 1392 01:50 ب.ظ
دمت قیژ
محمد علیدم شما هم غیژ
پنجشنبه 30 خرداد 1392 10:03 ق.ظ
ممنون
پنجشنبه 14 اردیبهشت 1391 01:05 ب.ظ
سلام...!
من میخواستم برنامه کامل این پروژتون رو داشته باشم.
و همینطور یه شماتیک ازش رو.
میتونین برام بفرستین؟؟؟
پنجشنبه 27 بهمن 1390 12:43 ق.ظ
سلام خسته نباشید.من میخام به adc 1.4 ولت بدم و وقتی به 1.8 رسید پورت b.0 رو فعال کنه ولی ه کاری می کنم نمی شه لطفا راهنمایی کنید.ممنون
سه شنبه 6 دی 1390 09:56 ب.ظ
خیلی خوب و مفید بود
ممنون
سه شنبه 16 شهریور 1389 12:42 ب.ظ
slam
che tor mishe voltaj analog ro be 0,1 tabdilkard
mer30
پنجشنبه 30 اردیبهشت 1389 10:03 ب.ظ
mamnooooooooooon

estefade kardam
چهارشنبه 29 اردیبهشت 1389 07:53 ب.ظ
سلام
خیلی خیلی خیلی ممنونم
این پستتون کمک بزرگی به من کرد
دستتون دردنکنه
مرسیییییییی
سه شنبه 8 دی 1388 10:20 ب.ظ
وبلاگ خوبی داری. منم روبوتیک در حد مبتدی کار می کنم. امیدوارم موفق باشی. ان شالله در آینده با هم همکاری کنیم.
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر


 
 
برچسب ها
پیوندها
آخرین مطالب