hkeskin

Üye
Katılım
1 Ağu 2008
Mesajlar
56
Puanları
1
Yaş
40
Selam arkadaşlar, telefon hattı normalken yeşil led yanan hat açıldığında kırmızı led yanan bi devrem var, bunun led uçlarını aşağıdaki direnç uçlarına bağlayarak max232 devresiyle seri port ile 1-0 olayını pc ye aktarmak ve arayüzle telefon hatlarımı kontrol etmek istiyorum.. teorikte basit gibi ama uygulama nasıl olacak yardımlarınızı bekliyorum...

bir de bu devre de 8 direnç var kırmızı ve yeşil ledlerden 1 er uç alsam 4 hat eder yani 4 telefon hattını kontrol ederim bunu nasıl 16-32 hat şeklinde çoğaltabilirim.. bunun seri haberleşmesi nasıl olur... YARDIM LÜTFEN


seri_port_8_direnc.jpg
 
Merhaba
PIC'ten PC'ye Seri haberleşme için içinde özel olarak RX_TX pinleri barındıran pıc kullanmanız işinizi daha da kolaylaştırır.Ledlerin yanması veya sönmesi olayını optokaplırın diyotları gibi düşünelim.
 
kudret arkadasımızın dedıgı gıbı rs232 haberlesme protokolunu ıcınde barındıran cıplerle yapman daha kolay.ancak ılla bu entegre ıle yapmak ıstıyorsan yapman gereken haberlesme hısını secmek.Diyelimki 1200 baud u sectin,bu demektirki saniyede 1200 adet bit gondereceksin,yani her bir bitin uzunlugu 1/1200=804 mıcro sanıye eder.bır baytlık(yanı 8 bıtlık) bır bılgı gondermek ıcın oncelıkle 1 bıt start bıtı ardından 8 bıt data ve ardından 1 veya 2 bıt stop bıtı (opsıyonel olarakta parıte bıtı)gondermen gerekır.1 bıt stop bıtı gonderdıgını varsayarsak,tx pınını set edecen 804 us bekleyecen,ardından datandakı bılgılerı kontrol ederek 1 olanlar ıcın tekrar tx pınını set edecen yok sıfırsa resete cekecen ve tekrar 804 us bekleyecen,8 bıt data bitene kadar islemi tekrarlayacan,ardından sectıgın adet kadar stop bıtını set edıp bekleyecen,al sana bır byte bılgı gondermıs olduk.alıcı ıcın ıse aynı sekılde start bıtının geldıgı anda sureyı saymaya baslayacan ve ardından 804+804/2 us kadar bekleyıp bu noktalarda datanın set veya reset olmasına gore bılgıyı okumus olacan.yanı rs232 haberlesmesı tren katarı seklınde ard arda once start sonra data ve sonrada stop bıtı seklınde ıletılır.ben sahsen bu sekılde ugrasarak yapmanı tavsıye ederım,bu ıslemı hallettınmı eeprom vs gıbı chiplerden data alma ve verme ıslerınıde cozmus olursun.
 
İlginize teşekkür ederim, Kudret Bey zaman ayırdığınız için ayrıca teşekkür ederim,
 
Merhaba
Sağlıklı bir devre tasarımı için tüm bilgilerin elde olması gerekir.Avatarımda "profesyonel"yazdığına bakmayın aslında ben amatörüm ve de hobi olarak uğraşmaktayım.Telefon hatları ile ilgili hiç bilgim yok.Benim sizden istediğim Köprü diyoda kaç volt giriyor ve de bu giren voltajdan maximum ne kadar akım çekebiliriz.Telefon açıldığı zaman kaç volt geliyor ve de çekebileceğimiz akımı ve telefon kapandığı zaman kaç volt görünüyor ve de kaç amper veya milamper çekebiliriz?Bu bilgiler ışığında ledlerin bağlı olduğu uçlara birir çiftkontaklı mini röle bağlanır bir kontak ledleri sürer diğer kontak da şemasını verdiğim PIC devresinde input girişleri şaseye çekerek PC'ye data yollar.Sizin vermiş olduğunuz devrede PIC yok bu işi PIC olmadan Yapamazsınız.Öncelikle sizin yapacağınız ilk iş ledlerin bağlı oldoğu yere mini röle bağlamak ve de rölelerin çalışıp çalışmadığını kontrol etmektir.Aşağıdaki linkte 5 ayrı datanın gelip gelmediğini basit olarak kontrol eden bir çalışmam var.
 
