Ana Sayfa
Antrak Gazetesi
Eski Sayılar
Antrak Ana Sayfası
Yorumlariniz ve Sorularınız için mail adresimiz. Editör Burçak Çubukçu'ya bu adresten ulaşabilirsiniz


İnternette İlk 
Türk Amatör Telsiz Gazetesi

PIC 16F84 UYGULAMALARI - 4

 
Barbaros Aşuroğlu (TA2CBA)
TA2CBA Barbaros Aşuroğlu
E-Mail: ta2cba@www.antrak.org.tr
URL: http://www.antrak.org.tr/~ta2cba
 
 

 

Bilgisayar yardımıyla birşeylere hükmetmek bu ayki yazımın ana konusu 
olacak. Amatör bir elektronikçi olarak bilgisayarların karizması ve 
bilgisayar yardımıyla birkaç röleyi açıp kapatmak ,sensörler yardımıyla 
çevreden bilgi edinip bunları işlemek beni hep cezbetmiştir. 
Bilgisayarla flört etmeye başladığım 1980’li yıllarda SINCLAIR ZX-81 
bilgisayarımla ilk defa ilkel kontrol denemelerine başlamıştım. 
Hayli karmaşık olan Z80 BUS’ına bir röle bağlayıp bunu açıp kapatınca 
dünyalar benim olmuştu. Bu tip denemeler, tutkular yaşamamış 
amatör yoktur sanırım.

80’li yıllarda PC bir amatör için ulaşılması zor bir idoldü, elimdeki 
ZX81 ise CRAY süper bilgisayarı ile eşti benim için. Yıllar geçtikçe 
bilgisayar sistemleri ucuzladı ve ben de bir PC sahibi oldum. Hayat şimdi 
daha kolaydı. PC’ler gündeme gelince birşeyleri kontrol etmek daha 
sıradan bir iş gibi görünmeye başlamıştı. Önce ISA-BUS üzerine takılan 
8255 giriş-çıkış denetçisi kullanan kartlar gündeme geldi. 
Fakat bilgisayarın içine kendi yaptığım kartları takmak beni hep rahatsız etti.
PC’nin içine girmek yerine ZX81'de hiçbir zaman sahip olamadığım 
bir lüksü, RS232 seri haberleşme portunu kullanma fikri daha cazip 
görünmeye başlamıştı. Eğer RS232 kullanırsam hem PC daha güvende 
olacak hem de herhangi bir PC'ye içine müdahale etmeden taşınabilecek 
bir kontrol devresi sahibi olacaktım. Bu noktada PC üzerindeki yazılım 
aynı kalıyordu yani Q-BASIC hala yeterliydi ama ne var ki RS232 
portuna bir mikroişlemci kullanmayan kontrol devresi eklenmesi oldukça 
zordu. Bunun başlıca nedeni Seri datanın işleme zorluğundan 
kaynaklanıyordu.

1988 yılında TA2EX- IŞIK BODUR’la birlikte ELEKTOR elektronik 
dergisinde INTEL’in 8052 AH-BASIC mikroişlemcisine rastladık. 
Bu işlemci IŞIK’ın profesyonel yaşamını ,benim de amatör yaşamımı 
epey uzunca bir süre işgal etti. 8052 AH-BASIC temelde 8052 
işlemcisi içine eklenmiş bir BASIC interpreter’dan başka birşey değildi.
Güzel yanı seri data için bir portu bulunması, güzel olmayan yanı ise 
29$ olan inanılmaz fiyatıydı. Bulmakta ayrı bir problemdi.Komple bir 
kontrol işlemci kartı tasarımında RAM, EPROM, 8255 ve TTL devreler 
kullanmak gerekiyordu ki bu hem maliyeti artırıyor hem de kart boyutları 
büyüyordu. Bir interpreter olması onu mikroişlemcilerin kaplumbağası 
yapıyordu.

Neyseki yıl 1999 ve bugün biz 4$ lık bir tavşana sahibiz.Artık PC 
yardımıyla 4 adet röleyi açıp kapatmak ve 4 adet anahtarın konumunu 
okumak için bir PIC16F84 tek başına yeterli olmakta. PC yardımıyla 
neyin kontrol edileceği siz amatör elektronikçilerin hayal gücüyle sınırlı. 
Ben bu yazıda size 4 adet dijital çıkış ve  4 adet dijital giriş yapabileceğiniz 
bir seri port uyarlayıcısını anlatacağım. Bu kontrol interface’ini kullanmak 
için özel bir yazılıma gerek yok .Herhangi bir terminal veya terminal 
emülasyon programı ,örneğin win95 accessories içindeki hyperterm 
bu iş için idealdir. Yüksek seviyeli herhangi bir programlama diliyle 
(Q-BASIC, PASCAL, VISUAL BASIC …) RS232 portuna yazarak 
istediğiniz gibi hükmedebilirsiniz.


Şemayı daha net görmek için üzerine sağ tuşla tıklayıp çıkan menüden (View Image) faydalanın.

