آموزش راه اندازی ماژول مبدل آنالوگ به دیجیتال ADS1110 با آردوینو

فهرست مطالب

مقدمه

ماژول های مبدل آنالوگ به دیجیتال برای تبدیل دیتای آنالوگ به دیجیتال مورد استفاده قرار می گیرند. ماژول ADS1110 نیز با همین هدف ساخته شده است. این ماژول 16 بیتی دقت قابل قبولی را برای اندازه گیری داده های آنالوگ توسط میکروکنترلر ارائه می دهد.
در این آموزش قصد داریم تا بوسیله برد پردازشی آردوینو، ماژول ADS1110 را راه اندازی کنیم. ارتباط بین ماژول و آردوینو نیز از طریق پروتکل ارتباطی I2C می باشد.

ADS1110 Module

ما در این پروژه از خروجی یک پتانسیومتر—بین 2 تا 10 کیلو اهم—به عنوان دیتای ورودی به ماژول ADS1110 استفاده می کنیم. همچنین برای راه اندازی ماژول ADS1110 به مقاومت های PULL UP در بازه 1 تا 10 کیلو اهم نیاز داریم.

معرفی پایه های (Pinout) ماژول ADS1110

ماژول ASD1110 دارای 6 پایه به شرح زیر است:
VIN: تغذیه ماژول
GND: زمین
SDA: برای پروتکل ارتباطی I2C
SCL: برای پروتکل ارتباطی I2C
VIN-: پایه ورودی منفی منبع ولتاژ
VIN+: پایه ورودی مثبت منبع ولتاژ

ADS1110 Pinout

لوازمی که به آن احتیاج دارید

قطعات مورد نیاز

Arduino UNO R3 × 1
ADS1110 Converter Module × 1
Male-to-Male Jumper Wire × 1
2k Potentiometer × 1
2.2k Resistor × 2
Breadboard × 1

نرم افزارهای مورد نیاز

Arduino IDE

راه اندازی ماژول ADS1110 با استفاده از آردوینو

گام اول: سیم بندی

مطابق با مدار زیر، قطعات را وصل کنید.

ADS1110 Interface Circuit

گام دوم: نرم افزار آردوینو

در محیط نرم افزار آردوینو، مطابق با تصویر، ابتدا نوع بورد خود را مشخص کرده و سپس Port مناسب را انتخاب کنید.

Arduino IDE Settings (1)
Arduino IDE Settings (2)

گام سوم: کد

کد زیر را بر روی آردوینوی خود آپلود کنید.

#include "Wire.h"
#define ads1110 0x48
float voltage, data;
byte highbyte, lowbyte, configRegister;
void setup()
{
 Serial.begin(9600);
 Wire.begin();
}
void loop()
{
 Wire.requestFrom(ads1110, 3);
 while(Wire.available()) // ensure all the data comes in
 {
 highbyte = Wire.read(); // high byte * B11111111
 lowbyte = Wire.read(); // low byte
 configRegister = Wire.read();
 }

 data = highbyte * 256;
 data = data + lowbyte;
 Serial.print("Data >> ");
 Serial.println(data, DEC);
 Serial.print("Voltage >> ");
 voltage = data * 2.048 ;
 voltage = voltage / 32768.0;
 Serial.print(voltage, DEC);
 Serial.println(" V");
 delay(1000);
}

توضیحات کد آردوینو

#include "Wire.h"
#define ads1110 0x48
float voltage, data;
byte highbyte, lowbyte, configRegister;

در کد نویسی، ابتدا کتابخانه مربوط به I2C را فراخوانی کرده و سپس آدرس I2C ماژول را پیدا می کنیم. برای مشخص کردن آدرس I2C می توانیم در نرم افزار آردوینو از قسمت Examples <– Wire <– File، مثال I2C_scanner را اجرا کنیم. حال در پنجره Serial Monitor آدرس قابل مشاهده خواهد بود. پس از آن متغیر های مورد نیاز را تعریف می کنیم.

Wire.requestFrom(ads1110, 3);
 while(Wire.available()) // ensure all the data comes in
 {
 highbyte = Wire.read(); // high byte * B11111111
 lowbyte = Wire.read(); // low byte
 configRegister = Wire.read();
 }

 در این بخش، اطلاعات ارسالی ماژول در سه متغیر ذخیره می شود.

data = highbyte * 256;
 data = data + lowbyte;
 Serial.print("Data >> ");
 Serial.println(data, DEC);
 Serial.print("Voltage >> ");
 voltage = data * 2.048 ;
 voltage = voltage / 32768.0;
 Serial.print(voltage, DEC);
 Serial.println(" V");
 delay(1000);

در این قسمت از کد محاسبات ریاضی لازم را برای تبدیل داده های دریافتی از ماژول به داده مورد نظر انجام می دهیم. این محاسبات طبق دیتاشیت ماژول انجام شده است. پس از اجرای کد می توانید از طریق پنجره Serial Monitor خروجی مورد نظر را به شکل دیتای 16 بیتی و مقدار ولتاژ مشاهده کنید.

ADS110 (Serial Monitor)

نکات مهم در عیب یابی

• اتصالات مدار را چک کنید.
• آدرس I2C را بررسی کنید.
• مقدار مقاومت های استفاده شده را مطابق مقادیر ذکر شده انتخاب کنید.

آموزش های مشابه

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

نشانی ایمیل شما منتشر نخواهد شد.