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… |