avatar_mchtylmz

RF alıcı verici ile led yakan bi çalışma var. yardım lütfen

Başlatan mchtylmz, 14 Ağustos 2016, 20:22:27

mchtylmz

Selamlar.
İnternettin bulduğum RF alıcı verici devre dökümanları var. vericiden bir butona bastığında alıcı devrede karşılık gelen led yanıyor. ancak benim istediğim olay verici devrede 1. butona bastığımda alıcı devrede ki "7 segment display" da 1 yazaması. 2. butona basıldığında displayda 2 yazması.
Uzun süredir uğraşıyorum ama portlara aynı anda veri atamıyorum  (ornek PORTB=%100110010  gibi)  . display saçma saban şeyler çıkıyor.
Dosyayı ekliyorum yardımlarınız için teşekkürler
Fırtınalara Yön Veren, Kelebeklerin Kanat Çırpışıdır.

mchtylmz

Konuyu yanlış yere açtıysam özür dilerim k. bakmayın..
Fırtınalara Yön Veren, Kelebeklerin Kanat Çırpışıdır.

erdogan2734

Eklemiş olduğun programla Displayda bişey göremezsin.
Bu programda veri geldiği takdirde sadece ilgili bacaklar konum değiştirir. On konumdaysa off- yada tam tersi.
Senin şu şekilde çalışma yapman gerektiğini düşünüyorum.

Örneğin seven segment'in 7 bacağı-senin işlemcinin PORTB sine bağlı ise,
10 verisini aldığında 8 rakamı çıkmasını istiyorsan  o portun tamamını aktif etmen lazım.

Gerçi bu durumu biliyorsundur. Bildiğin halde hala aynı sorun varsa. Display de problem olabilir.
Bağlantılarını kontrol et.
Erdoğan
İmkansızın zaman aldığı bir dünya'da bana zorluktan bahsetme!

mchtylmz

alıcı dosyasında
IF ALICI=30 THEN
HIGH PORTB.2
ELSE
LOW PORTB.2
ENDIF
kod var örneğin. bu kod alıcı 30 olunca PORTB nin 2. bacağını "1" yapıyor
bu kodu
IF ALICI=30 THEN
PORTB=%01110011
ELSE
PORTB=%00000000
ENDIF
olarak değiştirsem alıcı 30 olduğunda portb ye bağladığım 7 segment display görüntü almaz mıyım..
Fırtınalara Yön Veren, Kelebeklerin Kanat Çırpışıdır.

mchtylmz

daha baskı devre yapmadım çünkü proteus da çalıştıramadım..
alıcı devrede 16f84a kullanılmış. ben daha fazla bacak sayısı olsun diye 16f877a veya 16f874a kullanmayı düşünüyorum.
aslında kodu şu şekilde değiştirdim.
(16F877A için)


TRISA=255
TRISB=0
TRISC=0
PORTA=0
PORTB=0
PORTC=0

ALICI VAR BYTE
ALICI=0
PAUSE 500

BASLA:

SERIN2 PORTA.0,396,[WAIT("TUNA"),ALICI]

IF ALICI=10 THEN
PORTB=%10111010    /RAKANLARI KAFAMDAN ATTIM
PORTC=%00011001
ELSE
PORTB=0
PORTC=0
ENDIF

IF ALICI=20 THEN
PORTB=%10000010    /RAKANLARI KAFAMDAN ATTIM
PORTC=%11011001
ELSE
PORTB=0
PORTC=0
ENDIF
/ BU SEKILDE DEVAM EDIYOR
GOTO BASLA
END

