آموزش و راه اندازی محصولاتتوسعه دانش

راه اندازی یک ADC حرفه‌ای با دقت 16bit توسط ADS1115

در این کلیپ مستند سعی کردیم در قالب پروژه راه اندازی یک سنسور آنالوگ دقت بالای اندازه گیری داده ADC را به رخ بکشیم...

ماژول ADS1115 یک مبدل آنالوگ به دیجیتال بسیار دقیق با پروتکل ارتباطی I2C است. این ماژول دارای 4 کانال مبدل آنالوگ به دیجیتال با دقت 16بیت می باشد که ورودی ماژول از تکنولوژی مالتی پلکسر پشتیبانی کرده که بدین طریق می توان از 4 کانال مجزا یا دو کانال بصورت تفاضلی استفاده کرد.

ویژگی های ماژول:

  • پروتکل ارتباطی I2C با 4 آدرس متفاوت
  • دقت 16 بیتی
  • دارای 4 کانال آنالوگ بصورت مجزا یا دو کانال بصورت تفاضلی
  • دارای واحد PGA تقویت کننده با گین قابل تنظیم
  • سرعت نمونه برداری قابل تنظیم از 8SPS تا 860SPS
  • دارای ولتاژ مرجع داخلی
  • دارای اسیلاتور داخلی
  • ولتاژ کاری 2.7 الی 5.5 ولت

شماتیک ماژول ADS1115 :

مدار بندی این ماژول به صورت زیر است، دقت کنید که مقاومت Pull UP مربوط به پروتکل I2C روی ماژول تعبیه شده باشد، در غیر این صورت نیاز است به صورت دستی خودتان اعمال کنید.

ADS1115-Module-Schematic

پایه های ماژول ADS1115 :

این مبدل آنالوگ به دیجیتال دارای 4 ورودی آنالوگ است که می توان به صورت 2 ورودی تفاضلی نیز مورد استفاده قرار بگیرد.

نکته : طبق شماتیک ماژول پایه ADDR با مقاوت Pull DOWN شده است که در این حالت آدرس ماژول برابر 0X90 خواهد بود.

ADS1115-Module-PinOuts

تعیین آدرس ماژول ADS1115 :

همان طور که اشاره شد روی این ماژول می توان 4 آدرس مختلف تنظیم کرد. یعنی شما قادرید چهار تا از این ماژول را همزمان به I2C میکرو خود متصل کرده و آنها را مدیریت کنید.

ADS1115-Module-Addressing

برنامه نویسی با کامپایلر کدویژن :

برای راه اندازی راحت ماژول ADS1115 تیم فنی پژوهشگران برنامه ای استاندارد با کامپایلر کدویژن آماده کرده است که توسط آن به راحتی می‌توانید مقدار ولتاژهای آنالوگ را قرائت کنید.

قابلیت های برنامه

  1. پیکربندی راحت ماژول
  2. تنظیم مالتی پلکس ورودی
  3. تنظیم بهره ورودی
  4. تبدیل مقدار آنالوگ ورودی به دیجیتال
  5. تابع تبدیل مقدار ورودی به میلی ولت

توابع نمونه آن در زیر معرفی شده است:

void ADS1115Init(unsigned int Config);
void ADS1115SetMultiplexer(unsigned int Mul);
void ADS1115SetPGAMode(unsigned int PGA);
unsigned int ADS1115GetConversion(void);
float ADS1115GetMilliVolts(int Val);

_ تابع ADS1115Init : وظیفه این تابع پیکر بندی ماژول ADS1115 می باشد.

_ تابع ADS1115SetMultiplexer : وظیفه این تابع انتخاب ورودی مورد نظر و اعمال مالتی پلکس آن به ورودی آنالوگ.

ADS1115-MUX
نمای داخلی از ساختار مالتی پلکس ورودی های تراشه ADS1115

_ تابع ADS1115SetPGAMode : وظیفه این تابع تعیین گین ورودی های آنالوگ است.

نکته : با تغییر GAIN یا ضریب بهره ورودی بازه اندازه گیری ولتاژ نیز تغییر می‌کند که در حالت کانال‌های مجزا ما دیگر قادر به اندازه گیری ولتاژهای منفی نیستیم.

PGA-Gain

_ تابع ADS1115GetConversion : وظیفه این تابع محاسبه مقدار ورودی آنالوگ است.

_ تابع ADS1115GetMilliVolts : وظیفه این تابع تبدیل مقدار قرائت شده به میلی ولت است.

دانش فنی

