نظرسنجي
نظر شما در مورد سايت چيست؟

عالي
خوب
متوسط
بد

تقويم
<    «  مهر 1397  »    >
شیدسچپج
 123456
78910111213
14151617181920
21222324252627
282930 
مطلب تصادفی
پست تصادفي:
» كتاب الكترونيك كاربردي - كتاب هنرستان
» پروژه آموزشي دستگاه RFID
» آموزش طراحي مدار چاپي در پروتئوس 7
» سرخ کردن غذا با یک بازوی رباتیک
» رباتي كه شكلات درست مي كند!
» استخراج اتوماتیک نقاط کلیدی صورت از روی تصاویر رنگی متعامد ...
» آشنایی کامل با DSP
» آشنایی با ماشین های هیبرید
» پروژه کامل راه اندازی ال سی دی تاچ با بسکام و کدویژن ...
» آموزش کامل طراحی PCB با 08 Altium Designer
رتبه در الكسا

 

 

ADC مخفف "Analog-Digital Converter" و به معناي مبدل آنالوگ به ديجيتال است.

اگر بخواهيم اين قابليت را به صورت ساده توصيف كنيم، يك ولت متر ديجيتال است كه بر روي پايه‌هاي ميكروكنترلر نصب شده است و به وسيله‌ي آن مي‌توان ولتاژ پايه‌هاي ورودي را با دقت مناسبي اندازه‌گيري كرد. همانطور كه مي‌دانيد ما تا به حال در هيچ‌ آي سي نمي‌توانستيم شدت ولتاژ ورودي را به دقت اندازه گيري كنيم و فقط مي‌توانستيم بدانيم آيا ولتاژ ورودي بالاي 2.5 ولت است يا زير 2.5 ولت، و ورودي‌هايمان را به صورت 0 و 1 برسي مي‌كرديم.(آي سي ها ورودي‌هاي خود را منطقي مي‌كنند)

اما به كمك اين قابليتِ ميكروكنترلر‌هايِ خانواده‌ي AVR، ما مي‌توانيم با دقت مناسبي ولتاژ ورودي خود را بررسي كنيم.

يكي از كاربرد‌هاي مهم ADC مي‌تواند در ربات‌ها براي تشخيص رنگ باشد. همانطور كه مي‌دانيد هر رنگ، ميزان مشخصي از نور را بازتاب مي‌دهد و بقيه‌ را جذب مي‌كند، ما با اندازه‌گيري مقدار نور بازتاب شده، ميتوانيم رنگ را تشخيص دهيم. در اينجا ما براي اندازه‌گيري ميزان شدت نور بازتاب شده، بايد از ADC ميكروكنترلر استفاده ‌كنيم تا بتوانيم ولتاژ خروجي سنسور نوري خود را به دقت اندازه‌گيري كنيم.

ADC يكي از مهمترين و پر كاربردترين قابليت‌هاي ميكروكنترلر‌هاي خانواده‌ي AVR است كه به تدريج با كاربرد‌هاي فراوان آن در بخش‌هاي مختلف آشنا خواهيد شد.

هم اكنون  نحوه‌ي انجام تنظيمات اوليه‌ي CodeWizard براي راه‌اندازي ADC را آموزش مي‌دهيم.

 

ابتدا CodeWizard را باز كرده و در آن، لبه‌ي ADC را انتخاب مي‌كنيم، و در لبه‌ي ADC، گزينه‌ي "ADC Enabled" را تيك مي‌زنيم و سپس مانند شكل زير تنظيمات را انجام مي‌دهيد (براي بزرگتر ديدن تصوير روي آن كليك كنيد) :

 

آموزش ADC ميكرو در كدويژن (ADC چيست؟)

 

 

همانطور كه مي‌بينيد، دومين قسمتي كه تيك زده شده "Use 8 bits" است.در ادامه در مورد دليل اين كار توضيح داده شده است.

 

