ARX34 ve ATX34 ler hakkında

Katılım
18 Ocak 2008
Mesajlar
1,088
Puanları
156
Yaş
40
Selamun aleyküm ben bu devreyi ve yazılımı sormaktan ziyade biraz daha profosyönel bişey sormak istiyorum...
Fakat belirtmek istediğim şeylerden sonra sormak daha faydalı olacağı kanısındayım.Öncelikle ben bu tür bir devreyi proje ödevimde yapmış çalıştırmıştım ama yazılımı picbasic ile yapmıştım serout ve serin komutu ile çalışmıştık ve orjinal udeanın ürünlerini kullanmıştım ve yazılımı şu şekilde yapmıştım vericide pic12F675 alıcıda ise pic16F628 kullanmıştım.
Verici Yazılımı:
INCLUDE "modedefs.bas"

CMCON=7
ANSEL=0
SIFRE1 VAR BYTE
SIFRE2 VAR BYTE
SIFRE3 VAR BYTE
SIFRE4 VAR BYTE

SIFRE1=1
SIFRE2=9
SIFRE3=8
SIFRE4=4


INPUT GPIO.2
INPUT GPIO.1

AC VAR GPIO.2
KAPA VAR GPIO.1

OUTPUT GPIO.4
LOW GPIO.4

GON VAR BYTE
GON=0

BASLA:
IF AC=1 THEN
GON=10
SEROUT GPIO.4,N2400,[GON,SIFRE1,SIFRE2,SIFRE3,SIFRE4,"1984"]
ENDIF
IF KAPA=1 THEN
GON=20
SEROUT GPIO.4,N2400,[GON,SIFRE1,SIFRE2,SIFRE3,SIFRE4,"1984"]
ENDIF
GOTO BASLA
END

Alıcı yazılımı:
INCLUDE "modedefs.bas"

CMCON=7

INPUT PORTB.1
OUTPUT PORTA.0
OUTPUT PORTB.2
OUTPUT PORTB.3

SIFRE1 VAR BYTE
SIFRE2 VAR BYTE
SIFRE3 VAR BYTE
SIFRE4 VAR BYTE
OKU VAR BYTE

TEKRAR VAR WORD

SIFRE1=0
SIFRE2=0
SIFRE3=0
SIFRE4=0
OKU=0

LOW PORTB.0

BASLA:
SERIN PORTB.1,N2400,["1984"],OKU,SIFRE1,SIFRE2,SIFRE3,SIFRE4
IF SIFRE1=1 AND SIFRE2=9 AND SIFRE3=8 AND SIFRE4=4 THEN
GOTO ATLA
ELSE
LOW OKU
GOTO BASLA
ENDIF
ATLA:
IF OKU=10 THEN
HIGH PORTB.2
PAUSE 25000
HIGH PORTB.3
ENDIF
IF OKU=20 THEN
LOW PORTB.2
LOW PORTB.3
ENDIF
GOTO BASLA
END
_____________________________________________
Şimdi sorum şu.Bu alıcı ve vericileri birbirleri ile tanıştırmak için bir kitapta okuduğuma göre gerekli datayı en az 4 bytelik bir veri bloğu ile yollamak gerekiyormuş böyle bir konu varmı ?
Udeanın ürünlerinde çalışan yazılım farklı ürünlerde çalışmıyor sebebi sizce ne olabilir ?
Bu ürünleri çalıştırmak için temel mantık Asenkron seri iletişim mantığıdır ve 2400 baud rate de veri aktarımı en uygun olduğu udeanın dökümanlarında var fakat bu ürünleri yukarıdaki yazılımla çalıştırdığım taktirde aynı uyumluluğa sahip olmayan proton basic ile deniyorum kodlar hemen hemen aynı olmasına rağmen parametreler birbirlerini tutmuyor ve program çalışmıyor
Yukarıdaki verdiğim yazılımdan da anlaşılan şifreleme sistemini pic basic ile istediğim gibi değiştiriyorum ve sorunsuz çalışan sistemde şifrelemenin mantığını bulamıyorum bu kodları hazır almıştım üzerinde değişiklik yapıp çalıştırmıştım
Ama asıl soru şu bu rf ile dataları asenkron seri iletişimde yollarken ana mantık nedir o sözünü ettiğim kitaptaki data yollama şekli ile alakası varmıdır yani en az 4 byte data ile birliktemi yollanması lazım karşıdan düzgün ve kararlı alınması için
Çoğu sitede gördüğümüz $ff AA gibi datalara burada hiç gerek kalmamıştı.Direk dataları yollayıp almıştık çözmüştük şu işe bir el atıp temel mantığını şöyle anlaşılır bir şekilde anlatırsanız çok memnun olurum... teşekkürlerimle.
 
