Arduino Nano ile ADS1115 Bağlantısı ve Veri Okuma

Arduino Nano ile ADS1115 Bağlantısı ve Veri Okuma

Bir önceki makalemizde ADS1115 çipini tanıtmıştık. İlgilli makale için tıklayınız. Texas Instruments ADS1115: Hassas Analog-Dijital Dönüştürücü 

Bu makalemizde ise bir ADS1115 modülünün MCU'ya nasıl bağlanacağını göreceğiz. Örnek olarak seçtiğimiz MCU ise hem ekonomik hem de programlaması kolay Arduino Nano kartıdır.

Arduino Nano kartını seçmemizin en önemli sebebi ise küçük boyutlu olması. Veri analiz sistemleri tasarlarken, tasarladığımız sistemin mümkün olduğunca az yer kaplaması önemli bir konudur.  

Bu projede çok farklı sensörler kullanılabilir.

Arduino Nano Ve ADS1115 modülü ile I2C İletişimi

Arduino Nano'nun SDA ve SCL pinleri belirli pin numaralarına sahiptir. Genellikle Arduino Nano'da A4 pinine SDA ve A5 pinine SCL atanmıştır. Bu pinler genellikle şu şekildedir:

A4: SDA (Analog Pin 4)
A5: SCL (Analog Pin 5)

Bu pinler, Arduino Nano'nun I2C iletişiminde kullanılır. Dolayısıyla, ADS1115 gibi bir cihazı Arduino Nano'ya bağlarken, ADS1115'in SDA ve SCL pinlerini Arduino Nano'nun SDA ve SCL pinlerine bağlamanız gerekir.

Bu bağlantılar şu şekilde yapılabilir:
ADS1115 SDA pini, Arduino Nano'nun A4 pinine bağlanır.
ADS1115 SCL pini, Arduino Nano'nun A5 pinine bağlanır.
Bu şekilde, ADS1115'i Arduino Nano'ya bağlayabilir ve I2C ile haberleşme sağlayabilirsiniz.

Arduino Nano gibi mikrodenetleyiciler genellikle entegre pull-up dirençleri içermezler, bu yüzden harici pull-up dirençlerine ihtiyaç vardır. Tipik bir I2C bağlantısında, SDA ve SCL hatlarına 2.2kΩ ile 10kΩ arasında pull-up dirençleri kullanılması önerilir.

Pull-up dirençlerini bağlamak için, SDA ve SCL hatlarını Vcc (genellikle 3.3V) ile bağlayacak şekilde birer direnç bağlamanız gerekir. Bu şekilde, I2C iletişimi için gerekli pull-up dirençleri sağlanmış olur.

Veri okuma için MCU kodları:

#include <Wire.h>
#include <Adafruit_ADS1015.h>

Adafruit_ADS1115 ads;  // ADS1115 nesnesini oluşturun

void setup(void) 
{
  Serial.begin(9600);
  Serial.println("ADS1115 ile örnek okuma:");
  
  // ADS1115'i başlat
  if (!ads.begin()) 
  {
    Serial.println("ADS1115 başlatılamadı!");
    while (1);
  }
}

void loop(void) 
{
  int16_t adc0;

  adc0 = ads.readADC_SingleEnded(0); // 0. kanaldan veri oku
  Serial.print("ADC 0 Değeri: "); Serial.println(adc0);

  delay(1000);
}

Bu kod, ADS1115 entegresinden gelen analog veriyi A0 pininden okur ve seri monitöre yazdırır. Verilen bağlantılara göre Arduino Nano'ya yüklenebilir ve seri monitörden verileri gözlemleyebilirsiniz. 

Not: int16_t veri türünün bazı özellikleri:
Minimum değer: -32,768
Maksimum değer: 32,767

İlgili MakaleFlutter ve Arduino ile Uygulama Geliştirme Örneği