- Dijital Elektronik ile Analog dünya
- ADC nedir ve nasıl kullanılır?
- ADC'de çözünürlük (bit) ve kanallar
- ADC için Referans Voltajı
- Misal
- ADC türleri ve çalışma
- ADC ile ilgili yaygın olarak ortaya çıkan bazı sorular
Dijital Elektronik ile Analog dünya
Birkaç yıl önce, bugün kullandığımız telefon, bilgisayar, televizyon vb. Elektronik cihazların tamamı, doğaları gereği analogdu. Daha sonra yavaş yavaş sabit telefonların yerini modern cep telefonları aldı, CRT Televizyonlar ve monitörler yerini LED ekranlara aldı, vakum tüplü bilgisayarlar içlerinde mikroişlemciler ve mikrodenetleyicilerle daha güçlü olacak şekilde gelişti vb.
Günümüz dijital çağında hepimiz gelişmiş dijital elektronik cihazlarla çevriliyiz, bu bizi çevremizdeki her şeyin doğası gereği dijital olduğunu düşünmemize yol açabilir, ki bu doğru değil. Dünya doğası gereği her zaman analog olmuştur, örneğin hız, sıcaklık, hava hızı, güneş ışığı, ses gibi biz insanların hissettiği ve deneyimlediği her şey doğada analogdur. Ancak mikrodenetleyiciler ve mikroişlemciler üzerinde çalışan elektronik cihazlarımız sadece 0'lar ve 1'lerde çalıştıkları için bu analog değerleri doğrudan okuyamıyor / yorumlayamıyor. Dolayısıyla, tüm bu analog değerleri 0'lara ve 1'lere dönüştürecek bir şeye ihtiyacımız var, böylece mikro denetleyicilerimiz ve mikro işlemcilerimiz bunları anlayabilir. Buna Analogdan Dijitale Dönüştürücüler veya kısaca ADC denir. Bu yazıda öğreneceğizADC hakkında her şey ve bunların nasıl kullanılacağı.
ADC nedir ve nasıl kullanılır?
Daha önce de belirtildiği gibi ADC, Analogdan dijitale dönüştürme anlamına gelir ve analog değerleri gerçek dünyadan 1'ler ve 0'lar gibi dijital değerlere dönüştürmek için kullanılır. Peki bu analog değerler nelerdir? Bunlar sıcaklık, hız, parlaklık gibi günlük yaşamımızda gördüklerimizdir. Ama bekleyin !! Bir ADC, sıcaklığı ve hızı doğrudan 0'lar ve 1'ler gibi dijital değerlere dönüştürebilir mi?
Meydan okurcasına hayır. Bir ADC yalnızca analog voltaj değerlerini dijital değerlere dönüştürebilir. Öyleyse hangi parametreyi ölçmek istesek, önce gerilime dönüştürülmeli, bu dönüşüm sensörler yardımı ile yapılabilir. Örneğin, sıcaklık değerlerini voltaja dönüştürmek için, parlaklığı voltaja dönüştürmek için benzer şekilde bir Termistör kullanabiliriz, bir LDR kullanabiliriz. Voltaja dönüştürüldükten sonra ADC'ler yardımıyla okuyabiliriz.
Bir ADC'nin nasıl kullanılacağını bilmek için öncelikle kanal çözünürlüğü, menzil, referans voltajı gibi bazı temel terimlere aşina olmalıyız.
ADC'de çözünürlük (bit) ve kanallar
Herhangi bir Mikroişlemcinin veya ADC IC'nin özelliklerini okuduğunuzda, ADC'nin ayrıntıları kanallar ve Çözünürlük (bitler) terimleri kullanılarak verilecektir. Örneğin bir Arduino UNO'nun ATmega328'i 8 kanallı 10 bitlik bir ADC'ye sahiptir. Bir mikrodenetleyicideki her pin Analog voltajı okuyamaz, 8 kanallı terimi, bu ATmega328 mikrodenetleyicide Analog voltajı okuyabilen ve her pinin voltajı 10 bitlik bir çözünürlükle okuyabilen 8 pin olduğu anlamına gelir. Bu, farklı Mikroişlemci türleri için değişiklik gösterecektir.
ADC aralığımızın 0V ila 5V arasında olduğunu ve 10 bitlik bir ADC'ye sahip olduğumuzu varsayalım, bu, 0-5 Volt giriş voltajımızın 1024 seviyeli ayrık analog değere (2 10 = 1024) bölüneceği anlamına gelir. Anlamı 1024, 10 bitlik ADC için çözünürlüktür, benzer şekilde 8 bitlik ADC çözünürlüğü 512 (2 8) ve 16 bitlik ADC çözünürlüğü 65.536 (2 16) olacaktır.
Bununla birlikte gerçek giriş voltajı 0V ise MCU'nun ADC'si 0 olarak okuyacak ve 5V ise MCU 1024'ü, 2.5V gibi bir yerde ise MCU 512 okuyacaktır. Aşağıdaki formülleri kullanabiliriz. ADC'nin Çözünürlüğü ve Çalışma voltajına dayalı olarak MCU tarafından okunacak dijital değeri hesaplamak için.
(ADC Çözünürlüğü / Çalışma Gerilimi) = (ADC Dijital Değeri / Gerçek Gerilim Değeri)
ADC için Referans Voltajı
Aşina olmanız gereken bir diğer önemli terim de referans voltajıdır. Bir ADC dönüşümü sırasında bilinmeyen voltajın değeri, bilinen bir voltajla karşılaştırılarak bulunur, bu bilinen voltaj, Referans voltaj olarak adlandırılır. Normalde tüm MCU'ların dahili referans voltajını ayarlama seçeneği vardır , yani bu voltajı yazılım (program) kullanarak dahili olarak bazı mevcut değerlere ayarlayabilirsiniz. Bir Arduino UNO kartında referans voltajı varsayılan olarak dahili olarak 5V'a ayarlanır, gerekirse kullanıcı bu referans voltajını Vref pini aracılığıyla harici olarak yazılımda gerekli değişiklikleri yaptıktan sonra da ayarlayabilir.
Ölçülen analog voltaj değerinin her zaman referans voltaj değerinden düşük olması ve referans voltaj değerinin her zaman mikro denetleyicinin çalışma voltajı değerinden düşük olması gerektiğini unutmayın.
Misal
Burada 3 bit çözünürlüğü ve 2V referans voltajı olan ADC'yi örnek alıyoruz. Böylece 0-2v analog voltajı aşağıdaki resimde gösterildiği gibi 8 (2 3) farklı seviyeyle eşleyebilir:
Dolayısıyla, analog voltaj 0.25 ise, dijital değer ondalık olarak 1 ve ikili olarak 001 olacaktır. Benzer şekilde, analog voltaj 0.5 ise, dijital değer ondalık olarak 2 ve ikili olarak 010 olacaktır.
Bazı mikrodenetleyiciler Arduino, MSP430, PIC16F877A gibi dahili ADC'ye sahiptir, ancak bazı mikrodenetleyicilerde 8051, Raspberry Pi vb.
Aşağıda farklı mikrodenetleyicilere sahip çeşitli ADC örneklerini bulabilirsiniz:
- Arduino Uno'da ADC Nasıl Kullanılır?
- Raspberry Pi ADC Eğitimi
- ADC0808 ile 8051 Mikrodenetleyici arasında arayüz oluşturma
- AVR Mikrodenetleyiciyi kullanarak 0-25V Dijital Voltmetre
- STM32F103C8'de ADC nasıl kullanılır
- MSP430G2'de ADC nasıl kullanılır
ADC türleri ve çalışma
Birçok ADC türü vardır, en yaygın kullanılanları Flash ADC, Dual Slope ADC, Ardışık yaklaşım ve Dual Slope ADC'dir. Bu ADC'lerin her birinin nasıl çalıştığını ve aralarındaki farkın, oldukça karmaşık oldukları için bu makale için kapsam dışı olacağını açıklamak. Ancak kabaca bir fikir vermek gerekirse, ADC, ölçülecek analog voltaj tarafından yüklenecek dahili bir kapasitöre sahiptir. Daha sonra voltaj değerini, kapasitörün belirli bir süre boyunca boşalmasını sağlayarak ölçüyoruz.
ADC ile ilgili yaygın olarak ortaya çıkan bazı sorular
ADC'mi kullanarak 5V'den fazlasını nasıl ölçebilirim?
Daha önce tartışıldığı gibi, bir ADC modülü, mikro denetleyicinin çalışma voltajından daha fazla voltaj değerini ölçemez. Yani 5V'luk bir mikrodenetleyici, ADC pini ile maksimum 5V ölçebilir. Bundan daha fazlasını ölçmek istiyorsanız, 0-12V'yi ölçmek istiyorsanız, potansiyel bir bölücü veya voltaj bölücü devresi kullanarak 0-12V'yi 0-5V ile eşleştirebilirsiniz. Bu devre, bir MCU için değerleri haritalamak için bir çift direnç kullanacaktır, bağlantıyı kullanarak voltaj bölücü devresi hakkında daha fazla bilgi edinebilirsiniz. Yukarıdaki örneğimiz için, voltaj kaynağına seri olarak 1K direnç ve 720 ohm direnç kullanmalı ve yukarıdaki bağlantıda tartışıldığı gibi dirençler arasındaki voltajı ölçmeliyiz.
Dijital Değerler ADC'den gerçek Gerilim Değerlerine nasıl dönüştürülür?
Analog voltajı ölçmek için bir ADC dönüştürücü kullanırken, MCU tarafından elde edilen sonuç dijital olacaktır. Örneğin 10 bitlik bir 5V mikrodenetleyicide ölçülecek gerçek voltaj 4V olduğunda MCU bunu 820 olarak okuyacaktır, 820'yi 4V'a dönüştürmek için yukarıda tartışılan formülleri tekrar kullanabiliriz, böylece onu bizim hesaplamalar. Aynı şeyi çapraz kontrol edelim.
(ADC Çözünürlüğü / Çalışma Gerilimi) = (ADC Dijital Değeri / Gerçek Gerilim Değeri) Gerçek Gerilim Değeri = ADC Dijital Değeri * (Çalışma Gerilimi / ADC Çözünürlüğü) = 820 * (5/1023) = 4.007 = ~ 4V
Umarım ADC ve bunları uygulamalarınız için nasıl kullanacağınız konusunda adil bir fikriniz vardır. Kavramları anlamakta herhangi bir sorun yaşarsanız, yorumlarınızı aşağıya veya forumlarımıza yazmaktan çekinmeyin.