در این مقاله قصد داریم شما را با نحوه ی کار این مبدل ها آشنا کرده و در نهایت با معرفی یک آی سی مبدل و آموزش کار با آن مقاله را به پایان ببریم.
مبدل آنالوگ به دیجیتال (Analog to Digital Converter=ADC)، مداری الکترونیکی که سیگنالهای پیوسته آنالوگ را به دادههای گسسته دیجیتالی یا رقمی تبدیل میکند. ]۱[
امروزه به دلیل دیجیتالی شدن بسیاری از ابزارهای الکترونیکی نیاز به مبدل های آنالوگ به دیجیتال برای ارتباط میکروکنترلرها و سایر آی سی های دیجیتال با سنسور ها و اینترفیس ها بسیار جدی تر از گذشته شده است.
کار این آی سی ها در سه مرحله انجام می شود: ۱- نمونه برداری ۲- کوانتیزاسیون ۳- دیجیتال سازی
نمونه برداری
همانطور که همه میدانیم یکی ار قوانین بدیهی نمونه برداری نرخ نایکوئیست است. بنا به آن اگر هر سیگنالی را با فرکانسی معادل دو برابر بیشترین فرکانس هارمونی آن سیگنال (قابل تعیین با سری فوریه) نمونه برداری کنیم میتوان با استفاده از مقادیر به دست آمده سیگنال نمونه برداری شده را عینا بازسازی کرد.
کوانتیزاسیون
حال باید به هر یک از این مقادیر نمونه برداری شده عددی را اختصاص داد. به عنوان مثال همانطور که در تصویر زیر مشاهده می کنید به مقادیر سیگنال مجهول مقادیر عددی مرتبطی در بازه ی صفر تا ۷ اختصاص داده شده است.
دیجیتال سازی
حال سیگنال کوانتیزه شده را باید با روش خاصی به داده های ۰ و ۱ که قابل فهم برای آی سی های دیجیتال هستند تبدیل کرد. فرآیند دیجیتال سازی خود علمی است به نام کدینگ. به عنوان مثال در شکل زیر مشاده میکنید که به سطوح کوانتیزه شده در بازه ۱ تا ۷ مقادیر معادل باینری آن ها اختصاص داده شده است.
کار عملی!
خوب از مباحث تئوری که بگذریم به کار عملی میرسیم! برای تبدیل آنالوگ به دیجیتال روش ها و تکنولوژی های فراوانی وجود دارد که در در این مقاله نمیگنجد. به عنوان مثال یکی از این روش ها به Flash ADC و یا Parallel A/D Converter معروف است که تصاویر مدارهای مختلف برای پیاده سازی آن را در زیر می بینید.
پیاده سازی با انکودر با اولویت
پیاده سازی با انکودر معمولی
ماتریسی از دیودها به عنوان انکودر
بسیاری از میکروکنترلر های نیز این نوع از مبدل ها را به عنوان یک peripheral داخلی در اختیار شما قرار می دهند. به عنوان مثال میکروکنترلر های AVR دارای یک مبدل داخلی ۱۰ بیتی هستند و لذا سیگنال آنالوگ ورودی را به ۲۱۰=۱۰۲۴ سطح کوانتیزه کرده و در قالب یک متغیر ۱۰ بیتی در برنامه در اختیار شما قرار میدهند. دیتاشیت بخش مبدل آنالوگ به دیجیتال میکروکنترلر AT Mega 16 برای مطالعه ی بیشتر در انتهای این پست آمده.
روش بعدی استفاده از آی سی های مبدل است. آی سی های معروف در این زمینه با پیشوند ADC شروع می شوند. در این جا برای آشنایی شما ما به معرفی و آموزش کار با آی سی ADC0804 می پردازیم. در زمان نگراش این مقاله قیمت تقیریبی این آی سی ۶۷۰۰ تومان
می باشد. ویژگی های عمومی این آی سی به شرح زیر است:
۸۰C48 and 80C80/85 Bus Compatible – No Interfacing Logic Require
Conversion Time <100μs
Easy Interface to Most Microprocessors
Will Operate in a “Stand Alone” Mode
Differential Analog Voltage Inputs
Works with Band gap Voltage References
TTL Compatible Inputs and Outputs
On-Chip Clock Generator
Analog Voltage Input Range Single + 5V Supply (0V to 5V)
No Zero-Adjust Required
۸۰C48 and 80C80/85 Bus Compatible – No Interfacing Logic Required
برای عملکرد درست این آی سی مدار زیر را یبندیم.
ورودی آنالوگ را به پین ۶ و ۷ متصل نموده و خروجی دیجیتال را از پین های ۱۱ تا ۱۸ میخوانیم. مراحل خواندن به شرح زیر است:
مرحله اول : برای شروع عملیات تبدیل باید پین ۳ ( نوشتن ) را ۰ ( Low ) کرده و سپس آن را ۱ ( High ) کنیم با ۱ شدن عملیات تبدیل شروع می شود
مرحله دوم : زمانی که پردازش تبدیل کامل شد پایه ۵ ( وقفه ) ۰ ( Low ) می شود
مرحله سوم : زمانی که پایه ۵ ( وقفه ) ۰ شد ما باید پایه ۲ ( خواندن ) را ۰ کنیم تا خط انتقالی دیتای ۰ تا دیتای ۷ فعال شود و مقدار به دست آوردن ارسال شود
مرحله چهارم : مقدار پورت ۱ را می خوانیم ( که مقدار تبدیل شده است ) که یک عدد بین ۰ تا ۲۵۵ می باشد
مرحله پنجم : در نهایت دوباره مقدار پایه ۲ (خواندن ) را به حالت ۱ ( High ) تبدیل کرده تا برای خواندن مقدار های بعدی آماده باشد[۲]
دیتاشیت این آی سی برای مطالعه ی بیشتر در انتهای مقاله آمده است.
امیدوارم در این مقاله آشنایی خوبی با مبدل های آنالوگ به دیجیتال پیدا کرده باشید. سوالات خود را از بخش نظرات با ما در میان بگذارید
8 دیدگاه ها
با سلام خدمت مهندس گرامی خواستم از مطالب شما وهمچنین سرعت سایت شما و نوع آموزش شما ازتون تشکر کنم سایت بسیار عالی دارید
با سلام
خوشحالم که مفید واقع شده
امیدوارم تو یه فرصت دیگه بتونم موارد جدیدی مثل یکی اززبان های برنامه نویسی سطح بالا رو به همین صورت تدریس کنم
بسیار عالی ممنون از شما
قربان شما
موفق باشید
بسیار عالی
بسیار ممنون 🙂
با سلام و احترام
خوشحالم که با سایت شما آشنا شدم و ممنونم از مطالب آموزشی مفیدی که در یوتیوب گذاشتین.اگه ممکنه ما را با تجربه های عملی بیشتری آشنا بکنین.
سپاس از شما
با سلام خدمت شما
خوشحالم که مورد قبول واقع شده