slm
benim problemim pic in bir çıkşından belli değerlerde bir dalga çıkmak ve rf sinyali ile başka bir yerden bu sinyali başka bir pic le almak
ama alan pic gönderilen sinyali bilecek yani bir nevi encoder ve decoder devrasi olacak bunun için yardımlarınızı bekliyorum
gönderme için ben belli aralıklarla portu high ve low yapıyorum
almak için de count ve pulsin kullanıyorum ama yaptığım denemelerde pic düzensiz çalışıyor açma sinyali gelince açıyo sonra yine açma sinyali gelince kapatıyo kapatma sinyali de gelince kapatıyo
velhasıl olmadı başka komutlarla olurmu nasıl olur yardımlarınızı bekliyorum
USART'ı olan PIC kullan (PIC16F627 veya PIC16F628 gibi) bir kesme programı birde ana programla bu işi halledersin. Gönderici tampona yazar USART gönderir alıcıya bilgi gelince kesme programına dallanır veriyi alır ve işleme koyar.
ilgin için teşekkürler electronicman
ama birazdaha açmanı isteyecem alıcı damı f628 olacak usartla nasıl kod gönderecem biraz daha somut açıklayabilirsen sevinirim
şimdi ben birazda f628 çalışayım bakalım ne olcak
Alıcıda USART'ı olan bir PIC kullanacaksın (PIC16F628), gönderdiğin veri alıcıdaki belleğe dolduğu zaman PIC kesme vektörüne dallanacak, burada gelen veriyi USART registerından okuyacaksın ve işyeyeceksin. Baud rate oranını tam olarak ayarlamak istiyorsan göndericiyide PIC16F628 seçersin, SPBRG register ve xtall aynı değer verirsin. USART kullanmak için ilk önce baud rate'i belirleyeceksin bu oranın hesabını PIC16F628'in datasheet'inde öğrenebilirsin sonra bu değeri SPBRG registerına yazacaksın TXSTA ve RCSTA registerlarına gerekli değerleri yaz ve veri gönderme alma işlemine hazır. PICBASIC kullanmadığım için hangi komutlarla bu işlemler yürür bilmiyorum. C veya ASM olursa yardımcı olabilirim.
sağolasın ustam ama bende pic basic le prg yazıyom asm okadar iyi değil anladığım kadarıyla bu işi f628 de serin2 ve serout2 yle yapabiliriz pic basic bilen arkadaşlar yardım ederlerse bu iş olacak bir de veriyi f84 le göndersem f 628 le alabilirmiyim yada serout2 komutları f84 ü desteklemiyor mu 2 taraf ta f84 kullandım serin ve serout la haberleştiremedim destek beklemeye devammm
Gönderici F84 olabilir ama baud rate AUSART'lı bir PIC kadar hassas olmayabilir.
slm usta bir de f628 le bayramdan sonra deneyecem sonucu yazarım inşallah olur yardımların için teşekkürler
'**********************************
'* Name : Alıcı *
'* Author : H. KORATEŞ *
'* Notice : Copyright (c) 2002 *
'* : All Rights Reserved *
'* Date : 29.11.2002 *
'* Version : 1.0 *
'* Notes : Alıcı kod çözücü devre *
'* : 16F877 kullanıldı *
'**********************************
include"modedefs.bas"
Define LCD_DREG PORTD ' LCD bağlantılarını tanımla
Define LCD_DBIT 4
Define LCD_RSREG PORTE
Define LCD_RSBIT 0
Define LCD_EREG PORTE
Define LCD_EBIT 1
TRISA = %00000000 ' PORTA nın tüm bitlerini çıkış olarak ayarla
TRISB = %11110000 ' PORTB nin tüm bitlerini giriş ve çıkış olarak ayarla
TRISC = %10000000 ' PORTC nin tüm bitlerini çıkış olarak ayarla
ADCON1 = 7 ' PORTA ve E dijital giriş çıkış olarak ayarla
Low PORTE.2 ' LCD R/W low = yazma modu
Pause 300 ' LCD başlamak için bekle
alinanveri var byte
tekrar var byte
alinanveri=0
porta=0:portb=0:portc=0
lcdout $FE,1,"Seri Haberlesme."
pause 1000
anadongu:
'for tekrar=0 to 50
serin portc.7,n2400,alinanveri
'if alinanveri<1 or alinanveri>8 then portc.2=0
if alinanveri=1 then lcdout $FE,1,"PA0 Aktif!!!":portc.2=1:portc.0=1:portc.1=0
if alinanveri=2 then lcdout $FE,1,"PA1 Aktif!!!":portc.2=1:portc.1=1:portc.0=0
if alinanveri=3 then lcdout $FE,1,"PA2 Aktif!!!":portc.2=1:portc.0=1:portc.1=0
if alinanveri=4 then lcdout $FE,1,"PA3 Aktif!!!":portc.2=1:portc.1=1:portc.0=0
if alinanveri=5 then lcdout $FE,1,"PA4 Aktif!!!":portc.2=1:portc.0=1:portc.1=0
if alinanveri=6 then lcdout $FE,1,"Veri 6":portc.2=0:portc.1=0:portc.0=0
if alinanveri=7 then lcdout $FE,1,"Veri 7"
if alinanveri=8 then lcdout $FE,1,"Veri 8"
lcdout $FE,$c0,"Alinan veri=",#alinanveri
pause 1
'next tekrar
goto anadongu
end
'**********************************
'* Name : Verici *
'* Author : H. KORATEŞ *
'* Notice : Copyright (c) 2002 *
'* : All Rights Reserved *
'* Date : 29.11.2002 *
'* Version : 1.0 *
'* Notes :Verici kodlayıcı program *
'* : 16F84 kullanıldı *
'**********************************
TRISA=%11111111
TRISB=%00000000
include"modedefs.bas"
gondveri var byte
giris var porta
gondveri=0
portb=0:porta=0
'**************** ANADÖNGÜ **********************
anadongu:
pause 50
if giris=17 then gondveri=6:gosub verigonder:pause 1000:goto anadongu
if porta.0=1 then gondveri=1:gosub verigonder
if porta.1=1 then gondveri=2:gosub verigonder
if porta.2=1 then gondveri=3:gosub verigonder
if porta.3=1 then gondveri=4:gosub verigonder
if porta.4=1 then gondveri=5:gosub verigonder
goto anadongu
'************ Seri iletişim alt programı ********************
verigonder:
serout portb.0,n2400,[gondveri]
return
end
Benim basit olarak yaptığım denemek için kullandığım programlar bunlar. İlk program 16 F877 kullanarak alıcı programı. İkinci ise verici programı. Oldukça iyi sonuç verdi.Alıcı devrede portc.7 alıcı girişi , ikinci devrede portb.0 verici devre çıkışıdır. Yani biribirine uyumlu veri gönderebilen bir verici ile alcı devresinin giriş çıkışı bu iş için uyguyndur. Elinizde bulunan veri ileten ve alan alıcı verici devrelerle bunu kullanabilirsiniz. Piyasada bulunan 4 kanallı alıcı verici devresi ile ben bunu yaptım. Umarım işinize yarar. Kendinize iyi bakın.
teşekkürler mhk
senin verdiğin prg mantığı ile ben de bu işi başardım f84 le gönderdiğim bir veriyi f628 le almayı becerebildim en sonunda yardımlarınızdan dolayı minnettarım yalnız bir sorum daha olacak
bu serout la benim anladığım 8 bit veri gönderilebiliyor 16 bit bir veriyi nasıl gönderecem 2 ayrı 8 bit olarakmı yada nasıl bir mantığı var bu konuda da bilgi verirsen sevinirim.
gerçi bu soruma cevap gelmemiş ama bir soru daha sormak istiyorum f84 le gönderdiğim veriyi f628 le direk kablo bağlantısı yapınca alıyorum ama
bir verici üzerinden 111 mhz de denedim gönderince alamıyorum burda problemi aşmak için ne yapmam lazım lm358 kullandım ama sonuç alamadım
Kardeş,
LM358'i nasıl kullandığını bilmiyorum ama schmit trigger gibi kullanman gerekiyor.
Piyasada bir ara 25 milyona satılan genel amaçlı 304 MHZ, 2-4 kanal uzaktan kumandalarda lm358 böyle kullanılmıştı.
slm cozturk
schmit trigger la ilgili uygulama devre şemaları olan bir adres verebilirsen yada sende devre varsa gönderebilirsen sevinirim
çünkü nasıl bir devre şekli veya kullanılan elamanlar ne değerde olacak o konuda bilgim yok
benim devrede kullandığım lm358 devresinde anladığım kadarıyla gelen veriyi üstünde geldiği frekanstan ayırt etmeye yarıyor ama bir türlü çalıştıramadım