از آنجا که تهیه محتوای آموزشی کامل و دقیق زحمات و زمان زیادی را بر دوش تیم فنی پژوهشگران نهاده است، بسته ی آموزش کاملی شامل نمونه کد پروژه راه اندازی با نرم افزار کدویژن با هزینه‌ای اندک البته همراه با خدمات پشتیبانی به فروش می رسد، باشد که شاید جبران زحمات و دلگرمی اعضای محترم دپارتمان فنی پژوهشگران باشد:

نکته: بدیهی حق نشر این دانش فنی صرفا برای پژوهشگران و خریداران این محصول دانش فنی محفوظ است؛ هرگونه انتقال به غیر و استفاده تجاری شرعاً و قانوناً حرام و قابل پیگیری است.

در ادامه برای کاربردی کردن پروژه مدار نمونه ای از راه اندازی ماژول ADS1115 مشاهده می کنید که اطلاعات یک ماژول سنسور MQ-135 کیفیت و آلودگی هوا را که خروجی آنالوگ و حساسی دارد را خوانده و در پورت سریال ارسال منتشر می‌کند که نمونه کد آن عینا در بسته دانش فنی به صورت کامل قابل خریداری است:

 

تیم فنی پژوهشگران

ما گروهی از اعضای قدیمی پژوهشسرای رباتیک مشهد مربوط به سالهای دهه 80 و... هستیم، دور هم جمع شدیم و قصد داریم نتایج R&D خود را در پژوهشگران به تألیف درآوریم...

نوشته های مشابه

‫18 دیدگاه ها

  1. سلام خسته نباشید
    1.پایه ای ادرس به پایه ای چنده میکرو ATMEGA8 وصل کنیم؟
    2.پایه ALRT به پایه ای چنده میکرو ATMEGA8 وصل کنیم؟
    3. من میخوام ولتاژ 0-5 را اندازه گیری کنم و از یک کانال استفاده کنم و روی ال سی دی نمایش بدم چطوری این کار رو بکنم ؟
    4.هدف از گین چیست و کارش را توضیح بدین؟
    ممنون از شما و همکارانتون

    1. سلام علی جان، اگر دقت کنید داخل محتوای آموزش یک فایل تصویری وجود دارد که چهار حالت اتصال پایه آدرس را نشان داده است، با دانستن این نکته شما میدانید که همزمان 4 آی سی ADS1115 می تواند به باس داده I2C وصل شود.

      از پایه ALRT یا همان Data Ready برای دریافت پیام “امکان دریافت داده کامل شده” استفاده میشود، دقت داشته باشید که فرآیند تبدیل آنالوگ به دیجیتال و گذاشتن داده ها روی رجیسترهای داده به هر حال کمی (هرچند ناچیز) زمان می‎برد، و اگر برداشت داده در زمانی باشد که رجیستر مربوطه در حال آپدیت بیت به بیت اطلاعات خود است ممکن است نیمی از داده ها مربوط به برداشت قبلی بوده و هنوز آپدیت نشده است، لذا زمانی که پالس ALRT بوجود می آید زمان برداشت داده صحیح و کامل است.
      شما می توانید این پایه را به اینتراپت میکرو وصل کنید.

      این ماژول قادر است ولتاژ 0-5 ولت را اندازه گیری کند، کافیست به جای استفاده از توابع انتشار داده در پورت سریال کدهای مربوط به انتشار داده بر روی LCD جایگزین شود(کانفیگ LCD فراموش نشود)

      گین یا میزان بهره تقویت کنندگی در ورودی شما قادر هستید به کمک گین ولتاژهای ورودی بسیار ناچیز خود را تقویت کنید و سپس فرآیند اندازه گیری را انجام دهید.

  2. سلام با تشکر از سایت خوبتون

    چقدر نویز بالایی داره!

    ممنون میشم یه مبدل آنالوگ به دیجیتال با کیفیت بالا در حد ad7730 بهم معرفی کنید که هم قیمت مناسبتری نسبت به and7730 داشته باشه و مثل این مبدل نویز پذیر نباشه و اینکه تولیدش متوقف نشده باشه (تفاضلی به منظور لودسل)
    دارای مد chop برای جلوگیری از نویز های شدید باشه

    1. سلام دوست عزیز
      ایسی های سری ADS1115 از کیفیت بالایی برخوردار هستند. اگر فیلترهای مدار تغذیه را خوب طراحی کنید و در برنامه نویسی از نمونه برداری استفاده کنید مشاهده میکنید که نویز بسیار کمی دارد.
      داخل فیلم فقط قصد نمایش عملکرد ماژول داشتیم و همانطور که مشاهده میکنید مدار روی بردبرد بسته شده و سنسور گاز هم خروجی پایداری ندارد.

دیدگاهتان را بنویسید

دکمه بازگشت به بالا