Bugün dersimizde örnekselden sayısala dönüşüm konusunu inceleyelim. Bu öz Türkçe tabir sizlere yabancı geldiyse şöyle diyelim o zaman. Dersimizin konusu Analog-Dijital Dönüşüm.

Analog dijital dönüşüm, kısa ifadesiyle ADC mikro denetleyici dünyasının çok önemli bir konusudur. Çünkü voltmetre, termometre gibi ölçü aletlerinin mantığı hep Analog Dijital Dönüşüme dayanır.

Biz de bu konuyu görüp anladıktan sonra bu tip ölçü aletleri yapacak duruma geleceğiz. ADC konusunu anlatmadan önce ister istemez P16F877A donanımına biraz değinmemiz gerecek. Aslında hiç donanıma girmesek dahi konuyu öğrenebilirsiniz ama işin iç yüzünü öğrenmek burada bize avantaj sağlayabilir.

PIC16F877A’da ADCON0 ve ADCON1 olmak üzere iki adet register yani kaydedici vardır. Bunları yapılandırarak ADC dönüşümü yapabiliriz.

Kaç adet Analog giriş kullanmak istediğimizi, Referans değeri kullanıp kullanmamayı hep ADCON kaydedicileri ayarlayarak belirleriz. Örneğin. Ben sadece bir Analog girişim olsun, referans pozitif değerim besleme değerim, negatif değerim de GND olsun istiyorsam ADCON1 kaydedicisine 8Eh değerini atamalıyım. Aşağıdaki tabloya göz gezdirin:

adcon1 table

Tabloda sondan bir önceki satırda PCF3-PCF0 değerlerinin “1110” olduğunu görüyorsunuz. Bu durumda sadece AN0/RA0 pini Analog giriş olarak kullanılacaktır demektir. Ref+ ve Ref- uçları da beslemeye bağlanacak demektir.

Mesela birden fazla Analog giriş kullanmamız gereken bir uygulama varsa kullanmak istediğimiz Analog giriş sayısına göre PCF3, PCF2,PCF1,PCF0 değerlerini tabloya göre düzenlememiz gerekecek.

AN1 ve AN0 Analog olarak kullanmak istiyorsak Vref+ değerimizi kendi kaynağımızdan değil de harici olarak bağlamak istiyorsak o zaman:

1101 değeri bizim kullanmamız gereken değer olmalıdır.

PIC16F877A’nın Analog veri okuma girişleri, PORTA’dır. Dolayısıyla ADC dönüşümü kullanabilmek için öncelikle bu pinler TRIS komutuyla giriş olarak yapılandırılır.

Adcon1 register

MikroC ADC KOMUTU:

ADC_Read()

Kullanımı: Adc_read(char kanal)

Seçilen ADC kanalından 10 bitlik değer okur.

REFERANS GİRİŞLERİ NE İŞE YARAR?

VREF+ girişindeki gerilim displayin göstereceği en büyük değeri ayarlar. Örnek olarak VREF+ pinini +5V’a ayarlarsak Analog girişten 5V alındığında 10 bitlik çıkış 11 1111 1111 olur yani decimal 1023 değeridir bu.

VREF- ise ekranın göstereceği en küçük sayı yani 0 ı ayarlar. Örnek olarak bu girişi GND’ ye bağlarsak ve Analog girişten okuduğunuz gerilim 0 Volt ise ekranda 10 bitlik 00 0000 0000 yani decimal 0 sayısı gözükür.

Bu girişleri kullanmak istemiyorsanız VREF+ yı +5v a VREF- yi GND ye bağlarız.

Ölçmek istediğiniz değeri hesaplamak için ise şu yolu izleriz:

Misal: VREF+ = 3V
VREF- = 0V ise

(3V – 0V) / 1023= 0,00293V eder. Bu değer her sayıya denk gelen gerilimdir. Yani Analog girişteki her 0,00293V’luk değer değişimi dijital çıkışta 10 bitlik sayının bir hanesini değiştirir.

Bu durumda ekranda 1000 sayısını okuyorsak 1000 * 0,00293= 2,93v Analog girişteki gerilimi gösterir.

Bir başka deyişle mesela Analog girişimizin değeri 1,119V ise çıkışta;

1,119V/ 0,00293V=382 değeri çıkar bu da binary olarak 0101111110 değeridir.

SORU:

Ben, Analog girişin her 10 mV’luk artışında dijital çıkışın bir artmasını istiyorsam ve Vref+ değerim +5V ise, Vref- değeri ne olmalıdır?

Vref- değerine x diyelim ve Denklemi şu şekilde kuralım:

( 5 – x ) / 1023 = 0,01V

5 – x = 10,23

x = -5,23 V olursa işimiz hallolur.

Evet, bir sonraki dersimizde kolay bir örnekle anlattıklarımızı pekiştirip bir de LCD ekranlı voltmetre yapalım.

Anahtar Kelimeler: Mikrodenetleyici

peynir6 suyu tozu , 12/05/2008-15:32 Facebook'ta Paylas