PIC 16F84 İLE ANALOG DİJİTAL A D DÖNÜŞTÜRÜCÜ

PIC 16F84 İLE

    A/D DÖNÜŞTÜRÜCÜ    
 

 PIC uygulamalarında analog dünya ile dijital dünyayı  tanıştıracağız. Dijital sinyal işleme tekniği denen DSP-Digital Signal  Processing uygulamalarında analog bir sinyal dijital karşılığına  Analog-dijital dönüştürücüler kullanılarak dönüştürülür. Tersi olan  işlenmiş dijital datanın analog karşılığına dönüştürülmesi işlemini  ise Dijital Analog çeviriciler üstlenir.

Analog – dijital dönüştürücülerin en basit olanı 1 bitlik çevirici olarak da anılan tiptir. Bu basit anlamda voltaj karşılaştırıcı olarak kurulmuş bir işlem kuvvetlendiriciden  başkası değildir. Burada kuvvetlendirici  referans bacağındaki voltajı giriş voltajı ile karşılaştırıp bu kıyas sonucunda çıkışından Hıgh veya low gibi bir sinyal vererek bir işlemciye giriş voltajının istenen değere ulaşıp ulaşmadığını haber verir. 
Daha ayrıntılı analog sinyal işlemek için R-2R tarzı A/D çeviriciler kullanmak gerekir. Bir A/D çeviricinin hassasiyeti çözünürlük için kullandığı bit sayısı ile orantılıdır. Örneğin 8 bitlik ADC0800 gibi bir A/D çevirici ile elde edeceğimiz maksimum voltaj kombinasyonu 256 adettir. Bu Vref denen referans voltajının 1/256 sı kadar küçük parçalarının toplamı ile o anda girişte bulunan voltajı ifade edebileceğimiz anlamına gelir. Vref voltajımız 5 volt ise en küçük voltaj birimimiz yaklaşık olarak 20 milivolt olacaktır. Bu 5 volt = 5000 mV , 5000/256 = 20 mV olarak kolayca hesaplanabilir. Eğer 12 Bit bir A/D çevirici kullansak hassasiyet 1/4096 birim olur. Örnek olarak Vref = 5 Volt = 5000 Volt ise 5000/4096 = 1.22 mV luk bir çözünürlük elde ederiz. Çözünürlük 8 bit A/D ye göre 12 bitte 10 misli artar.

A/D çeviricilerin çözünürlük dışında performans karakteristiklerini belirleyen en önemli faktörlerden biri vede en önemlisi işlem yani analog voltajı dijital voltaja çevirme hızlarıdır. Günümüzde saniyede 100 milyon örnekleme yapabilecek A/D dönüştürücüler üretilmektedir ve bunlar sayesinde artık dijital osiloskoplar standard ekipman sınıfına alınmıştır.

Bu ay bir A/D dönüştürücü olan National Semiconductor (http://www.nsc.com/) firmasının ADC0831 entegresi ile Pic 16F84’ü tanıştırıp, 5 volta kadar olan voltajları terminal  ekranında mV mertebesinde görmeye yarayacak bir devreyi  uygulayacağız.

 Resmin üzerine tıklayarak büyük görebilirsiniz

ADC0831 diğer ADC ‘lerden farklı olarak seri olarak senkron portu yardımıyla kontrol edilebilen bir ADC ‘dir. Türkiye piyasasında temini zor bir entegre değildir. İstanbul kokenli MONEL elektronik ithalat firmasından 0.5 USD gibi bir fiyata temin edilebilir. Daha kolay bulunabilen ADC0800 gibi bir entegreyi neden kullanmadığımı sorguladığınızı duyar gibiyim. Bunun en önemli nedeni ADC0800 gibi paralel veri yolu olan bir entegrenin zaten çok sınırlı  sayıda  giriş/çıkış bacağı olan PIC16F84 gibi bir işlemcide neredeyse bacakların tamamına yakın bir kısmını işgal edecek olmasıdır. Bir ADC0831 ise aynı performansla 3 adet kontrol bacağı ile kontrol edilebilmektedir. Bu da bize pic ile geri kalan bacakları kullanarak farklı işleri yapma imkanı vermektedir, örneğin seri veri giriş/çıkış yardımıyla bir PC ile haberleşmek gibi. ADC0831 8 bit hassasiyeti olan bir A/D çeviricidir. Bir adet voltaj girişi bulunur. Hassasiyet yaklaşık 20mV civarındadır ki bu birçok uygulama için yeterlidir.

Bizim uygulamamızda Vref yani en yüksek okuyabileceğimiz voltaj değeri 5000 mV yani 5 volt olarak sabitlenmiştir. 0 ile 5 volt arasında 20 mV luk adımlarla okuma yapabiliriz. ADC0831’in kontrolu için DO-Veri çıkışı, CS- entegre seçim, CLK- saat bacaklarını kullanırız. CS bacağı ile önce entegre aktif hale getirilir daha sonra her CLK-saat darbesinde DO-veri çıkış bacağında bir  bit belirir,pic tarafından kaydedilir ve bu işlem sekiz saat darbesi kadar sürer. Sonunda sonuçla ilgili her bit sırayla alınmış olur ve işleme sokulur. İşlem sonuç ile 20mV çözünürlük katsayısının çarpımından oluşur.

ADC0831.ZIP dosyası içinde bulunan adc0831.hex dir.  Devreyi hatasız yapıp voltaj vermeden önce bazı ayrıntılara dikkatinizi çekmek istiyorum:

*      PC RS232 (COM) portuna bağlantı konektörünü takarken PC ya da PIC’den en az birinin enerji almaması gerekir aksi halde RS232 portunun arızalanması işten bile değildir.

*     DB9 konnektör kullanırsanız COM1, DB25 konnektörünü kullanırsanız COM2 portunu işgal etmeniz gerekir. PIC için hangi COM portun kullanıldığının önemi yoktur, bu terminal programının sorunudur.

*    RS232 (COM) portun bacaklarının kesinlikle kısa devre olmasına izin vermeyin aksi takdirde port arızalanır.

Sistemin sonuçlarını görmek için iki yöntem kullanabiliriz, ya aşağıda izah edilen terminal SETUP’ını kulllanarak kendimize bir Quickbasic veya Visual Basic programı yazarız, ya da kolay yolu seçip windows accessories içindeki Hyperterm Terminal emulasyon programını kullanırız. Hyperterm yerine herhangi bir terminal emulasyon programını kullanabilirsiniz önemli olan&
nbsp; aşağıda izah ettiğim uyarıları ve setup bilgilerini eksiksiz uygulayın.

Şimdi terminal programının SETUP’ına göz atalım:
*     COM1 veya COM2 yi seçin. (Hangisini kullandıysanız) 
*     1200 baud ,8Bit,No parity,1 Stop bit seçeneklerini ayarlayın. 
*     Terminal emülasyon tipini TTY olarak seçin. 
*     Sistem Half duplex çalışacağından half duplex yada full duplex 
olması farketmez.

Önce Terminal programını çalıştırın daha sonra devreye +5Volt verin

 

Posted in Uncategorized.

Bir cevap yazın