همانطور كه گفته شد، وظيفه‌ي ADC، اندازه گيري ولتاژي است كه بر روي پايه‌ي ورودي قرار گرفته است. اما ADC عددي را كه مولتي متر به ما نشان مي‌دهد گزارش نمي‌كند، بلكه متناسب با ولتاژ پايه‌ي ورودي، عددي را در بازه‌ي 0 تا 255 به ما گزارش مي‌كند. يعني عدد 0 را به ولتاژ 0ولت اختصاص مي‌دهد، و 255 را به 5 ولت؛ و هر ولتاژي بين 0 تا 5 ولت را، متناسباً، با عددي بين 0 تا 255 گزارش مي‌كند. در حقيقت براي سهولت در محاسبه، مي توانيد فرض كنيد اندازه‌ي ولتاژ ورودي بر حسب ولت، ضربدر 51، برابرست با عددي كه ADC براي آن ولتاژ مشخص، به ما گزارش مي‌كند.

به عنوان مثالي ديگر، اگر خروجي مدار يك سنسور نوري را به پايه‌ي ورودي ADC متصل كرده باشيد، و خروجي مدار سنسور 2 ولت باشد،‌ADC عدد 102 را به ما گزارش مي‌كند.


اگر تيكِ گزينه‌ي "Use 8 bits" را برداريم، بازه‌ي ما به 0 تا 1024، گشترش پيدا خواهد كرد و در حقيقت دقت اندازه‌گيري ما 4 برابر خواهد شد. يعني 5 ولت ما، به جاي 255، با عدد 1024 گزارش خواهد شد، و ولتاژهاي بين 0 و 5 ولت نيز متناسباً با عددي بين 0 تا 1024 گزارش خواهند شد. اما در كار‌هاي ما نيازي به اين دقت بالا نيست و معمولاً "Use 8 bits" را تيك مي‌زنيم تا بازه‌ي ما بين 0 تا 255 باشد.

فورمول كلي ADC به شكل زير استفاده ميشه:

 

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

Digital output =(Vin * 1024)/Vref

 


درباره‌ي تنظيمات ADC مطالب زيادي وجود دارد كه ما از مطرح كردن تمام آن‌ها در اين بخش مي‌پرهيزيم، دوستاني كه علاقه‌مند هستند، مي‌توانند از طريق كتاب‌هاي مرجع و ديگر مراجع موجود، مطلب را پي بگيرند، اما در همين حدي كه مطالب در اينجا مطرح مي‌شوند، براي كار ما تقريباً كافيست و الزامي در مطالعه‌ي منابع جانبي نيست.

 

نحوه ی استفاده از ADC در برنامه :

 

در میکرو کنترلر ATMEGA16، 8 پایه ی به ADC اختصاص داده شده، یعنی شما می توانید به صورت همزمان، خروجیِ 8 سنسور یا مدار جانبی را به میکروکنترلر خود وصل کنید و اطلاعات آن ها را به وسیله ی ADC دریافت کنید.


اما این 8 پایه کدام پایه ها هستند؟

 
این 8 پایه، پایه مربوط به پورت A هستند که با فعال کردن ADC در CodeWizard، این پایه ها در اختیار ADC قرار می گیرند. دقت کنید که برای استفده از ADC حتماً باید قبلاً تنظیمات را در CodeWizard انجام داده باشید.
این 8 پایه طبق شکل زیر از ADC0 تا ADC7 نام گذاری شده اند.

چگونه از ADC در برنامه استفاده کنیم؟


هنگامیکه شما تنظیمات اولیه را برای فعال سازی ADC در CodeWizard انجام می دهید، به شما این امکان داده می شود که در هر قسمت از برنامه، مقدار هر یک از 8 ADC را بخوانید و از آن استفاده کنید. عبارت" (شماره ي ADC )read_adc " در هر قسمت از برنامه، حاوي مقدار ADC مورد نظر شماست. مثلاً اگر بخواهيم مقدار ADC0 را بررسي كنيم كه آيا از 100 بزرگتر است يا خير، به شكل زير عمل مي‌كنيم:

if(read_adc(0) > 100)

يا مثلاً اگر بخواهيم مقدار ADC1 را در داخل يك متغير نگه داري كنيم، به شكل زير عمل مي كنيم:

 

