Haberler

Analogdan Sayısala Dönüştürücü (ADC) Neden Gereklidir?

Belki de uygulamanızda bir Analogdan Dijitale Dönüştürücü (ADC) ne zaman gerektiğini düşünüyorsunuzdur? Ancak ADC’nin düşündüğünüzden çok daha yaygın olduğunu biliyor musunuz! Öncelikle ADC’nin tam olarak ne olduğunu inceleyelim.

Giriş

Arduino veya Raspberry Pi kullanarak projeler oluşturduğumuzda, genellikle fiziksel dünya hakkında bilgi edinmek için farklı sensörleri bağlarız ve bu bilgilere dayanarak bazı işlemler yaparız. İletişimden bahsederken, sıkça karşılaştığımız iki tür sinyal vardır:

  • Analog Sinyaller
  • Dijital Sinyaller

Öncelikle bu sinyallerin ne olduğunu anlamaya çalışalım:


Analog Sinyaller Nedir?

Analog sinyaller, zamanla değişen sürekli sinyal türleridir. Sıcaklık, ışık, basınç ve ses sensörleri gibi çevresel sensörlerin çoğu, mikrodenetleyicilerle analog sinyaller kullanarak iletişim kurar. Bu analog sensörler, algıladıkları verilere dayanarak belirli bir aralıkta değerler üretir. Analog sinyaller genellikle sinüs dalgaları şeklinde olup, genlik, frekans ve faz ile tanımlanabilir; burada genlik sinyallerin en yüksek yüksekliğini, frekans analog sinyallerin değişim hızını ve faz sinyalin zamandaki konumunu belirtir.


Dijital Sinyaller Nedir?

Dijital sinyaller, zamanla değişen ayrık sinyal türleridir. Dijital sinyallerde veri, ikili biçimde taşınır. Bu, ya “0” ya da “1” taşıyabileceği anlamına gelir. Bir anahtarı düşündüğünüzde, açmak için bastığınızda dijital sinyaller gönderir ve “1” olarak iletirken, kapatmak için tekrar bastığınızda “0” olarak iletir. Dijital sinyallerin de analog sinyaller gibi bir genliği, frekansı ve fazı vardır. Dijital Sinyaller genellikle bit aralığı ve bit hızı ile tanımlanır; burada bit aralığı bir bitin iletilmesi için gereken süreyi, bit hızı ise bit aralığının frekansını ifade eder.


ADC Nedir?

Analog sensörleri kullanmanız ve bir mikrodenetleyici ile iletişim kurmanız gerektiğinde, mikrodenetleyicinin bu analog sinyalleri doğrudan anlaması mümkün değildir çünkü mikrodenetleyiciler yalnızca 1’ler ve 0’lar ile oluşan dijital sinyalleri anlar. Bu nedenle, bu tür bir sistemin, mikrodenetleyicinin bu sinyalleri anlaması için bu sensörlerden gelen analog sinyalleri dijital sinyallere dönüştürebilecek bir ara cihaza ihtiyacı vardır. ADC (Analogdan Dijitale Dönüştürücü), bu analog sinyalleri dijital sinyallere dönüştürebilen bir elektronik entegre devredir.

Normalde bir ADC, bir dizi voltaj girişini kabul eder ve bunları ikili sayılar biçimine dönüştürür.


Arduino UNO’nun zaten bir ADC’si var mı?

Evet. Arduino’nun 10 bit çözünürlüğe sahip bir ADC’si vardır, bu da 2^10 = 1024 ayrık analog seviyeyi tanımlayabildiği anlamına gelir. Ancak bu aralık 0 – 1023 arasındadır. Bu nedenle, bir sensörü Arduino UNO’ya bağlarsanız ve 1023 değerinde bir analog seviye çıkışı alırsanız, mikrodenetleyici nihayetinde bunu 10 bit ADC’den geçtikten sonra 5V sinyali olarak alacaktır.

0 -> 0V
1023 -> 5V

Ama Neden ADC’ye İhtiyacımız Var?

Çoğu mikrodenetleyicinin içinde ADC’ler bulunsa da, bazen daha gelişmiş projelerde sensörlerden daha doğru sonuçlar almak için ek ADC modülleri bağlamamız gerekir. Piyasada 12 bit, 14 bit, 16 bit, 24 bit gibi farklı ADC’ler bulunmaktadır. Doğruluk, ADC’nin çözünürlüğü ile doğrudan ilişkilidir. Çözünürlük arttıkça, doğruluk da artar.

Dolayısıyla, bir ADC’nin tanımladığı ayrık analog seviyelerin sayısı aşağıdaki basit denklemle ifade edilebilir:

Ayrık analog seviye sayısı = 2 ^ ADC’nin çözünürlüğü

Bu nedenle, ADC çözünürlüğüne bağlı olarak ayrık analog seviyelerin aralığı aşağıdaki tabloda ifade edilebilir.

Çözünürlük Aralık
24 16,777,216
16 65,536
14 16,384
12 4096
10 1024

Şimdi mikrodenetleyiciden ADC okumalarını elde etmek için daha genel bir denkleme bakalım.

Örneğin, 16 bit ADC kullanırken 5V Arduino UNO üzerinde 4V’luk bir analog voltaj alırsanız:


Seeed Tarafından Sunulan ADC Modülleri

Analog sensörlerinizle çalışırken daha doğru sonuçlar elde etmek için Arduino ve Raspberry Pi ile kullanabileceğiniz bir dizi ADC modülü sunuyoruz.

Grove I2C ADC

Bu, ADC121C021 tabanlı 12 bit hassasiyetinde bir ADC modülüdür. Analog sensörlerden toplanan değerlerin doğruluğunu artırarak sabit bir referans voltajı sağlar. Adresi değiştirilebilir olduğundan, en fazla 9 I2C ADC’yi aynı anda kullanabilirsiniz. Öte yandan, bu modül, güç tüketimini önemli ölçüde azaltan otomatik uyku işlevi sunar.

“`html

Grove – 4 Kanal 16-bit ADC (ADS1115) w/ Programlanabilir Amplifikatör Kazancı

ADS1115, PGA (programlanabilir kazanç amplifikatörü) fonksiyonuna sahip, 4 kanallı, 16-bit yüksek çözünürlüklü, düşük güç tüketimli bir ADC çipidir. PGA, giriş voltajlarını ±256 mV ile ±6.144 V arasında ölçmesine olanak tanır ve böylece uygulama senaryolarını büyük ölçüde genişletir.

Raspberry Pi için 4 Kanal 16-Bit ADC (ADS1115)

Bu, Texas Instrument ADS1115 tabanlı, yüksek hassasiyetli, düşük güç tüketimli, 16-bit bir Raspberry Pi için 4 kanallı ADC’dir.

Raspberry Pi için 8 Kanal 12-Bit ADC (STM32F030)

Bu, ST tarafından üretilen STM32F030 tabanlı, yüksek hassasiyetli, düşük güç tüketimli, 12-bit bir Raspberry Pi için 8 kanallı ADC’dir.

Grove – Yük Hücresi için ADC (HX711)

Bu, yük hücresi için özel olarak tasarlanmış 24-bit A/D dönüştürücüdür. 32, 64 ve 128 kazanç seçenekleri ile düşük gürültülü programlanabilir bir amplifikatör içerir. HX711 çipi, düzenlenmiş bir güç kaynağı, entegre bir saat osilatörü ve diğer çevresel devreleri entegre eder; bu da yüksek entegrasyon, hızlı tepki ve güçlü parazit önleme avantajlarına sahiptir.


Grove – 4 Kanal 16-bit ADC(ADS1115) ve Wio Terminal ile Oynama

Şimdi Grove – 4 Kanal 16-bit ADC(ADS1115) ile Wio Terminalimizi kullanarak nasıl çalıştığını görelim.

Gerekli Donanım

Adım 1. Grove – 16 Bit ADC(ADS1115)’yi Wio Terminal’in I2C portuna takın.

Adım 2. Wio Terminal’i bir USB kablosu ile bir PC’ye bağlayın.

Yazılım

Adım 1. Github’dan Seeed Arduino ADS1115 kütüphanesini indirin.

Not
Aşağıdaki adımları takip etmeden önce Wio Terminal’ın başlangıç kılavuzunu takip edin.

Adım 2. Örnek kodu buradan indirin.

Adım 3. Demo’yu yükleyin. Kodu nasıl yükleyeceğinizi bilmiyorsanız, lütfen Kodu nasıl yükleyeceğinizi kontrol edin.

Adım 4. Rotary sensörü ayarlayın ve Wio Terminal’in LCD ekranında karşılık gelen voltaj değerlerini göreceksiniz:

Bu 16-bit bir ADC olduğu için, ayrık analog değerlerin aralığı 2^16 = 65536’dır ve rotary açı sensörünü döndürdüğünüzde, analog voltajlar 0 – 65535 aralığında dijital voltajlara dönüştürülür.


Sonuç

ADC hakkında net bir anlayışa sahip olduğunuzu umuyoruz ve analog sensörlerinizden doğru sonuçlar almak için bir ADC’yi bir sonraki projenize dahil etmeyi düşünürsünüz.

“`

Leave a Reply

Your email address will not be published. Required fields are marked *