راه اندازی یک 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 :
این مبدل آنالوگ به دیجیتال دارای 4 ورودی آنالوگ است که می توان به صورت 2 ورودی تفاضلی نیز مورد استفاده قرار بگیرد.
نکته : طبق شماتیک ماژول پایه ADDR با مقاوت Pull DOWN شده است که در این حالت آدرس ماژول برابر 0X90 خواهد بود.
تعیین آدرس ماژول ADS1115 :
همان طور که اشاره شد روی این ماژول می توان 4 آدرس مختلف تنظیم کرد. یعنی شما قادرید چهار تا از این ماژول را همزمان به I2C میکرو خود متصل کرده و آنها را مدیریت کنید.
برنامه نویسی با کامپایلر کدویژن :
برای راه اندازی راحت ماژول ADS1115 تیم فنی پژوهشگران برنامه ای استاندارد با کامپایلر کدویژن آماده کرده است که توسط آن به راحتی میتوانید مقدار ولتاژهای آنالوگ را قرائت کنید.
قابلیت های برنامه
- پیکربندی راحت ماژول
- تنظیم مالتی پلکس ورودی
- تنظیم بهره ورودی
- تبدیل مقدار آنالوگ ورودی به دیجیتال
- تابع تبدیل مقدار ورودی به میلی ولت
توابع نمونه آن در زیر معرفی شده است:
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 : وظیفه این تابع انتخاب ورودی مورد نظر و اعمال مالتی پلکس آن به ورودی آنالوگ.
_ تابع ADS1115SetPGAMode : وظیفه این تابع تعیین گین ورودی های آنالوگ است.
نکته : با تغییر GAIN یا ضریب بهره ورودی بازه اندازه گیری ولتاژ نیز تغییر میکند که در حالت کانالهای مجزا ما دیگر قادر به اندازه گیری ولتاژهای منفی نیستیم.
_ تابع ADS1115GetConversion : وظیفه این تابع محاسبه مقدار ورودی آنالوگ است.
_ تابع ADS1115GetMilliVolts : وظیفه این تابع تبدیل مقدار قرائت شده به میلی ولت است.
دانش فنی
از آنجا که تهیه محتوای آموزشی کامل و دقیق زحمات و زمان زیادی را بر دوش تیم فنی پژوهشگران نهاده است، بسته ی آموزش کاملی شامل نمونه کد پروژه راه اندازی با نرم افزار کدویژن با هزینهای اندک البته همراه با خدمات پشتیبانی به فروش می رسد، باشد که شاید جبران زحمات و دلگرمی اعضای محترم دپارتمان فنی پژوهشگران باشد:
نکته: بدیهی حق نشر این دانش فنی صرفا برای پژوهشگران و خریداران این محصول دانش فنی محفوظ است؛ هرگونه انتقال به غیر و استفاده تجاری شرعاً و قانوناً حرام و قابل پیگیری است.
در ادامه برای کاربردی کردن پروژه مدار نمونه ای از راه اندازی ماژول ADS1115 مشاهده می کنید که اطلاعات یک ماژول سنسور MQ-135 کیفیت و آلودگی هوا را که خروجی آنالوگ و حساسی دارد را خوانده و در پورت سریال ارسال منتشر میکند که نمونه کد آن عینا در بسته دانش فنی به صورت کامل قابل خریداری است:
سلام این کد و کتابخانه رو با stm32 هم زدید؟من میخوام با stm32
سلام،
ازیم ماژول برای افزایش پین های اردوئینو میشه استفاده کرد؟
با تشکر
سلام. بله بواسطه این محصول می توانید از ADC های بیشتری با دقت بالاتر بهره ببرید.
با سلام و احترام
سورس این برنامه با زبان بسکام نیاز دارم, ممنون میشم جواب بدید
شما این پروژه رو برای راه اندازی سنسور flc100 بصورت آماده برای فروش دارید ؟
سلام. نه عزیز
سلام من مدتی هست دنبال کار با این ماژول با کتابخانه wiringpi در رزبری هستم . اگر امکان داره آموزش یا یک نمونه مثال بگذارید ممنون میشم
با سلام و احترام
من شدیدا به سورس این برنامه با زبان بسکام نیاز دارم, ممنون میشم جواب بدید
سلام و خسته نباشید از این ماژول چطور برای راه اندازی سنسور flc100 مگنومتر و ارسال داده ها به کامپیوتر استفاده کنم ممنون میشم متشکر
همین طور که در آموزشها آمده برای قرائت مقدار آنالوگ سنسور خود استفاده کنید ، سپس می توانید از طریق یک رابط سریال نظیر PL2303 اقدام به ارسال داده به کامپیوتر نمایید.
سلام
این ماژول دقت لازم برای نمونه برداری از سیگنال برای استفاده درپروژه ساخت اسیلوسکوپ رو داره؟
اگرچه دقت بالایی دارد ولی شاید از نظر سرعت برای یک اسیلوسکوپ ضعیف باشه، اینکه بتوانید از این مبدل به خواسته خود برسید به توانمندی شما نیز در امر کدنویسی و… بستگی دارد، باید تست کنید.
سلام خسته نباشید
1.پایه ای ادرس به پایه ای چنده میکرو ATMEGA8 وصل کنیم؟
2.پایه ALRT به پایه ای چنده میکرو ATMEGA8 وصل کنیم؟
3. من میخوام ولتاژ 0-5 را اندازه گیری کنم و از یک کانال استفاده کنم و روی ال سی دی نمایش بدم چطوری این کار رو بکنم ؟
4.هدف از گین چیست و کارش را توضیح بدین؟
ممنون از شما و همکارانتون
سلام علی جان، اگر دقت کنید داخل محتوای آموزش یک فایل تصویری وجود دارد که چهار حالت اتصال پایه آدرس را نشان داده است، با دانستن این نکته شما میدانید که همزمان 4 آی سی ADS1115 می تواند به باس داده I2C وصل شود.
از پایه ALRT یا همان Data Ready برای دریافت پیام “امکان دریافت داده کامل شده” استفاده میشود، دقت داشته باشید که فرآیند تبدیل آنالوگ به دیجیتال و گذاشتن داده ها روی رجیسترهای داده به هر حال کمی (هرچند ناچیز) زمان میبرد، و اگر برداشت داده در زمانی باشد که رجیستر مربوطه در حال آپدیت بیت به بیت اطلاعات خود است ممکن است نیمی از داده ها مربوط به برداشت قبلی بوده و هنوز آپدیت نشده است، لذا زمانی که پالس ALRT بوجود می آید زمان برداشت داده صحیح و کامل است.
شما می توانید این پایه را به اینتراپت میکرو وصل کنید.
این ماژول قادر است ولتاژ 0-5 ولت را اندازه گیری کند، کافیست به جای استفاده از توابع انتشار داده در پورت سریال کدهای مربوط به انتشار داده بر روی LCD جایگزین شود(کانفیگ LCD فراموش نشود)
گین یا میزان بهره تقویت کنندگی در ورودی شما قادر هستید به کمک گین ولتاژهای ورودی بسیار ناچیز خود را تقویت کنید و سپس فرآیند اندازه گیری را انجام دهید.
سلام.
من برنامه رو خریداری کرده ام.
ممنون میشم بگید با چه دستوری میتونم گین رو تغییر بدم.
با تشکر از همکاری شما
سلام علی عزیز.
کد ارائه شده کامل هست واقعا همه قسمت ها رو در بر گرفته است.
اگر به کتابخانه مراجعه کنید تابع ADS1115SetPGAMode این کار رو انجام میدهد.
سلام با تشکر از سایت خوبتون
چقدر نویز بالایی داره!
ممنون میشم یه مبدل آنالوگ به دیجیتال با کیفیت بالا در حد ad7730 بهم معرفی کنید که هم قیمت مناسبتری نسبت به and7730 داشته باشه و مثل این مبدل نویز پذیر نباشه و اینکه تولیدش متوقف نشده باشه (تفاضلی به منظور لودسل)
دارای مد chop برای جلوگیری از نویز های شدید باشه
سلام دوست عزیز
ایسی های سری ADS1115 از کیفیت بالایی برخوردار هستند. اگر فیلترهای مدار تغذیه را خوب طراحی کنید و در برنامه نویسی از نمونه برداری استفاده کنید مشاهده میکنید که نویز بسیار کمی دارد.
داخل فیلم فقط قصد نمایش عملکرد ماژول داشتیم و همانطور که مشاهده میکنید مدار روی بردبرد بسته شده و سنسور گاز هم خروجی پایداری ندارد.