Lpt den kontrol programı lazım

Başlatan daswi, 09 Mart 2005, 13:47:46

daswi

Arkadaslar bana lpt portunun kontrol edebilecek bi program lazım bu program aynı anahtar gibi calısacak on oldugunda yeşil off oldugunda ise kırmızı olacak yanı lpt baglı olan röle leri acıp kapata bilecek bu sekilde bi program lazım

NecroCapo

Biraz daha açabilirmisin tam olarak anlayamadım :roll: yeşil ve kırmızı olanlar led mi yoksa vb de mi ?

mmengi

Selam,

Sanki daha önce profilab expert i önermiştim sana ama uygun gelmedimi ?
Aslında tam istediğin şey ama.

hoguz

Nerede kullanılırlar ?  Bağlantı kablosunu nasıl hazırlarım ?  Devreye bağlantı nasıl yapılır ?  Giriş / Çıkış özelliğiyle haberleşme ?

Not : eee birazda elektronik bilgi gerek, birazda lehim kokusu ...

Paralel port ‘un kullanıldığı yerler, bilgisayarın dış ortamlara bilgi göndermek ve dış ortamlardan bilgi almaktır... paralel port ta 8 bitliklik ( 1 bayt ) lık giriş ve çıkış işlemi sağlanabilir... Örneğin bununla bir bilgisayarla, diğer bir bilgisayarın bilgi alış verişini sağlayabiliriz.

Sonuç olarak, Visual basic içerisinde yazacağımız bir komut ile, 8 tane pin'in durumunu 1 veya 0 yapabiliriz ( 1 => +5Volt , 0 => Şase anlamında )

En basit örnekle bu pinlere birer led takarsak, bir butonun click olayına yazacağımız kodla istediğimiz ledi yakıp, dilediğimizi söndürebiliriz...

Not : Şimdilik sadece paralel porttan bilgi gönderimini inceleyeceğiz...

Adım 1 :  Bağlantı Kablosu Hazırlama    İlk önce bir bağlantı kablosu hazırlamak gerek...   Bunun için alınacak malzemeler ... ( 8 tane ledi yakmak için )1.   25 pin bilgisayar paralel port connectörü2.   9 tane kablo ( 8 si, Bilgi hatları , 1 ‘i Şase )3.   8 tane küçük led4.   8 tane 47 Ohm ( direnç )

Direncin alınma sebebi ledler ortalama 1,5 - 3 V dur. Ama paralel portun çıkışı 5V olduğu için, voltajın düşürülmesi gerek, aksi takdirde led gümler... işte bu yüzden...

Şimdi alınan konnektörün "2 ila 9" numaralı pinlerine (numaralar, konnektörün üzerinde yazar) 8 kabloyu lehimleyin, daha sonra "18 ila 25" numaraları birbirine kısadevre edip, son kalan kablomuza lehimleyin...
Veya şu lehimleme işlerimi yapamam diyorsanız, eh o zaman bir bilgisayarcıdan yazıcı bağlantı kablosu alıp, yazıcıya bağlanan konnektörü çıkartıp o şekilde kullanırsınız...

Adım 2 : Devreyi Hazırlama   Şimdi sıra kontrol edilecek devreyi hazırlamaya geldi...

Bu hatlardan aslında 8 tane olacak ama ben yerden tasarruf olsun diye 3 tane çizdim...

Sanırım anlaşıldı...
2 numaralı pine bağlanan kablo ilk hatta
3 numaralı pine bağlanan kablo ikinci hatta
bağlanıp, 19 - 25 pinleri ise en alt hatta bağlanacak...

Umarım herkes anlamıştır ...

Adım 3 : Devre Hazır
Örnek olarak yapılan bilgisayarla 8 tane ledi yakıp söndürmek için gerekli olan devre hazırlandı...
Şimdi sıra şu ledleri yakacak programı yazmakta...

Şimdi öncelikle, yapacağımız devre ne olursa olsun aşağıdaki tablo her zaman bize gerekli...



Adım 4 : İstenilen ledleri yakmak için gerekli bilgi...
Şimdi, işin asıl kısmı bundan sonra başlıyor... Bu tablo bizim istenilen ledleri yakmak için ( veya başka bir devre ) gerekli kolaylığı bize sağlayacak... Nasıl mı ?

Şimdi yapılacak iş, yanmasını istediğimiz ledlerin üzerindeki Veri Değerlerini toplamak..

Örneğin :   2. , 3. , 5. pinlere bağlı ledlerin yanması için : 1 + 2 + 8 = 11   3. , 5. , 7. pinlere bağlı ledlerin yanması için : 2 + 8 + 32 = 42

Burası anlaşıldı galiba. Ancak, diyorsunuz ki bu değerler ne işe yarayacak... Güzel bir soru ???

İş bu noktadan sonra programlamaya geliyor...

