نحوه استفاده از ADC در میکروکنترلر AVR ATmega16
یکی از ویژگیهای رایجی که تقریباً در همه برنامههای embedded استفاده میشود، ماژول ADC (مبدل آنالوگ به دیجیتال) است. این مبدلهای آنالوگ به دیجیتال میتوانند ولتاژ سنسورهای آنالوگ مانند سنسور دما، سنسور شیب، سنسور جریان، سنسور فلکس و غیره را بخوانند. در این آموزش یاد میگیریم ADC چیست و چگونه از ADC در Atmega16 استفاده کنیم. این آموزش شامل اتصال یک پتانسیومتر کوچک به پایه ADC Atmega16 است و از هشت LED برای نمایش تغییر ولتاژ مقدار خروجی ADC با توجه به تغییر مقدار ورودی ADC استفاده می شود.
ADC (تبدیل آنالوگ به دیجیتال) چیست؟
ADC مخفف مبدل آنالوگ به دیجیتال است. در الکترونیک، ADC دستگاهی است که سیگنال آنالوگ مانند جریان و ولتاژ را به کد دیجیتال (شکل باینری) تبدیل می کند. در دنیای واقعی بیشتر سیگنال ها آنالوگ هستند و هر میکروکنترلر یا ریزپردازنده زبان دودویی یا دیجیتالی را می فهمد (0 یا 1). بنابراین، برای اینکه میکروکنترلرها سیگنالهای آنالوگ را درک کنند، باید این سیگنالهای آنالوگ را به شکل دیجیتال تبدیل کنیم. ADC دقیقاً این کار را برای ما انجام می دهد. انواع مختلفی از ADC برای کاربردهای مختلف موجود است. تعداد کمی از ADC های محبوب فلش، تقریب متوالی و سیگما-دلتا هستند.
ارزان ترین نوع Successive-Approximation ،ADC است و در این آموزش از ADC تقریبی متوالی استفاده خواهد شد. در نوع متوالی-تقریبی ADC، یک سری کدهای دیجیتال که هر کدام مربوط به یک سطح آنالوگ ثابت است، به طور متوالی تولید می شوند. یک شمارنده داخلی برای مقایسه با سیگنال آنالوگ در حال تبدیل استفاده می شود. زمانی که سطح آنالوگ از سیگنال آنالوگ بزرگتر شود، تولید متوقف می شود. کد دیجیتال مربوط به سطح آنالوگ است که نمایش دیجیتال مورد نظر سیگنال آنالوگ است. این عبارات توضیح ما در مورد تقریب متوالی را به پایان می رساند.
اگر میخواهید ADC را عمیقاً بررسی کنید، میتوانید به اینترنت مراجعه کنید. ADC ها به شکل آی سی موجود هستند و همچنین میکروکنترلرها امروزه با ADC داخلی عرضه می شوند. در این آموزش از ADC داخلی Atmega16 استفاده خواهیم کرد. بیایید در مورد ADC داخلی Atmega16 بحث کنیم.
ADC در میکروکنترلر AVR Atmega16
Atmega16 دارای ADC ده بیتی و 8 کاناله داخلی است. 10 بیت مربوط به این است که اگر ولتاژ ورودی 0-5 ولت باشد، به مقدار 10 بیتی تقسیم می شود، یعنی 1024 سطح مقادیر آنالوگ گسسته (210 = 1024). اکنون 8 کانال مربوط به 8 پین اختصاصی ADC در Atmega16 است که در آن هر پایه می تواند ولتاژ آنالوگ را بخواند. PortA کامل (GPIO33-GPIO40) برای عملیات ADC اختصاص داده شده است. به طور پیشفرض، پینهای PORTA پینهای عمومی IO هستند، یعنی پینهای پورت مالتی پلکس هستند. برای استفاده از این پین ها به عنوان پایه های ADC، باید رجیسترهای خاصی را که به کنترل ADC اختصاص داده شده اند، پیکربندی کنیم. به همین دلیل است که رجیسترها به عنوان رجیسترهای کنترلی ADC شناخته می شوند. اجازه دهید در مورد چگونگی راه اندازی این ثبات ها برای شروع عملکرد ADC داخلی بحث کنیم.
در ادامه عناوین زیر در آموزش آورده شده است:
پین های ADC در Atmega16
قطعات مورد نیاز
مدار
راه اندازی رجیسترهای کنترل ADC در Atmega16
برنامه نویسی Atmega16 برای ADC
سورس کامل:
شما با خرید این آموزش به فایل تصاویر،صفحه توضیحات در قالب فایل اچ تی ام ال (HTML) قایل ویرایش و کپی دسترسی پیدا می کنید.