ویژگیهای ماژول مبدل آنالوگ به دیجیتال ADS1015
در بیشتر میکروکنترلرها مبدل آنالوگ به دیجیتال وجود دارد، اما این مبدل از دقت بالایی برخوردار نیست. در بسیاری از پروژهها نیاز است مقادیر آنالوگ با دقت بالا اندازهگیری شود، یا سطح ولتاژ مقادیر آنالوگ در محدوده اندازهگیری میکروکنترلر نمیباشد و یا میکروکنترلر مورد استفاده مبدل آنالوگ به دیجیتال ندارد. در این موارد از IC های جانبی مبدل آنالوگ به دیجیتال همچون استفاده میگردد.
آیسی ADS1015 یکی از انواع آیسیهای مبدل آنالوگ به دیجیتال میباشد که دارای دقت 12 بیتی است و حداکثر ولتاژ 0.3VDD+ ولت را اندازهگیری میکند. این ماژول به دلیل استفاده از پروتکل I2C از سرعت بالایی برخوردار است و تعداد پایههای کمی از میکروکنترلر را اشغال میکند.
جهت دریافت دیتاشیت ADS1015 اینجا کلیک کنید.
ADS1015 Module Datasheet
معرفی پایه ها (Pinout) ماژول مبدل آنالوگ به دیجیتال ADS1015
ماژول مبدل آنالوگ به دیجیتال ADS1015 دارای 10 پایه به شرح زیر است:
- VCC: تغذیه ماژول
- GND: زمین
- SLC: همزمان سازی برای پروتکل I2C
- SDA: اطلاعات برای پروتکل I2C
- ADDR: تنظیم آدرس پروتکل I2C
- ALRT: وقفه آماده شدن اطلاعات
- A0: ورودی آنالوگ اول
- A1: ورودی آنالوگ دوم
- A2: ورودی آنالوگ سوم
- A3: ورودی آنالوگ چهارم
لوازمی که به آن احتیاج دارید
قطعات مورد نیاز
نرم افزارهای موردنیاز
راهاندازی ماژول مبدل آنالوگ به دیجیتال ADS1015 با آردوینو
گام اول: سیم بندی
مطابق مدار زیر، ماژول را به آردوینو وصل کنید.
گام دوم: نصب کتابخانه
کتابخانه زیر را بر آردوینوی خود نصب کنید.
توجه
اگر نیاز به راهنمایی بیشتر برای نصب کتابخانه بر روی آردوینو دارید، می توانید به آموزش نصب کتابخانه بر آردوینو مراجعه کنید.
نکته
برای اندازه گیری ولتاژ های دقیق تر باید مقدار Gain را تغییر دهید و با انجام این کار حداکثر ولتاژ قابل نمایش نیز کمتر می شود. مقادیر Gain را می توانید با توجه به جدول زیر انتخاب کنید.
PGA value | Max Voltage |
---|---|
0 | ±6.144V |
1 | ±4.096V |
2 | ±2.048V |
3 | ±1.024V |
4 | ±0.512V |
5 | ±0.256V |
گام سوم: کد
کد زیر را روی برد آردوینوی خود آپلود کنید.
/*
Modify on May 19, 2021
Modify by MohammedDamirchi base https://github.com/RobTillaart/ADS1X15 https://electropeak.com/learn/
*/
//
// FILE: ADS_read.ino
// AUTHOR: Rob.Tillaart
// VERSION: 0.2.1
// PURPOSE: read analog inputs - straightforward.
//
// test
// connect 1 potmeter per port.
//
// GND ---[ x ]------ 5V
// |
//
// measure at x (connect to AIN0).
//
#include "ADS1X15.h"
ADS1115 ADS(0x48);
void setup()
{
Serial.begin(115200);
Serial.println(__FILE__);
Serial.print("ADS1X15_LIB_VERSION: ");
Serial.println(ADS1X15_LIB_VERSION);
ADS.begin();
}
void loop()
{
ADS.setGain(0);
int16_t val_0 = ADS.readADC(0);
int16_t val_1 = ADS.readADC(1);
int16_t val_2 = ADS.readADC(2);
int16_t val_3 = ADS.readADC(3);
float f = ADS.toVoltage(1); // voltage factor
Serial.print("Analog0: "); Serial.print(val_0); Serial.print('\t'); Serial.print(val_0 * f, 3);
Serial.print("\tAnalog1: "); Serial.print(val_1); Serial.print('\t'); Serial.print(val_1 * f, 3);
Serial.print("\tAnalog2: "); Serial.print(val_2); Serial.print('\t'); Serial.print(val_2 * f, 3);
Serial.print("\tAnalog3: "); Serial.print(val_3); Serial.print('\t'); Serial.print(val_3 * f, 3);
Serial.println();
delay(1000);
}
// -- END OF FILE
*/
این کد جهت تست مقادیر دریافتی از پایه های A0~A3 میباشد.