Şemadan da görüleceği gibi kontrol devresi çok basit olup sadece 
bir adet PIC16F84 den oluşmaktadır. RB6 ve RB7 uçları RS232 data 
giriş ve çıkış uçlarıdır. RA portu RA0, RA1, RA2, RA3 den oluşan 
4 adet dijital çıkış vermektedir. RB portunda RB0, RB1, RB2, RB3 4 
adet dijital giriştir.

RB6 yani seri data giriş bacağını 22 k direnç üzerinden DB9 dişi 
RS232 konektörünün TXD bacağına baglıyoruz. Bir sınırlama direnci 
kullanmamızın sebebi RS232 PC tarafında sinyalin nominal +10V,-10V 
arasında olup bunun +5V ile çalışan PIC’e uyarlanmasıdır.

RB7 seri data çıkış ucunu ise PC de RXD bacağına bağlıyoruz. 
Şimdi birçoğunuzun +10V,-10V arası çalışan RS232 sistemini bizim 
mütevazi 5 Voltluk PIC’imizin nasıl sürebildiğine şaşırdığınızı görür 
gibiyim. Bağlantı kablosu 1-1.5 metrenin üstüne çıkmazsa hiç bir 
problem yaşamazsınız, böylece TSC232 gibi pahalı veya 1488-1489 
gibi +12V,-12V isteyen sinyal seviye değiştirici, düzelticilere ihtiyaç 
duymazsınız.

RA portundaki led’ler deneme yapmanızı ve çıkış durumunu sürekli 
takip edebilmeniz için monitor görevi görür, ama istenirse transistör 
yardımıyla röleler sürülebilir. PIC portları tek tek 25mA kadar akım 
akıtabilir ama bu röle sürme için güvenli bir yöntem olmaz. 
En iyisi hem PIC'in hem de PC nin sağlığı açısından transistörden 
yardım almaktır.

RB portu girişleri 10k lık dirençlerle +5V’a asılmıştır, bunun sebebi 
anahtar kapalıyken 0V yani şase açıkken ise +5V potansiyel görüp 
kararlı bir giriş seviyesi elde etmek içindir. Bu noktada hatırlanması 
gereken girişlerin ters çalıştığı yani anahtar açıkken 1 seviyesi anahtar 
kapalıyken 0 seviyesi gördüğümüzdür.

Devreyi gerçekleştirirken PICKONT.ZIP  içindeki .hex dosyayı 
pic16f84’ü programlamakta kullanabilirsiniz. Programlayıcı için eski 
yazı dizilerindeki programlama sisteminden yararlanabilirsiniz.

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 
PICden 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.

Ş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.

Eğer herşey düzgünse ekranda;

PIC KONTROL Ver 1.0
Barbaros ASUROGLU – ANTRAK
0 = GIRIS       1,2,3,4 = ON      5,6,7,8 = OFF 
HAZIR> _

Mesajını görürsünüz. Bu noktaya geldiyseniz devre ve terminal 
sorunsuz çalışıyor demektir.
HAZIR> Basic deki READY> karşılığı olarak sistemin komut kabul 
etmeye hazır olduğunu ifade eder. 1, 2, 3, 4 sırasıyla RA0, RA1, RA2, RA3
portlarını aktif yani ON veya 1 seviyesine getirmek için gerekli 
rakamlardır. Örnek olarak 3 tuşuna basarsak RA2 bacağı 1 yani aktif 
olur ve bağlı olan led ışıldar aynı anda pic bize ilgili durumu terminal 
ekranına:

RA2 = ON

Yazarak bildirir. 
Bu portu kapatmak yani "OFF" , "0"  yapmak için 7 tuşuna basarız.
Pic bu durumu bize ekranda:

RA2 = OFF 

Mesajıyla bildirir.

Diğer RA port bacaklarının kontrolüde benzer şekilde ilgili rakam tuşlarıyla 
yapılır. Bunu deneyerek kolayca kullanabilirsiniz.
 

RB portundaki dijital bilginin durumunu ekranda görmek için 0 tuşunu 
kullanırız. Örneğin RB3 = 1, RB2 = 0, RB1 = 1, RB0 = 0 bilgisine sahip 
olsun yani RB3 , RB1 anahtarları basılı olmasın, RB2, RB0 anahtarları 
basılı olsun. 0 tuşuna bastığımızda ekranda:

RB3…RB0 = 1010

Mesajı o andaki dijital anahtar bilgisini gösterir. RB3 en solda RB0 
ise en sağdaki değerdir.

Gördüğünüz gibi PIC16F84 kullanarak PC’ye 4 adet giriş veya PC’den 
4 adet çıkış yapabiliyorsunuz. Bunlarla nelerin kontrol edilebileceği ise 
sizin hayal gücünüze bağlı. 4 adet lambanın yanışının kontrolünden 
2 motorlu, 4 adet çarpma anahtarlı basit bir hareketli robot yapımına 
kadar herşeyi düşünebilirsiniz.

Gelecek ay yeni bir PIC16F84 uygulamasında buluşmak dileğiyle…

Editörün Notu:
Eğer PC yapısını ve Elekrtonik uygulamalarını yeterince iyi bilmiyorsanız
bu uygulamaları çok dikkatli yapmanızı öneriyoruz. PC'nize ve çevreye zarar verebilirsiniz.