Adım 5 : Paralel Port ProgramlamaBu iş için "InpOut32.dll" dosyasını kullanacağız... Şimdi aşağıdaki kısmı formun deklarasyon kısmına yazın...Public Declare Function Inp Lib "inpout32.dll" Alias "Inp32" _(ByVal PortAddress As Integer) As IntegerPublic Declare Sub Out Lib "inpout32.dll" Alias "Out32" _(ByVal PortAddress As Integer, ByVal Value As Integer)Komutlar :Inp ( Input ) : Porttaki bilgiyi öğrenmek için...Kullanımı :   Dim Pbilgi as Integer   Â‘ Porttaki bilginin tutulacağı değişken   Pbilgi = Inp(888)   Â‘ Paralel porttaki bilgiyi oku   Msgbox "Porttaki veri : "  & Pbilgi   ‘ Ekrana gösterBuradaki 888 değerinin Hexadecimal karşığı = &H378 dir...Ve paralel portun standart adresidir...Out ( Output ) :   Porta bilgi göndermek için...Kullanımı :     Dim Veri as Integer‘ Gönderilecek verinin tutulacağı değişken   Veri = Cint(Inputbox("Gönderilecek veri ="))   Â‘ Gönderilecek veriyi   'sor ve ata   Out 888,  Veri   Â‘ İstenilen veriyi gönderAdım 6 : Portta bilgi göndererek, istenilen ledleri yakmak..."Out 888, Veri"  satırındaki veri değişkeni Adım 4 te belirlenen değerleri atarız.


Hatırlıyorsanız, tablodan istediğimiz ledleri yakmak için bir veri değeri hesaplıyorduk...

2. , 3. , 5. pinlere bağlı ledlerin yanması için : 1 + 2 + 8 = 11 gibi...

İşte bu değeri "Out 888, Veri" satırındaki Veri değişkeni olarak yazarsak, 2. 3. ve 5. ledler yanacaktır... ( yani Out 888, 11 olacak )


İş burada bitiyor... Daha iyi anlaşılması için birkaç örnek...

Pin Numaraları Veri Değeri Komut
3. ; 4. ; 5. 2 + 4 + 8 = 14 Out 888, 14
9. ; 6. ; 4. 128 + 16 + 4 = 148 Out 888, 148
Bütün pinler 1+2+4+8+16+32+64+128 = 255 Out 888, 255
Hepsi Iptal 0 Out 888, 0


Önemli Not : Örnek olarak bu yazıda paralel port ile led kontrolü yapıyoruz, ledler fazla akım çekmedikleri için direk paralel port üzerinden besleyebiliriz ; fakat röle veya diğer fazla akım çeken elektronik elemanlar kullanmamız halinde paralel portu BoZaBiliRiZ.. buna önemle dikkat edin....

Bunun yerine paralel port ile bir transistörü sürüp röleyi veya diğer elemanları bu transistör üzerinden sürün...

Bu sebepten dolayı bilgisayarınızda oluşacak sorunlardan mesul değilimdir...

Artık, bundan sonra her şey sizin elektronik bilginize, hayal gücünüze bağlı.

Aklıma gelen örneklerden, bilgisayarla bir televizyonu açma - kapatma.

Devresi :




Belki çok karmaşık gelebilir size ama, korumalı ...

5.1 V luk zener diyot devre üzerinden bir kaçak olması durumunda fazla voltajı kısa devre ederek portu kısmen de olsa korur...

Televizyonu açmak için : Out 888, 1
Televizyonu kapatmak için : Out 888, 0

Bu arada bu devrede röle gibi akım çeken bir eleman olduğu için beslemesini paralel port üzerinden değilde, 12 Voltluk bir adaptör ile besleme yapıyorum...

CaFFeiNe

ah be daswi arkadaşım ben dediğin devrenin + programın tıpatıp aynısını sene 95-96 da (tam hatırlamıyorum) yapmıştım 12 adet röleyi Delphi 1.0 da yazdığım bir prog. ile açıp kapatıyordum hemde röleler için bmp semboller hazırlamıştım dediğin gibi röle çekince kırmızı bırakınca yeşil oluyordu :) ayrıca rölelere timer ile flip flopta yaptırmıştım ama malesef ne program nede devresi elimde ödev amaçlı yapmıştım programın yedeğinide almak aklımıza gelmemiş aklıma geldikçe hep hüzünlenirim çok önemli bişiy olduğundan değil ama keşke şu anda o prog. olsaydı hem sana faydalı olmuş olurdum hemde bakıp bakıp eski günleri hatırlardım (çünkü o programı yazarken bilgisayarım yoktu kışın buz gibi bir mekanda katalitiğin yanında başkasının bilgisayarında (P100 :)) günlerce uğraşarak yazmıştım delphi ile yazdığım ilk programdı aynı zamanda :))

westcoast

şöyle hazır bir programcık var
deniz elektronik'te hatta kontrol kartlarınıda bulabilirsin.


http://www.denizelektronik.com/zip/pc8out_demo.zip