مبدل های آنالوگ به دیجیتال از مهم ترین و پرکاربردترین ابزارها در زمینه طراحی و پیاده سازی مدارات دیجیتال به شمار می روند. به کمک این ماژول ها می توان سیگنال های آنالوگ را به دیجیتال تبدیل نمود. ماژول مبدل آنالوگ به دیجیتال AD7705، یک ماژول فوق العاده کاربردی جهت تبدیل سیگنال آنالوگ به دیجیتال است. از آنجاییکه دقت ADC داخلی آردوینو، به عنوان مثال آردوینو UNO 10 بیت است، لذا این ماژول می تواند داده ها را با دقت ۱۶ بیت به سیگنال دیجیتال تبدیل نماید. جهت راه اندازی و کار با این ماژول، کتابخانه تحت آردوینو نیز توسعه یافته است. به همین منظور، در این آموزش به تحلیل و بررسی این کتابخانه و نحوه استفاده از توابع آن می پردازیم. بنابراین در ادامه، با مرجع تخصصی رزبری پای و آردوینو به زبان فارسی، دیجی اسپارک، همراه باشید.
نصب کتابخانه AD7705
اولین قدم در استفاده از یک کتابخانه، نصب آن در نرم افزار آردوینو است. جهت نصب کتابخانه ماژول AD7705، می بایست به روش دستی این کتابخانه را از صفحه گیت هاب آن دانلود و نصب کنیم. نصب کتابخانه بسیار ساده است. کافیست مراحل گفته شده در زیر را قدم به قدم انجام دهید.
- با کلیک بر روی این لینک، وارد صفحه کتابخانه در گیت هاب شوید.
- مطابق تصویر زیر، ابتدا بر روی گزینه code و سپس Download ZIP کلیک نمایید.
- پس از دانلود کتابخانه، با کلیک بر روی گزینه extract here، کتابخانه را از حالت فشرده خارج سازید. پس از اتمام، با بازنمودن فولدر، با تصویر زیر رو به رو خواهید شد.
- در نهایت فولدر را در مسیر نصب آردوینو و در قسمت libraries کپی نمایید. از آنجاییکه معمولا نرم افزار آردوینو در درایو c نصب می گردد، لذا مسیر زیر را برای قرار دادن این فولدر در پیش بگیرید.
C:->Program Files->Arduino->Libraries
پس از دانلود و نصب کتابخانه، نوبت به استفاده از آن می رسد. اما پیش از آن، به بررسی الزامات فنی و نکات مهم پرداخته و پس از آن به تشریح توابع این کتابخانه خواهیم پرداخت. در نهایت با ارائه مثالی، نحوه به کارگیری توابع در برنامه ها را خواهیم دید.
الزامات و بردهای مورد پشتیبانی
در این قسمت به بررسی الزامات و نکات فنی کتابخانه می پردازیم. در ابتدا توجه داشته باشید که ماژول مبدل ADC از نوع AD7705، دارای پروتکل ارتباطی از نوع SPI است. به کمک این پروتکل، ماژول به برد آردوینو متصل می گردد. از طرفی دیگر، این ماژول دارای دو کانال ورودی جهت دریافت و تبدیل سیگنال بوده که مقادیر هر کانال را می توان از باس SPI دریافت نمود. این کتابخانه برای برد آردوینو تست شده است. برای سایر بردها نظیر مگا با توجه با ساختاری مشابه، می توان انتظار عملکرد صحیح را داشت.
توابع کلیدی کتابخانه AD7705
در این قسمت به بررسی توابع کلیدی و کاربردی کتابخانه AD7705 می پردازیم. این توابع به همراه شرح توضیحات، در جدول زیر قرار می گیرند. توجه داشته باشید که در تحلیل توابع، ورودی ها از چپ به راست ورودی اول، دوم و…. در نظر گرفته خواهند شد.
شرح | ورودی ها | نام تابع |
این تابع از نوع تابع سازنده کلاس کتابخانه است. به کمک این تابع یک نمونه شی ساخته می شود. توجه داشته باشید که ورودی تابع ولتاژ مرجع مبدل آنالوگ به دیجیتال تعیین می شود. | ورودی از نوع double | AD770X(double vref) |
این تابع مقدار سیگنال آنالوگ تبدیل شده به معادل دیجیتال آن را خوانده و در خروجی از نوع double قرار می دهد. ورودی اول این تابع تعیین کننده کانال ADC و ورودی دوم میزان آفست نسبت به مقدار خوانده شده را تعیین می کند.
ورودی دوم این تابع به صورت پیشفرض ۰ است. همچنین می تاونید در فراخوانی این تابع، ورودی دوم را قرار ندهید. |
ورودی اول از نوع بایت
ورودی دوم از نوع اعشاری |
double readADResult(byte channel, float refOffset = 0.0) |
به کمک این تابع می توان تشخیص داد که آیا داده های آنالوگ ورودی به دیجیتال تبدیل شده اند یا خیر، در صورتیکه تبدیل صورت گرفته باشد، خروجی true در غیر اینصورت خروجی false خواهد بود. توجه داشته باشید که شماره کانال در ورودی تابع قرار می گیرد. | ورودی از نوع بایت | bool dataReady(byte channel) |
این تابع راه اندازی و کار با کانال های ADC را مقدار دهی اولیه می کند. در ورودی این تابع، شماره کانال قرار می گیرد. | ورودی از نوع بایت | void init(byte channel) |
اجرای نمونه برنامه
در این قسمت به اجرای نمونه برنامه می پردازیم. در این برنامه با راه اندازی ماژول AD7705، ورودی های آنالوگ را به شکل دیجیتال دریافت خواهیم نمود. این کدها برای برد آردوینو UNO توسعه یافته است.
#include <AD770X.h> //فراخوانی کتابخانه AD770X ad7706(2.5); //ایجاد یک شی از کتابخانه و تعیین ولتاژ ۲٫۵ به عنوان ولتاژ مرجع مبدل آنالوگ double v; //تعیرف متغیر جهت ذخیره خروجی void setup() { Serial.begin(9600); ad7706.reset(); ///قبل از راه اندازی بهتر است جهت پاک شدن بافر ماژول ریست شود. ad7706.init(AD770X::CHN_AIN1); //راه اندازی کانال ۱ ADC ad7706.init(AD770X::CHN_AIN2); //راه اندازی کانال ۲ ADC } void loop() { v = ad7706.readADResult(AD770X::CHN_AIN1); //خوانده مقدار از کانال یک ADC و ذخیره مقدار در متغیر V به نوع تعیین نام کانال دقت کنید. Serial.print(v); v = ad7706.readADResult(AD770X::CHN_AIN2); //خواندن مقدار از کانال ۲ ADC همانند کانال شماره یک Serial.print(" : "); Serial.println(v); }
لوازم متناسب با کتابخانه
ماژول مبدل آنالوگ به دیجیتال ۱۶ بیتی دو کانال AD7705
جمع بندی
در این آموزش به تحلیل و بررسی کتابخانه AD7705 جهت راه اندازی و کار با ماژول مبدل آنالوگ به دیجیتال AD7705 پرداختیم. این مبدل آنالوگ به دیجیتال با دقت ۱۶ بیتی، می تواند ابزاری مهم در پروژه های مهم که دقت بالا نیاز است، باشد. به کمک این مبدل می توانید از دو کانال ورودی، در خروجی سیگنال دیجیتال معادل آنالوگ ورودی را با دقت ۱۶ بیت دریافت نمایید. برای راه اندازی و کار با این ماژول، کتابخانه تحت آردوینو توسعه یافته که روند پروژه را به شدت تسریع می بخشد. در این آموزش به تحلیل و بررسی توابع ای کتابخانه پرداختیم. در ابتدا به الزامات فنی و بردهای مورد پشتیبانی کتابخانه پرداخته شد. در ادامه آموزش، معرفی و تحلیل توابع کتابخانه صورت گرفت. در نهایت با ارائه مثالی، نحوه استفاده از توابع در برنامه های عملی را مشاهده نمودیم.
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
سلام به اردوینو uno وصلش کردم کد رو هم آپلود کردم ولی کار نمی کنه!
نمیدونم ایراد کارم کجاست . میشه راهنمایی کنید.
با سلام
سوالتان خیلی کلی است و نمیتوانم دقیقا مشکل را تشخیص دهم.
سلام
من ماژول TM7705 را از سایت اینترنتی خریده بودم.
کتابخانه و نمونه برنامه را روی آردینو امتحان کردم. چند بار هم تست زدم اصلا” درست جواب نمیده…
فکر کنم این آی.سی. ها مشکل دارن…
آی.سی. MCP3201 را که با آردینو امتحان کردم خیلی خوب کار میکرد حتی اسیلوسکوپ هم ساخته بودم و خوب کار میکرد و دقیق هم بود.
آقای معین صابری شما تست کردید ؟
موفق باشید
با سلام
برخی از ماژول های چینی ممکن است با درایورهای متفاوتی راه اندازی شوند.