ADS1115 তার বহুমুখিতা এবং নির্ভুলতার কারণে নির্মাতা এবং ইলেকট্রনিক্স উত্সাহীদের দ্বারা ডিজিটাল রূপান্তরকারী (ADC) থেকে সর্বাধিক ব্যবহৃত অ্যানালগগুলির মধ্যে একটি। এই 16-বিট ডিভাইসটি সহজে Arduino বা Raspberry Pi এর মতো প্ল্যাটফর্মের সাথে সংযোগ স্থাপন করে এর I2C ইন্টারফেসের জন্য ধন্যবাদ। ADS1115-এ 4টি পর্যন্ত অ্যানালগ বা 2টি ডিফারেনশিয়াল ইনপুট পরিমাপ করার ক্ষমতা রয়েছে, যা অনেকগুলি মাইক্রোকন্ট্রোলারের মধ্যে তৈরি করা থেকে উচ্চতর রেজোলিউশন প্রদান করে।
এর প্রোগ্রামেবল লাভ এবং ইতিবাচক এবং নেতিবাচক উভয় সংকেত পরিমাপ করার ক্ষমতার জন্য ধন্যবাদ, এটি সেই সমস্ত প্রকল্পগুলির জন্য একটি অপরিহার্য হাতিয়ার হয়ে উঠেছে যেগুলির জন্য অভ্যন্তরীণ ADCগুলি যা দিতে পারে তার চেয়ে বেশি নির্ভুলতা প্রয়োজন, যেমন উচ্চ-নির্ভুল সেন্সর বা ভোল্টেজ কম৷
ADS1115 কি?
ADS1115 হল একটি এনালগ ডিজিটাল কনভার্টার (ADC) যা এনালগ সংকেতকে প্ল্যাটফর্ম দ্বারা প্রক্রিয়াযোগ্য ডিজিটাল ডেটাতে রূপান্তরিত করে যেমন যাও Arduino o ESP8266. এই ডিভাইসটি এর 16-বিট রেজোলিউশনের জন্য আলাদা, যা এটিকে মাইক্রোকন্ট্রোলারের অভ্যন্তরীণ ADCগুলির তুলনায় অনেক বেশি সুনির্দিষ্ট করে তোলে যেমন Arduino Uno, যা শুধুমাত্র 10 বিট অফার করে।
ADS1115 এর সবচেয়ে দরকারী বৈশিষ্ট্যগুলির মধ্যে একটি হল এর ক্ষমতা সরল (একক-শেষ) এবং ডিফারেনশিয়াল সিগন্যাল উভয়ের পরিমাপ সম্পাদন করুন. একক-এন্ডেড মোডে, আপনি চারটি স্বাধীন সংকেত সংযোগ করতে পারেন, যখন ডিফারেনশিয়াল মোডে, আপনি নেতিবাচক সংকেত পরিমাপের অনুমতি দিয়ে দুই জোড়া সংকেত সংযোগ করতে পারেন।
ADS1115 এর প্রযুক্তিগত বৈশিষ্ট্য
ADS1115 বেশ কয়েকটি উন্নত বৈশিষ্ট্য অন্তর্ভুক্ত করে যা এটিকে এমন প্রকল্পগুলির জন্য একটি চমৎকার পছন্দ করে যেখানে উচ্চ রেজোলিউশনের অ্যানালগ পরিমাপের প্রয়োজন হয়:
- 16 বিট রেজোলিউশন: এর মানে এটি 65,536 পর্যন্ত বিভিন্ন সিগন্যাল স্তর পরিমাপ করতে পারে। এটি বেশিরভাগ মাইক্রোকন্ট্রোলারে নির্মিত 10-বিট এডিসিগুলির তুলনায় এটিকে অনেক বেশি সুনির্দিষ্ট বিকল্প করে তোলে।
- I2C ইন্টারফেস: এটি ডিভাইসটিকে মাইক্রোকন্ট্রোলারের সাথে সহজেই যোগাযোগ করতে দেয়। উপরন্তু, এটির ADDR কনফিগারযোগ্য ঠিকানা পিনের জন্য একটি একক বাসে চারটি ADS1115 পর্যন্ত সংযোগ করা সম্ভব।
- পরিমাপ মোড: ডিভাইসটি একক-এন্ডেড (4টি স্বাধীন চ্যানেল) এবং ডিফারেনশিয়াল (2 চ্যানেল) পরিমাপ উভয়ই অফার করে। ডিফারেনশিয়াল মোডে, শব্দ হ্রাস করা হয় এবং নেতিবাচক সংকেত পরিমাপ করা যায়।
- প্রোগ্রামেবল পিজিএ: El প্রোগ্রামেবল লাভ এমপ্লিফায়ার (PGA) ±6.144V থেকে ±0.256V রেঞ্জে লাভ সামঞ্জস্য করে, কম ভোল্টেজ পরিমাপ করার সময় আরও নির্ভুলতার অনুমতি দেয়। এটি উল্লেখ করা উচিত যে, যদিও PGA ±6.144V পর্যন্ত পরিচালনার অনুমতি দেয়, তবে ডিভাইসের সরবরাহ ভোল্টেজের (বেশিরভাগ ক্ষেত্রে 5V) এর বেশি পরিমাপ করা সম্ভব নয়।
- ভোল্টেজ তুলনাকারী: ADS1115-এ একটি প্রোগ্রামেবল তুলনাকারী রয়েছে যা ALERT পিনের মাধ্যমে একটি সতর্কতা তৈরি করতে পারে যখন একটি সংকেত একটি সফ্টওয়্যার-সংজ্ঞায়িত থ্রেশহোল্ড মান অতিক্রম করে।
অপারেটিং মোড
ADS1115 এর অপারেশনের দুটি প্রধান মোড রয়েছে যা প্রকল্পের প্রয়োজন অনুসারে অভিযোজিত হতে পারে:
- ক্রমাগত রূপান্তর: এই মোডে, ডিভাইসটি ক্রমাগত ডেটা নিতে থাকে, ক্রমাগত পর্যবেক্ষণ অ্যাপ্লিকেশনের জন্য আদর্শ।
- একক শট মোড: ডিভাইসটি একটি রিডিং নেয় এবং তারপরে অন্য পড়ার জন্য অনুরোধ না করা পর্যন্ত কম পাওয়ার মোডে যায়৷ আপনি যখন ব্যাটারি চালিত প্রকল্পগুলিতে বিদ্যুৎ খরচ কমাতে চান তখন এটি কার্যকর।
প্রোগ্রামেবল গেইন (PGA) মোড
ADS1115 এর একটি আছে প্রোগ্রামেবল লাভ এমপ্লিফায়ার (PGA), যা আপনাকে এর পরিমাপের পরিসর সামঞ্জস্য করতে দেয়। কম ভোল্টেজের সংকেতগুলির সাথে কাজ করার সময় এটি বিশেষভাবে কার্যকর, কারণ আপনি ADC এর রেজোলিউশনের সম্পূর্ণ সুবিধা নিতে সিগন্যালকে প্রসারিত করতে পারেন। সমর্থিত ব্যাপ্তিগুলি হল ±6.144V থেকে ±0.256V, বিভিন্ন ধরণের অ্যাপ্লিকেশনে নমনীয়তা প্রদান করে৷ তবে, ডিভাইসের পাওয়ার সাপ্লাই ভোল্টেজ অতিক্রম না করা অপরিহার্য, যা সাধারণত 5V হয়, কারণ আপনি রূপান্তরকারীর ক্ষতি করতে পারেন।
ADS1115 অ্যাপ্লিকেশন
- সেন্সর পরিমাপ: যখন আপনাকে তাপমাত্রা, আলো বা pH সেন্সরগুলির মতো এনালগ সেন্সর থেকে সুনির্দিষ্ট ডেটা পড়তে হবে, তখন ADS1115 একটি মূল হাতিয়ার হয়ে ওঠে।
- গবেষণা প্রকল্প: কিছু প্রকল্পে যেখানে ছোট ভোল্টেজগুলিতে সূক্ষ্ম পরিবর্তনগুলি পরিমাপ করা প্রয়োজন, ADS16 এর 1115-বিট রেজোলিউশন প্রয়োজনীয় নির্ভুলতা প্রদান করে।
- ব্যাটারি পর্যবেক্ষণ: ডিফারেনশিয়াল সিগন্যাল এবং এর অভ্যন্তরীণ তুলনাকারী পরিমাপ করার ক্ষমতার জন্য ধন্যবাদ, ADS1115 ব্যাটারি পর্যবেক্ষণ সিস্টেম তৈরি করতেও ব্যবহার করা যেতে পারে, যেখানে ভোল্টেজ একটি গুরুতর স্তরের নিচে নেমে গেলে একটি সতর্কতা তৈরি করা যেতে পারে।
আরডুইনোর সাথে সংযোগ
একটি Arduino বোর্ডের সাথে ADS1115 সংযোগ করা খুব সহজ এর I2C ইন্টারফেসের জন্য ধন্যবাদ। ডিভাইসটিকে 5V দিয়ে পাওয়ার করার পাশাপাশি আপনাকে শুধুমাত্র ADC-এর SDA এবং SCL পিনগুলিকে Arduino-এর সংশ্লিষ্ট পিনগুলির সাথে সংযুক্ত করতে হবে।
নীচে, আমরা আপনাকে মৌলিক সংযোগ চিত্র দেখাই:
VCC (ADS1115) -> 5V (Arduino)
GND (ADS1115) -> GND (Arduino)
SCL (ADS1115) -> SCL (Arduino)
SDA (ADS1115) -> SDA (Arduino)
ADC-এর I2C ঠিকানা নির্বাচন করার জন্য, যথাক্রমে 0x48, 0x49, 0x4A বা 0x4B ঠিকানাগুলি পেয়ে ADDR পিনটিকে GND, VDD, SDA বা SCL-এর সাথে সংযুক্ত করতে হবে। আপনি আপনার প্রকল্পে কতগুলি ADS1115 ব্যবহার করতে চান তার উপর নির্ভর করে, এই বিকল্পটি খুব দরকারী হয়ে ওঠে।
ADS1115 এর জন্য Adafruit লাইব্রেরি ব্যবহার করা
Arduino এর সাথে ADS1115 এর ব্যবহার সহজ করার জন্য, Adafruit লাইব্রেরি ইনস্টল করা যেতে পারে। এই লাইব্রেরি আপনাকে শুরু করতে সাহায্য করার জন্য খুব স্পষ্ট উদাহরণ প্রদান করে। একক-এন্ডেড মোডে চারটি চ্যানেল পড়ার জন্য নীচে একটি প্রাথমিক উদাহরণ রয়েছে:
#include <Wire.h>
#include <Adafruit_ADS1015.h>
Adafruit_ADS1115 ads;
void setup(void) {
Serial.begin(9600);
ads.begin();
}
void loop(void) {
int16_t adc0, adc1, adc2, adc3;
adc0 = ads.readADC_SingleEnded(0);
adc1 = ads.readADC_SingleEnded(1);
adc2 = ads.readADC_SingleEnded(2);
adc3 = ads.readADC_SingleEnded(3);
Serial.print("AIN0: "); Serial.println(adc0 * 0.1875);
Serial.print("AIN1: "); Serial.println(adc1 * 0.1875);
Serial.print("AIN2: "); Serial.println(adc2 * 0.1875);
Serial.print("AIN3: "); Serial.println(adc3 * 0.1875);
delay(1000);
}
এই কোডটি চারটি অ্যানালগ চ্যানেল পড়ে এবং সেগুলিকে ভোল্টেজে রূপান্তর করে, আমরা যে লাভটি ADC-তে রাখি সেই অনুযায়ী সংশ্লিষ্ট গুণক ব্যবহার করে।
ডিফারেনশিয়াল মোড
ADS1115 এর ডিফারেনশিয়াল মোড নেতিবাচক ভোল্টেজ পরিমাপ করতে বা শব্দ কমানোর জন্য খুবই উপযোগী। পিন A0 এবং A1 এর মধ্যে একটি ডিফারেনশিয়াল রিডিং করার জন্য এটি একটি মৌলিক উদাহরণ:
#include <Wire.h>
#include <Adafruit_ADS1015.h>
Adafruit_ADS1115 ads;
void setup(void) {
Serial.begin(9600);
ads.begin();
}
void loop(void) {
int16_t results;
results = ads.readADC_Differential_0_1();
Serial.print("Diferencial: "); Serial.println(results * 0.1875);
delay(1000);
}
এই বিকল্প রিডিং মোডের সাহায্যে, আপনি দুটি ইনপুটের মধ্যে ভোল্টেজের পার্থক্য পরিমাপ করতে পারেন, যেখানে গোলমাল সমস্যা হতে পারে এমন অ্যাপ্লিকেশনের জন্য আদর্শ।
চূড়ান্ত বিবেচনা
ADS1115 শুধুমাত্র এই ধরনের ADC-এর জন্য অসামান্য নির্ভুলতা প্রদান করে না, কিন্তু ব্যবহার করাও অত্যন্ত সহজ। এর I2C ইন্টারফেস এবং একক এবং ডিফারেনশিয়াল উভয় সিগন্যাল পরিমাপ করার ক্ষমতা এটিকে যেকোনো ইলেকট্রনিক্স প্রজেক্টের জন্য একটি মূল্যবান উপাদান করে তোলে, আপনি কম ভোল্টেজ সহ সেন্সর পরিমাপ করছেন বা একটি সাধারণ মাইক্রোকন্ট্রোলারের তুলনায় আরও নির্ভুলতার প্রয়োজন। এছাড়া, এর অন্তর্নির্মিত তুলনাকারী নির্দিষ্ট থ্রেশহোল্ড অতিক্রম করা হলে অ্যালার্ম তৈরির অনুমতি দিয়ে ইউটিলিটির একটি অতিরিক্ত স্তর যোগ করে, এটিকে নিরীক্ষণ অ্যাপ্লিকেশনের জন্য নিখুঁত করে তোলে। আপনি যদি আপনার অ্যানালগ পরিমাপে নির্ভুলতা এবং কার্যকারিতা খুঁজছেন, ADS1115 একটি অত্যন্ত প্রস্তাবিত বিকল্প।