Analog’dan Dijital’e (ADC) dönüştürme

Mikrodenetleyiciler binary (ikili) sinyalleri algılama yeteneğine sahiptir: düğmeye basıldı mı yoksa basılmadı mı? Bunlar dijital sinyallerdir. Bir mikro denetleyici beş volt ile beslendiğinde, sıfır volt’u (0V) binary 0 ve beş volt’u (5V) binary 1 olarak anlar. Ancak 0-5V’tan başka, ölçülmesi gereken ara değerler de vardır. Örneğin ölçtüğümüz sinyal 2.72V ise ne olur? Bu 0 mı yoksa 1 mi? Uygulamalarımızda genellikle değişen sinyalleri ölçmemiz gerekir; Bunlara analog sinyaller denir. 5V’lık bir analog sensör, 0.01V veya 4.99V veya bunların arasında herhangi bir değer üretebilir (ölçtüğü değere göre). Neredeyse tüm mikro denetleyiciler bu gerilimleri, bir karar vermek için programlarda kullanabileceğimiz değerlere dönüştürmemize izin veren bir cihaza sahiptirler. Bu cihaz Analog / Dijital Çeviriciler olarak isimlendirilir.

ADC nedir?

Analogdan Dijital Dönüştürücü (ADC), bir pindeki analog voltajı, dijital sayıya dönüştüren çok kullanışlı bir özelliktir. Analog dünyadan gelen bilgileri dijital dünyaya dönüştürebiliriz, böylelikle çevremizdeki analog dünyayla etkileşimde bulunmak için elektronik cihazları kullanabiliriz.

1

 

Arduino mikro denetleyicideki her pinin, analogdan dijital dönüşümlerle ilgili yeteneği yoktur. Arduino bordunda, hangi pinlerin analog voltajları okuyabileceğini belirtmek için, bu pinlerin etiketlerinin önünde (A0’dan A5’e) bir ‘A’ vardır. Yukarıdaki resimde kırmızı kare içinde gösterilen pinler analog pinlerdir.

ADC’ler mikrodenetleyiciler arasında büyük oranda değişiklik gösterebilir. Arduino’daki ADC, 10 bit ADC’dir ve 1.024 (210) ayrı analog seviyeyi algılama yeteneğine sahiptir. Bazı mikro denetleyicilerin 8 bitlik ADC’leri (28 = 256 farklı seviye) vardır ve bazıları 16-bit ADC’lere sahiptir (216 = 65.536 farklı seviye).

ADC’nin çalışma şekli oldukça karmaşıktır. Bunu başarıyla yapabilmek için birkaç farklı yol vardır (bkz. Wikipedia), ancak en yaygın tekniklerden biri analog voltajı kullanarak bir dahili kondansatörü şarj etmek ve daha sonra dahili bir direnç üzerinden boşaltma süresini ölçmektir. Mikrodenetleyici, kapasitör boşaltılmadan önce geçen saat devir sayısını (clock cycle period) izler. Bu döngü sayısı, ADC tamamlandıktan sonra döndürülen sayıdır.

 

ADC Değerinin Gerilimle İlişkilendirilmesi

ADC, oranlanmış bir değer bildirir. Bu, ADC’nin 5V değerinin 1023 olduğunu (5V = 1023 veya 5000mV=1023), 0V değerinin 0 olduğunu (0V = 0 veya 0mV=0) ve 5V’den küçük herhangi bir değerin 0 ile 1023 arasında bir sayı olacağı anlamına gelir. 

2

Analogdan dijitale dönüşümler sistem voltajına bağlıdır. 5V sisteminde ağırlıklı olarak Arduino’nun 10 bitlik ADC’sini kullandığımız için bu denklemi biraz basitleştirebiliriz:

3

Sistem voltajınız 3.3V ise denklemde sadece 5V’yi 3.3V ile değiştirmeniz yeterlidir.

5V’luk sistemde ölçtüğünüz Analog voltaj 2.12V ise, ADC bir değer olarak ne rapor eder?

4

denklemimizi yeniden düzenlediğimizde;

5

sonucunu buluruz. Demek ki analog girişten 2,12 V luk bir değer okunduğunda ADC, bu değeri dijital olarak 434’e dönüştürüyor. Elde ettiğimiz bu değerlere göre, programımızda (örneğin) sensör verilerini çok rahat bir şekilde kullanabiliriz.

Sisteminiz 3.3V ve ADC’niz 512 olarak rapor veriyorsa, voltaj ne ölçülür?

Analog girişten ölçülen değer yaklaşık 1,65V’dur.

Peki;

Bir analog sensörü normal (dijital) bir pine bağlarsanız ne olur?

Hiçbirşey olmaz. AnalogRead’i başarılı bir şekilde yapamazsınız.

int x = analogRead(8);

Yukarıdaki kodunuz derlenir ve Arduino’ya yüklenir ancak x değişkeninde anlamsız ve saçma bir değer görürsünüz.

Peki ya Dijital bir sensörü yada butonu analog pine bağlarsam ne olur? Yine, hiçbir şeye zarar vermezsiniz. Bir butondan gelen sinyalde analogdan dijitale dönüşüm yaparsanız, büyük olasılıkla ADC değerlerini 1023’e (veya binary 1 olan 5V’ye) çok yakın veya 0’a (veya binary 0 olan 0V’a) çok yakın görürsünüz.

 

Faydalanmanız Dileğiyle…………

Analog’dan Dijital’e (ADC) dönüştürme” için 2 yorum

Yorum bırakın