int a;
a= read_adc(1);

 

يا مثلا اگر بخواهيم بر حسب ولتاژ اعداد ورودي را داشته باشيم، بايد به صورت زير عمل كنيم (البته اگر تيك Use 8 bit زده نشده باشه)

 

 

a= read_adc(3);

a= (a/1024)*5;

 

در اينجا متغير a مقدار دقيق ولتاژ را براي يك ولتاژ مرجع 5 ولت نشان مي دهد.

 

مبدل آنالوگ به ديجيتال، يكي از مهمترين قابليت‌هايست كه اكثر ميكروكنترلر‌هاي خانواده‌ي AVR آن را دارند. در ميكروكنترلر‌هاي قديمي‌تر، براي اين كار، بايد يك آي سي به صورت جداگانه بر روي مدار تعبيه مي‌شد.

 

سوال؟!

  

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

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

يا مثلا اگر رفرنس داخلی 2.56 ولت را فعال کنید و به ورودی ADC ولتاژ 1.28 ولت اعمال کنین عدد گرفته شده برابر 511 خواهد شد . (با توجه به فورمول گقته شده در بالا براي محاسبه)

  

وقفه adc برای چیست و کی فعال می شود ؟

 

وقفه برای این است که کلاک میکرو روي ADC تاثیر نگذارد ! 

 

 

 

 

 

 

 
   
 ( امتیازها: 13)
          بازديدها: 34390    نظرات:20
avatar

گروه کاربري: عضو سايت

مطالب: 0

نظرات: 1

انتخاب:

mohsen22     

تاريخ: 11/01/1391 - 12:28

دستتون درد نكنه واقعا بهترين مطالب را در سايتتون دارين من كه خيلي استفاده كردم خدا خيرتون بده .اين حداقل كاريه كه به عنوان تشكر ميتونم انجام بدم.
[پاسخ]
avatar

گروه کاربري: ميهمان

مطالب: 0

نظرات: 0

انتخاب:

مجيد     

تاريخ: 8/02/1391 - 20:32


اين يك صفحه از همه آموزش هاي چند ده صفحه اي براي تازه كارها بهتر بود
ممنون
[پاسخ]
avatar

گروه کاربري: ميهمان

مطالب: 0

نظرات: 0

انتخاب:

علی موسوی     

تاريخ: 21/04/1391 - 13:37

سلام.من مطالب شما رو با بقیه ساایت ها مقایسه کردم هم خیلی مطالب پر بار تری دارید هم به زبان ساده بیان شده که ما مبتدی ها هم میفهمیم.خیلی ممنون هستم. smile-10
[پاسخ]
avatar

گروه کاربري: ميهمان

مطالب: 0

نظرات: 0

انتخاب:

اعظم     

تاريخ: 14/05/1391 - 22:10

سلام.دستتون درد نکنه.خلاصه و مفید بود. smile-59
[پاسخ]
avatar

گروه کاربري: عضو سايت

مطالب: 0

نظرات: 1

انتخاب:

coloop     

تاريخ: 22/06/1391 - 12:11

فقط آموزش بزارید . واقعا آموزش هاتون از هر کتاب و سایتی بهتره !
مردیم از بس از این جفنگیات مزخرف تو این کتابا خوندیم !
[پاسخ]
avatar

گروه کاربري: ميهمان

مطالب: 0

نظرات: 0

انتخاب:

سهشرشسا     

تاريخ: 8/09/1391 - 21:33

دمت گرم...
[پاسخ]
avatar

گروه کاربري: عضو سايت

مطالب: 0

نظرات: 1

انتخاب:

hossein ezati     

تاريخ: 20/01/1392 - 12:04

خیلی خوب بود. ازتون ممنونم
[پاسخ]
avatar

گروه کاربري: عضو سايت

مطالب: 0

نظرات: 1

انتخاب:

ahani68     

تاريخ: 9/03/1392 - 22:10

سلام من adc رو پیکربندی میکنم اما نمیتونم مقدار adc رو داخل lcd مثل بسکام بخونم لطفا راهنمایی کنید
[پاسخ]
avatar

