در سیستم های دیجیتال، کلیه سیگنال ها به صورت دیجیتال، ۰ یا یک، پردازش می شوند. به طور کلی در این سیستم شما با دو نوع داده رو به رو هستید. این در حالیست که سیستم های آنالوگ طیف وسیعی از سیگنال ها و مقادیر را در بر می گیرند. ماژول AD7390 یک ماژول فوق العاده کاربردی جهت تبدیل سیگنال های دیجیتال به آنالوگ است. برای راه اندازی و کار با این ماژول، کتابخانه تحت آردوینو توسعه یافته که در این آموزش به تحلیل و بررسی آن می پردازیم. در ادامه، با مرجع تخصصی رزبری پای و آردوینو به زبان فارسی، دیجی اسپارک، همراه باشید.
نصب کتابخانه AD7390
به منظور استفاده از کتابخانه AD7390.h، ابتدا می بایست آن را نصب کنیم. در این قسمت به نصب کتابخانه سنسور شتاب سنج با جستجو در مخازن آردوینو می پردازیم. به همین منظور، ابتدا در نرم افزار آردوینو بر روی گزینه Tools و سپس Manage Libraries را کلیک کنید. پس از کلیک بر روی این گزینه، با تصویر زیر رو به می شوید. این منو کتابخانه های در دسترس را به شما نشان می دهد. شما نیز می توانید با جستجوی نام کتابخانه مورد نظر خود، آن را در مخازن آردوینو یافته و سپس نصب کنید.
مطابق فلش مشخص شده در تصویر فوق، در کادر جستجو عبارت AD7390 را تایپ کنید. پس از چند لحظه کتابخانه نمایش داده می شود. با کلیک بر روی گزینه install، این کتابخانه را نصب کنید.
الزامات و نکات فنی کتابخانه AD7390
ماژول AD7390 یک ماژول فوق العاده کاربردی جهت تبدیل سیگنال های دیجیتال به مقدار معادل آنالوگ است. این ماژول از پروتکل SPI پشتیبانی کرده و با دریافت مقدار از ورودی، خروجی DAC تولید خواهد نمود. توجه داشته باشید که این کتابخانه تحت پلتفرم آردوینو توسعه یافته و برد مورد نظر شما باید از پروتکل SPI سخت افزاری پشتیبانی نماید. تنها نکته مهم در استفاده از این کتابخانه، همین مورد پورت سخت افزاری است.
در رابطه با مبدل DAC، این مبدل ها سیگنال دیجیتال را به آنالوگ معدل تبدیل می کنند. این مبدل ها دقیقا مشابه مبدل آنالوگ به دیجیتال (ADC) اما با روالی برعکس کار می کنند. همانطور که می دانید، سیگنال های دیجیتال یا صفر و یا یک هستند. در برد آردوینو، صفر برابر با صفر ولت و یک برابر با ۵ ولت خواهد بود. در سیستم دیجیتال، ما فقط صفر ولت و ۵ ولت خواهیم داشت. این در حالیست که در سیستم آنالوگ، کلیه مقادیر بین ۰ و ۵ ولت، معتبر خواهند بود. ماژول ADS7390 با دریافت مقدار دیجیتال از ورودی، مقدار آنالوگ آن را در خروجی تولید خواهد نمود. توجه داشته باشید که در این حالت برای بردهای آردونیو نظیر UNO، مقدار ۱۰۲۳ به عنوان ۵ ولت و مقدار ۰، ۰ خواهد بود. به طریق مشابه مقدار ۵۱۲ معادل ۲٫۵ ولت خواهد بود.
توابع کلیدی کتابخانه AD7390
پس از بررسی الزامات و نکات فنی، نوبت به بررسی توابع کلیدی کتابخانه می رسد. این کتابخانه تنها از یک تابع جهت ایجاد ولتاژ مد نظر کاربر تشکیل شده است. البته یک تابع نیز جهت تابع سازنده کلاس کتابخانه توسعه یافته است. توابع این کتابخانه عبارتند از:
AD7390(int cs_pin) : این تابع سازنده کلاس کتابخانه است. ورودی این تابع پایه CS ارتباط SPI را تعیین می کند.
void writeValue(uint16_t value): به کمک این تابع می توانیم مقدار DAC مد نظر را در خروجی آی سی تولید کنیم. ورودی این تابع مقداری بین ۰ الی ۱۰۲۳ می پذیرد. مقدار ۰ معادل ۰ ولت و مقدار ۱۰۲۳ معادل ۵ ولت خواهد بود. به همین ترتیب مقادیر دیگر با فرمول زیر محاسبه می شوند.
نمونه برنامه
پس از بررسی توابع و سایر نکات، نوبت به اجرای یک نمونه برنامه می رسد. در این برنامه مقدار DAC مد نظر را تولید کرده و به AD7390 ارسال می کنیم.
#include <AD7390.h> //اضافه نمودن کتابخانه AD7390 #define DAC_CS 8 //انتخاب پایه CS AD7390 dac(DAC_CS); //راه اندزای کلاس کتابخانه void setup() { } void loop() { uint16_t value = 512; //مقدار دیجیتال معادل ۲٫۵ ولت dac.writeValue(value); //ساخت ولتاز ۲٫۵ ولت در خروجی آی سی DAC }
لوازم متناسب با کتابخانه
جمع بندی
در این آموزش به تحلیل و بررسی کتابخانه AD7390 پرداختیم. این کتابخانه جهت راه اندازی و کار با آی سی AD7390 توسعه یافته است. این آی سی که یک آی سی مبدل سیگنال دیجیتال به آنالوگ DAC است، قادر است تا سیگنال های دیجیتال میکروکنترلرها را به سیگنال معادل آنالوگ تبدیل نماید. برای راه اندازی و کار با این آی سی، کتابخانه تحت آردوینو توسعه یافته است. در این آموزش به کمک این کتابخانه و به سادگی، این آی سی DAC را راه اندازی نمودیم. در ابتدا الزامات فنی و نحوه نصب کتابخانه مورد بررسی قرار گرفت. سپس در ادامه توابع اصلی را مشاهده نمودیم. در نهایت با ارائه مثالی، نحوه عملکرد این توابع در برنامه مشاهده گردید.
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.