kardeş bu koruma datası dediğin olay doğru bu udea nın sitesinden örneklere de bakarsan sana çok daha fazla sayıda koruma datası gönderdikten sonra asıl datayı göndermeyi gösterir. ama ben sadece 2 veya 3 defa (01010101) gibi binary olarak asıl data dan önce yollyınca yeterli oluyor. bu arada ben keymark marka kullandım. mesafe artınce anten de önemli bir unsur haline geliyor. c de bir örnek yazayım sana ben kullanıyorum kesin çalışıyor. baud rate de kullandığın modülün min maz değerlerine ve kullandığın voltaja göre iki tarafta da aynı değeri kullanmalısın.
putc(0b01010101);
putc(0b01010101);
putc(0b01010101);
putc('a');
putc(data);

alıcı da ise
if(getc()=='a')
{
veri=getc();
}

bu sayede hem asıl data bozulmuyor hemde bir karışıklık olmuyor.
 
Usta bu 01010101 datasını asıl datadan önce gönderdiğine okey de illa 01010101 mi olmak zorunda yani farklı bir data olamaz mı örneğin 01110011 gibi yada "a"&"b"&"c"&"d" gibi dataları yollasak uyanmaz mı bu meretler Yani söylemek istediğim olay şu RF olarak bir bilgiyi karşı tarafa ulaştırırken asıl bilgiden önce herhangi 3- 4 bytelik bir bilgiyi ulaştırıp ardından da asıl bilgiyi ulaştırsak data alış verişi sağlanamıyor mu ?
örneğin :
yollama kısmında bu şekilde olsa
DATA=25
SEROUT PORTB.0,N2400,["A","B","C","D",DATA]

alıcı kısmında ise
basla:
serin portb.0,n2400[kod1,kod2,kod3,kod4,gelen_data]
if kod1=1 and kod2=9 and kod3=8 and kod4=4 then
goto atla
else
goto basla
endif
atla:
if data=25 then
high led
endif
if data=50 then
low led
endif
goto basla
end
örneğinde olduğu gibi herhangi 4 bytelık bilgi öncülüğünde asıl datayı yollasak olayı çözmüyor mu yada bu uyandırma sinyalleri illa belli sinyaller mi olmak zorunda ?
 
illa da 01010101 olmak zorunda değil bu data yı gönderme amacı aslında reciever tarafını uyandırmadır yani belirli bi iletişim hattı oluşturmak da denebilir. orginalde preamble öncü data olarak geçer. illa da 0101 olmak zorunda değil ama diğerlerini de denemek gerek bence çünkü 0101 senkorize bi şekilde. ben kenidm denediğim ve başarılı olduğu için 01010101 tavsiye ettim. ama udeanın örneklerinde öncü olarak 5 defa 0xAA 5 defa 0x55 ve 5 defa 0xFF tavsiye ettiğini gördüm
yani bu daha uzun ve daha çok geçikme verir. verdiğin volta görede boud rate i ayarlarsan sorun olmaz diye düşünüyorum.
 
Son düzenleme:
0xAA yada 0x55 data gondermenin espirisini anlatayim.

Ama once neden boyle bir veriye ihtiyac duyuluyoru aciklayayim.