yaptıklarınızı inceledim de
profesyonel amatörsünüz o zaman ;)

Kudret Bey köprü diyot çıkışında Telefon kapalıykın 48 V 5,5 mA , çalarken 75V 6,7mA , ahize açıkken 6,5 V 0,6mA şeklinde ölçtüm..

çalışmanıza benzer bişey benim istediğim aslında ...

basit anlaşılması için şöyle bişey istesem , 4 butonum olduğunu varsayarsak bu butonun ayaklarına harici 5 volt felan versem, butonun diğer ucuçları PIC e gitse hangi butona basarsam 5 volt u vs. PIC e gönderip veya PC de 1 veya 0 şeklinde çıktı alsan

buton1=0
buton2=1
buton3=1
buton4=0 şeklinde veri alsam

vb ile koşullarla şekle sokarım...

veya
vermiş olduğunuz devrede 1 2 şeklinde buton numarası düşüyor bunu VB de nasıl çekerim
 
Merhaba
PIC'ten PC'ye en basit olarak aşağıdaki kodları kullanabilirsiniz.Burada dikkat etmeniz gereken husus PIC'in Yazılımsal olarak H '31' yani klavye "1" yollanması PC tarafında desimal "49" denk gelir yani siz yollanan H '31' desimal 49 olarak görünür.Özetle aşağıdaki VB .Net yazılımı ile gelen 49 istenilen şekilde işlenir.Ben picturebox'da renk değiştirme işlemi yaptırdım.Siz istediğiniz gibi işleyebilirsiniz.Not:VB.Net 2008 express edition kullanmaktayım.

Public Class Form1

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cıkıs.Click
SerialPort1.Close()
Me.Close()
End Sub
--------------------------------------------------------------------------------------------------------------
Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
PictureBox1.BackColor = Color.Olive
Dim gelen As String = SerialPort1.ReadByte '
If gelen = 49 Then
PictureBox1.BackColor = Color.Red
End If
End Sub
----------------------------------------------------------------------------------------------------------------
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ComboBox1.Text = "1"
SerialPort1.PortName = ComboBox1.Text
SerialPort1.Open()

End Sub

End Class
 
Kudret Bey yaptığınız projeyi verdiğiniz bilgiler doğrultusunda, benim yapmak istediğim sisteme çevirdim.. 2 telefon hattı aktif olarak çalışıyor görünüyor..

bunu daha basit (daha az devre elemanı ile) yapılabilir mi? ve de daha çok telefon hattını nasıl bu sisteme ekleyebiliriz. PIC imi dağiştircez yoksa PIC li devreyi de mi çoğaltcaz ?
 
Merhaba
Devrenin çalıştığına sevindim.Giriş ve çıkış bacakları daha çok olan PIC'ler ile yapılabilir.Tabiidir ki yazılım da ona göre değişecektir.Örneğin 18F4550 hem pin adedi(40 bacak) hemde daha gelişmiş özellikleri var.Veya aynı devrenin tekrarı ile istediğiniz kadar hattı kontrol edebilirsiniz.Ama prensip,size verdiğim devre ve yazılımdır.Kolay gelsin.Not:isiste simulasyonundan tam birşey anlayamadım yazılımda değişiklik yapmadıysanız ekrana "1111111111111" gibi çıkması lazım
 

Forum istatistikleri

Konular
130,064
Mesajlar
932,671
Kullanıcılar
453,046
Son üye
alicam8

Yeni konular

Geri
Üst