راه اندازی واحد ADC توسط EasyMCU

راه اندازی واحد ADC توسط EasyMCU

راه اندازی واحد ADC توسط EasyMCU

راه اندازی واحد ADC توسط EasyMCU : قریب به اتفاق میکروکنترلرهای امروزی دارای واحد ADC می باشند. ADC کوتاه شده عبارت Analog to Digital Converter به مفهوم مبدل دیجیتال به آنالوگ می باشد که با A2D نیز شناخته می شود.

 

کاربرد ADC

دنیای بیرون شامل یک محیط آنالوگ و به طبع آن شامل سیگنال های آنالوگ می باشد، اما دنیای میکروکنترلر باینری است و در این دنیا فقط سطح منطقی 0 و یا 1 معتبر است که صرفا شامل 2 سطح ولتاژ بین 0 ولت و 3.3v یا 5v و یا … می باشد. هر گاه بخواهیم اطلاعاتی از دنیای بیرون (محیط آنالوگ) دریافت کنیم و این اطلاعات توسط پردازنده پردازش شود، نیاز به واسطی به نام ADC داریم که با نمونه گیری از سیگنال های آنالوگ ، نمونه های گرفته شده را در قالب مقادیر دیجیتال متناسب با سطح ولتاژ آنالوگشان در حافظه ذخیره می کند و به این ترتیب پردازنده قادر است از سیگنال های آنالوگ دنیای بیرون درک پیدا کند. برای مثال صحبت کردن و تمام اصوات در دنیای بیرون آنالوگ هستند و اگر قصد پردازش روی آنها یا انتقال این سیگنال ها در بستر دیجیتال را داشته باشیم ، نیاز است ابتدا این سیگنال ها به دیجیتال تبدیل شوند و بعد انتقال یابند که این امر نمونه برداری و تبدیل آنالوگ به دیجیتال به عهده واحد ADC می باشد. همینطور خیلی از سنسورها (دما، فاصله سنج و …) خروجی آنالوگ دارند و بسته به تغییراتی که احساس می کند ، سطوح مختلف ولتاژ را در خروجی ایجاد می کنند. مجدد چنین اطلاعاتی بایستی توسط واحد ADC نمونه برداری شده و تبدیل به مقادیر دیجیتال شوند تا پردازنده بتواند درکی از ورودی ها داشته و روی آنها پردازش انجام دهد و خروجی مناسب را ایجاد کند.

 

راه اندازی واحد ADC توسط EasyMCU

بورد Zcross دارای 6 کانال ADC می باشد که طبق pinout بورد zcross از پایه P5 تا P10 (به ترتیب CH6 تا CH1) در دسترس می باشند.

در ادامه نحوه ی اتصال یک پتانسیومتر به عنوان نماینده سیگنال آنالوگ به بورد Zcross را بررسی می کنیم.

توجه : بیشترین ولتاژ اعمالی مجاز به ADC برد zcross برابر 3.3v می باشد.

 

نحوه سیم بندی

متودها

نحوه خواندن مقدار آنالوگ

به صورت پیشفرض واحد adc فعال می باشد و مستقیم قابل استفاده است. در کد ذیل مقدار آنالوگ روی CH6 (معادل پایه P5) خوانده و نمونه برداری می شود و حاصل نمونه برداری که یک مقدار دیجیتال متناسب با مقدار آنالوگ نمونه برداری شده است در متغییر sensorvalue ذخیره می شود.

 

لطفا هرگونه سوال و … راجع به این مطلب را در انجمن ایزی.ام.سی.یو مطرح نمایید.

 

مثال نمونه1:

راه اندازی واحد ADC توسط EasyMCU: چاپ کردن مقادیر دیجیتال نمونه برداری شده در محیط ترمینال EasyMCU سمت PC

 

مثال نمونه2:

راه اندازی واحد ADC توسط EasyMCU: چاپ کردن مقادیر حقیقی ولتاژ خوانده شده از ورودی آنالوگ ( ولت متر )

 

مثال نمونه 3:

راه اندازی واحد ADC توسط EasyMCU: نمایش مقدار دیجیتال خوانده شده از پتانسیومتر در قالب LED های بورد zcross