Iki sistemi birbirine gurultusuz bir ortamda baglarsan seri iletisimi diledigin an durdurup diledigin an baslatabilir diledigin veriyi iletebilirsin. Fakat radyo dalgasi ile daha dogrusu kablosuz ortamlarla iki sistemi baglarsan tasiyici sinyal olmadiginda alici cikisinda gurultu olusur.

Bu, istasyona ayarlanmamis bir FM radyonun urettigi sisss sesine benzer.

Seri iletisimde gurultu de sonucta bir veri kataridir ve bu veri bazi anlarda tam bir seri formattaki veriye benzeyebilir. Yani, 1 start bit 8 stop bit 1 stop bit le bire bir uyabilir.

Iste bu gibi sinyaller gercekten gonderilmis bir verimi yoksa alicinin urettigi sahte bir verimi anlasilamaz.

Bu belirsizligi asmak icin verici asil verilerini gondermeden once bir sure 0xAA yada 0x55 yollarsa radyo alicisi bu sinyale alisir (gecici olaylar biter, transistor biaslari vs kararli yeni bir konuma gecer) ve ardindan gonderilecek bilgiler olabildigince hatasiz cozulur.

Yazilim pespese gelen 0x55 yada 0xAA verilerini aldi ise artik bunun gurultu olma olasiligi son derece dusuktur ve iletisimin basladigi kabul edilebilir.

0xAA yada 0x55 in espirisi 1010 yada 0101 tipi degisim gostermesidir.
Bunun yerine 00110011 yada 11001100 da yollayabilirsiniz. Hatta cok farkli bir data da yollayabilirsiniz. Bu sistemin kararli konuma gecis suresini etkiler.

Butun dunyada kabul gormus 0xAA ve 0x55 i kullamaya devam edin.
 
Son düzenleme:
Değerli arkadaşlarım vermiş olduğunuz cevaplardan dolayı herbirinize teşekkür ediyorum ilgi ve alakanız için saolun.

Ben en yakın zamanda bu udeanın ARX34,NRX34,ATX34 gibi piyasada bol miktarda kullanılan modullerinden alıp bol bol uygulamalar yapıp bu bilgileride nasip olursa buradan sizler ile paylaşacağım.

Kafama takıldı arkadaşlar evet daha önceden pic basic ile uygulamalar yaptım defalarca çalıştırdım ama hazır kodu bir arkadaştan almıştım değişik şekillerde çalıştırdım da mantığını çözemedim mantığı çözsek farklı programlarda yapması da kolay olacak da bi malzemeleri alalım gerisi kolay :D
 
illa da 01010101 olmak zorunda değil bu data yı gönderme amacı aslında reciever tarafını uyandırmadır yani belirli bi iletişim hattı oluşturmak da denebilir. orginalde preamble öncü data olarak geçer. illa da 0101 olmak zorunda değil ama diğerlerini de denemek gerek bence çünkü 0101 senkorize bi şekilde. ben kenidm denediğim ve başarılı olduğu için 01010101 tavsiye ettim. ama udeanın örneklerinde öncü olarak 5 defa 0xAA 5 defa 0x55 ve 5 defa 0xFF tavsiye ettiğini gördüm
yani bu daha uzun ve daha çok geçikme verir. verdiğin volta görede boud rate i ayarlarsan sorun olmaz diye düşünüyorum.

Arkadaşlar burada dikkatimi çeken bir cümle var verdiğim voltaja göre baud rateyi ayarlamam nasıl olacak burayı anlayamadım tam olarak ben bu cihazları daha önceden yaparken 2400 baud kullanıyordum hiç bir sorun olmuyordu voltaj olarak da sabit regüleli yani 7805in çıkışına bi tane 100nf kondansatör ilave edip sürüp geçiyordum ve çatır çatırda çalışıyordu...
Bana bu baud ratenin voltaja göre ayarlanmasını biraz açıklarsanız çok memnun olacağım...
 
arkadaşlar elinize sağlık
 

Forum istatistikleri

Konular
129,835
Mesajlar
930,600
Kullanıcılar
452,662
Son üye
Yılmaz Çetiner

Yeni konular

Çevrimiçi üyeler

Geri
Üst