گروه کاربري: ميهمان

مطالب: 0

نظرات: 0

انتخاب:

امیر     

تاريخ: 18/03/1392 - 19:04

خیلی خیلی خیلی خیلی خیلی خوبی smile-29
[پاسخ]
avatar

گروه کاربري: عضو سايت

مطالب: 0

نظرات: 1

انتخاب:

mojtabajoon     

تاريخ: 13/04/1392 - 12:56

عالییییییییییییییییی بود، خدا خیرتون بده، خلاصه و مفید.... smile-08
[پاسخ]
avatar

گروه کاربري: ميهمان

مطالب: 0

نظرات: 0

انتخاب:

smsr     

تاريخ: 30/05/1392 - 11:49

ok.i love you
[پاسخ]
avatar

گروه کاربري: ميهمان

مطالب: 0

نظرات: 0

انتخاب:

بهزاد     

تاريخ: 5/09/1392 - 19:29

واقعا ممنونم

خیلی به دردم خورد
[پاسخ]
avatar

گروه کاربري: ميهمان

مطالب: 0

نظرات: 0

انتخاب:

صابر     

تاريخ: 23/09/1392 - 08:29

ممنون
خداقوت
[پاسخ]
avatar

گروه کاربري: ميهمان

مطالب: 0

نظرات: 0

انتخاب:

فهیمه     

تاريخ: 19/08/1393 - 12:00

سلام.من مطالب شما رو با بقیه ساایت ها مقایسه کردم هم خیلی مطالب پر بار تری دارید هم به زبان ساده بیان شده که ما مبتدی ها هم میفهمیم.خیلی ممنون هستم.
[پاسخ]
avatar

گروه کاربري: ميهمان

مطالب: 0

نظرات: 0

انتخاب:

مهناز     

تاريخ: 2/10/1393 - 19:55

سلام.عالی بود.ممنون
[پاسخ]
avatar

گروه کاربري: ميهمان

مطالب: 0

نظرات: 0

انتخاب:

PSDK     

تاريخ: 16/11/1393 - 01:07

میشه به جز محیط ویزارد هم آموزش بدهید ممنون
[پاسخ]
avatar

گروه کاربري: عضو سايت

مطالب: 0

نظرات: 1

انتخاب:

farnaz.9515     

تاريخ: 26/04/1395 - 01:28

فوق العاده بود..تو هیچ سایت خارجی ای هم انقد مفید توضیح ندادن.ممنون
[پاسخ]
avatar

گروه کاربري: ميهمان

مطالب: 0

نظرات: 0

انتخاب:

a ashna     

تاريخ: 30/03/1396 - 02:44

عالی بود ممنون
[پاسخ]
avatar

گروه کاربري: ميهمان

مطالب: 0

نظرات: 0

انتخاب:

مهذی     

تاريخ: 23/01/1397 - 14:10

دمت گرم خیلی ممنون
که ساده و خوب بود
ممنون ممنون ممنون
[پاسخ]
avatar

گروه کاربري: ميهمان

مطالب: 0

نظرات: 0

انتخاب:

ندا     

تاريخ: 25/03/1397 - 13:56

ممنون مطالبتون خیلی مفید بود
[پاسخ]
ارسال نظر

 نام شما:  ايميل:
تصوير کد:
دوازده به اضافه نه

کد امنيتي:
موضوعات
باز کردن همه شاخه ها | بستن كل شاخه ها

آمار سايت
آمار مطالب:
  يک ساعت پيش: 0
  امروز: 0
  اين ماه: 0
  مجموع مطالب: 95
  کل نظرات: 454



آمار بازديد:
  بازديد امروز: 157
  بازديد ديروز: 601
  مجموع بازديدها: 3511130



آمار کاربران:
  يک ساعت پيش: 0
  امروز: 0
  اين ماه: 9
  مجموع کابران: 10686
  بن شدگان: 4

آخرين عضو مكاترونيك:


95541252

رتبه گوگل
Display Pagerank