ve sonuç olumsuz :(
Fırtınalara Yön Veren, Kelebeklerin Kanat Çırpışıdır.

ete

İşin tekniğini öğrenmeden bir şeyi yapmak mümkün değil maalesef.
Verdiğin dosya ya baktım daha istediğine uygun bir şema bile çizmemişsin. Nasıl yapılacak bu iş ortada şema olmayınca.
En azından kafandaki şemayı çizse idin de bizde neyi yanlış düşündüğünü bilseydik.
Kodlar da muhtemelen bir yerlerden alınmış kodlar gibi gözüküyor. Buna bir itirazım yok temeli başka bir yerden alıp isteğine uygun hale getirebilirsin. Ama bunu usulüne uygun yapmalısın.  Dediğim gibi yapamayabilirsin de ama bu siteye bir sürü ders koyduk bunları öğrenin diye öncelikle aşağıaki dersleri incelemeni istiyorum.
http://etepic.com/index.php/topic,19.0.html   
Bu Ders-8 dir ve içinde led display konusuda anlatılmıştır.
Multiplex (taramalı) çalışan ekranların kullanımı ise Ders-13 de anlatılmış olup link,
http://etepic.com/index.php/topic,24.0.html

Bu dersleri önce okuyup ekran kullanımı nasıl yapılıyor bşraz bilgi sahibi olmalısın.
Daha sonra kendine uygun bir şema çizmen gerekiyor. Mevcut şemanı değiştirerek 7 segment display ilave etmelisin. Bunu ister taramalı isterse 74HC595 ile taramasız çalıştırabilirsin. Tercih senin.
Sitede 7 segment display kullanımına örnek olabilecek bir sürü Ete Projeside var. Onlarıda inceleyebilirsin.
Biraz araştırma ile bu sitede istğine uygun bir sürü bilgi, mevcut. Bütün yapman gereken şey işin mantığını öğrenmen ve kendi projene uygulaman.
Bütün bunları yaptıktan sonra hala işi yapamayacak durumda isen yaptıklarını buraya koyacak özeellikle programda nerede sıkıştığını açıklayacak ve yardım isteyeceksin.

Verdiğin program parçaları kimseye bir şey ifade etmiyor. Zira ortada bir şema yok. Neye göre değerlendireceğiz bu programları sen karar ver.

Son olarak tek bir display kullanacak isen direk PORTB ye bağlanabilir. Ancak port pinleri ile display segmentleri arasında 220 ohm direnç kullanman gerekiyor bunu unutma.
Bu şekilde bir display bağlantısı kullanacak isen kısa bir hatırlatma dersi de vereyim işine yarar belki.
Segment A, PORTB.0 bağlanmalı sıra takip edilerek Segment-G de PORTB.6 ya bağlanmalıdır.
Bu şekilde hazırlanmış bir sistemde ;
- PORTB.0=1 yapılır ise (PORTB=%00000001) Segment-A yanar.
- PORTB.1=1 yapılır ise (PORTB=%00000010) Segment-B yanar.
- PORTB.2=1 yapılır ise (PORTB=%00000100) Segment-C yanar.
...
- PORTB.6=1 yapılır ise (PORTB=%01000000) Segment-G yanar.
Bahsi geçen pinleri birlikte kullandığın zaman ise HIGH verilen pinlerin hepsi birden yanar.
Örneğin ekranda 1 yanmasını istiyorsanız , Segment-B ve Segment-C ye 1 verilmesi yeterli olacaktır (%00000110)
Umarım gerisini yaparsın artık.
Ete

yolcu27

merhaba elimden geldiğince açıklamaya çalışayım sırası ile.

önce display ekranda görmek istediginiz sayıların değerlerini bir kenara yazın ör: portb=%11111110 "8" rakamı için çıkış verecek pinler. sen bunu çizimine göre ayarlarsın.

daha sonra alıcıdada vericide de birer değişken ata byte cinsinden  ör: veri var byte şeklinde

vericide buton okurken şunu yap butonların portb ye bağlı olduğunu varsayarak 

ör:
basla:
if portb.1=1 then   " 1 rakamı için gidecek veri
veri=10
endif
if portb.2=1 then   " 2 rakamı için gidecek veri
veri=20
endif
......
.....
.....     diğer rakamlar için siz devam edersiniz

serout2 porta.0,813,["E","T","E",veri]  ' yani porta.0 portu data cıkışı portu oldugunu varsayarsak bu porttan "veri" bilgisini gönder

goto basla
.



alıcı kısmında ise

basla:

serIN2 porta.0,813,[WAIT ("ETE"),veri]

if veri=10 then
portb=%00001100   ' 1 için gerekli olan segmentleri portb den yaktık.
endif
if veri=20 then
portb=%00111110  ' 2 için gerekli olan segmentleri portb den yaktık.  siz bunları daha önce deneyip kenara not edin bu değerleri
endif

goto basla


bilmiyorum bende buradn öğrendiklerimle birşeyler yapmayta çalıştım hatam varsa düzeltiniz.

mchtylmz

Alıntı yapılan: ete - 15 Ağustos 2016, 09:05:27
İşin tekniğini öğrenmeden bir şeyi yapmak mümkün değil maalesef.
Verdiğin dosya ya baktım daha istediğine uygun bir şema bile çizmemişsin. Nasıl yapılacak bu iş ortada şema olmayınca.
En azından kafandaki şemayı çizse idin de bizde neyi yanlış düşündüğünü bilseydik.
Kodlar da muhtemelen bir yerlerden alınmış kodlar gibi gözüküyor. Buna bir itirazım yok temeli başka bir yerden alıp isteğine uygun hale getirebilirsin. Ama bunu usulüne uygun yapmalısın.  Dediğim gibi yapamayabilirsin de ama bu siteye bir sürü ders koyduk bunları öğrenin diye öncelikle aşağıaki dersleri incelemeni istiyorum.
http://etepic.com/index.php/topic,19.0.html   
Bu Ders-8 dir ve içinde led display konusuda anlatılmıştır.
Multiplex (taramalı) çalışan ekranların kullanımı ise Ders-13 de anlatılmış olup link,
http://etepic.com/index.php/topic,24.0.html

Bu dersleri önce okuyup ekran kullanımı nasıl yapılıyor bşraz bilgi sahibi olmalısın.
Daha sonra kendine uygun bir şema çizmen gerekiyor. Mevcut şemanı değiştirerek 7 segment display ilave etmelisin. Bunu ister taramalı isterse 74HC595 ile taramasız çalıştırabilirsin. Tercih senin.
Sitede 7 segment display kullanımına örnek olabilecek bir sürü Ete Projeside var. Onlarıda inceleyebilirsin.
Biraz araştırma ile bu sitede istğine uygun bir sürü bilgi, mevcut. Bütün yapman gereken şey işin mantığını öğrenmen ve kendi projene uygulaman.
Bütün bunları yaptıktan sonra hala işi yapamayacak durumda isen yaptıklarını buraya koyacak özeellikle programda nerede sıkıştığını açıklayacak ve yardım isteyeceksin.

Verdiğin program parçaları kimseye bir şey ifade etmiyor. Zira ortada bir şema yok. Neye göre değerlendireceğiz bu programları sen karar ver.

Son olarak tek bir display kullanacak isen direk PORTB ye bağlanabilir. Ancak port pinleri ile display segmentleri arasında 220 ohm direnç kullanman gerekiyor bunu unutma.
Bu şekilde bir display bağlantısı kullanacak isen kısa bir hatırlatma dersi de vereyim işine yarar belki.
Segment A, PORTB.0 bağlanmalı sıra takip edilerek Segment-G de PORTB.6 ya bağlanmalıdır.
Bu şekilde hazırlanmış bir sistemde ;
- PORTB.0=1 yapılır ise (PORTB=%00000001) Segment-A yanar.
- PORTB.1=1 yapılır ise (PORTB=%00000010) Segment-B yanar.
- PORTB.2=1 yapılır ise (PORTB=%00000100) Segment-C yanar.
...
- PORTB.6=1 yapılır ise (PORTB=%01000000) Segment-G yanar.
Bahsi geçen pinleri birlikte kullandığın zaman ise HIGH verilen pinlerin hepsi birden yanar.
Örneğin ekranda 1 yanmasını istiyorsanız , Segment-B ve Segment-C ye 1 verilmesi yeterli olacaktır (%00000110)
Umarım gerisini yaparsın artık.
Ete
Alıntı yapılan: yolcu27 - 15 Ağustos 2016, 09:28:42
merhaba elimden geldiğince açıklamaya çalışayım sırası ile.

önce display ekranda görmek istediginiz sayıların değerlerini bir kenara yazın ör: portb=%11111110 "8" rakamı için çıkış verecek pinler. sen bunu çizimine göre ayarlarsın.

daha sonra alıcıdada vericide de birer değişken ata byte cinsinden  ör: veri var byte şeklinde

vericide buton okurken şunu yap butonların portb ye bağlı olduğunu varsayarak 

ör:
basla:
if portb.1=1 then   " 1 rakamı için gidecek veri
veri=10
endif
if portb.2=1 then   " 2 rakamı için gidecek veri
veri=20
endif
......
.....
.....     diğer rakamlar için siz devam edersiniz

serout2 porta.0,813,["E","T","E",veri]  ' yani porta.0 portu data cıkışı portu oldugunu varsayarsak bu porttan "veri" bilgisini gönder

goto basla
.



alıcı kısmında ise

basla:

serIN2 porta.0,813,[WAIT ("ETE"),veri]

if veri=10 then
portb=%00001100   ' 1 için gerekli olan segmentleri portb den yaktık.
endif
if veri=20 then
portb=%00111110  ' 2 için gerekli olan segmentleri portb den yaktık.  siz bunları daha önce deneyip kenara not edin bu değerleri
endif

goto basla


bilmiyorum bende buradn öğrendiklerimle birşeyler yapmayta çalıştım hatam varsa düzeltiniz.
Çok teşekkür ederim. Hocam verdiğiniz örneklerdeki sayac ile tuna yıldız ın yaptığı elimde bulunan rf alıcı projeyin kodlarını birleştirerek istediğimi yaptım.. Garson çagrı sistemi veya hemşire çağrı sistemi gibi projeler olabilir durumda. projenin son halini sizlerle paylaşıyorum. erdogan2734, yolcu27 ve ete hocama çok teşekkür ederim.
Fırtınalara Yön Veren, Kelebeklerin Kanat Çırpışıdır.

erdogan2734

Erdoğan
İmkansızın zaman aldığı bir dünya'da bana zorluktan bahsetme!

mchtylmz

Selamlar.. bu devrede PIC16F84A kullanmıştım onun yerine PIC16F628A kullanabilirmiyim???. Teknik olarak sorun olmayacak gibi görünüyor ama proteus da çalişmadı..   ???  kodları değiştirmem mi gerekiyor ?
Fırtınalara Yön Veren, Kelebeklerin Kanat Çırpışıdır.

erdogan2734

Port tanımlamalarını ve işlemcinin configuration ayarlarını güzel yaparsan 18f46k22 bile kullanabilirsin.
Erdoğan
İmkansızın zaman aldığı bir dünya'da bana zorluktan bahsetme!

ete

16F628A ile 16F84A arasındaki belirgin farklar şunlar. Bu farkları açıklarken 16F84A nın en basit hiç bir farklı özelliği olmayan işlemci gibi düşünmen gerek. Öyle ztaen. Farklar 16F628A da.
1. Komparatör özelliği var ve aksine bir komut olmaz ise A portu komparatör olarak açılırı. Digitale çevrilmesi gerekir. Cmccon=7. İle yapılır.

2. Dahili osilatörü vardır sigorta ayarlarından seçilerek ekstra bir harici elamn olmadan çalıştırılabilir.

Bu iki hususu ayarladığın zaman 628 de o devrede çalışır.

Ete

mchtylmz

Alıntı yapılan: erdogan2734 - 26 Eylül 2016, 07:32:13
Port tanımlamalarını ve işlemcinin configuration ayarlarını güzel yaparsan 18f46k22 bile kullanabilirsin.

Alıntı yapılan: ete - 26 Eylül 2016, 08:09:39
16F628A ile 16F84A arasındaki belirgin farklar şunlar. Bu farkları açıklarken 16F84A nın en basit hiç bir farklı özelliği olmayan işlemci gibi düşünmen gerek. Öyle ztaen. Farklar 16F628A da.
1. Komparatör özelliği var ve aksine bir komut olmaz ise A portu komparatör olarak açılırı. Digitale çevrilmesi gerekir. Cmccon=7. İle yapılır.

2. Dahili osilatörü vardır sigorta ayarlarından seçilerek ekstra bir harici elamn olmadan çalıştırılabilir.

Bu iki hususu ayarladığın zaman 628 de o devrede çalışır.

Ete

Çok teşekkür ederim..
Fırtınalara Yön Veren, Kelebeklerin Kanat Çırpışıdır.

AHMET ÇALIŞKAN

Merhabalar,
Ekteki pdf dosyaları sizin işinizi kesinlikle çözer.Bu devreleri deneyip çalıştırdım.

Alıcı kısmında 7 segmenti süren entegre 4311 yazıyor,siz 4511 kullanın.
Ayrıca UDEA  hazır rf  rx/ tx kitlerinden faydalanabilirsiniz.

blueboard


Powered by EzPortal