avatar_Mucit23

RF kumanda tasarımı

Başlatan Mucit23, 28 Nisan 2012, 10:18:11

umitco

Udea'nın 2 butonlu kumandalarından kullanıyorum , 1.buton bastığımda %0001 data bilgisi göndermiş oluyorum ve PT2272 nin 13.pini high diğerleri low oluyor. 2.buton ilede %0010 data bilgisi gidiyor ve 12.pin high diğerleri low. Eğer kumandada 2 butona birden basarsam %0011 datasını göndermiş olmam ve PT2272 de 12 ve 13.pinlerin high olması gerekirdi ama hiçbir şekilde 2 pin birden high olmuyor hocam..

Mucit23

#31
normalde pt2262 bu sekilfe calısır ama kumandada aynı anda iki butona basılmasını engelleyen bir sistem olabilir . kumandayı incelemek gerekir.

Ete hocam verici işini pek anlamadım açıkçası. (Aslında Rf işlerinten teknik olarak hic anlamam ilgi alanıma girmiyor diyebilirim) Bilginiz varsa eğer gönderdiğimiz dataların nasıl gönderildigini açıklayabilirmisiniz. Yani datalar taşıyıcı 433mhz sinyalin üzerine bindirilipmi gönderiliyor. Açıkcası bu konularda hic bilgim yok..
verici devre semasını bulursanız eger paylasırsanız sevinirim.

Birde bu alıcıların data cıkıslarından kumandalara dokunulmasa bile sürekli olarak data çıkıyor

Tabi Pt2272bunlara aldırmıyor ama merak ettim. alıcıların bu parazitleri cikisa yansıtması normalmidir.
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

umitco

2 butona aynı anda basmayı engellemesi olası , yarın bunu denemek için 2262 devresi kurup deneyeceğim

umitco

 Evet , kumanda 2 butona aynı anda basmayı engelliyor. 2262 ile kurduğum devrede 4 bitlik data bilgilerini aldım. Teşekkürler..

s.atak

merhaba ETE hocam,

ayrı bir konu başlığı açıp kirlilik yaratmak istemedim.

benim 12f675 ile sorunum var, bir şeyi yanlış yapıyorum ama neyi??
2 butonlu verici devresi yapmaya çalışıyorum, devre de hazır tx-rx modüller kullandım.
önce 12f675 ile denedim. ama bir türlü çalıştıramadım. aynı devreyi 16f628a ile de denedim data çıkışından 5v ve ledi yakmayı başardım. 16f628 ile güzel çalıştı.
fakar kumanda da yer dar olduğu için 12f675 kullanmam lazım.
şu ana kadar 4 adet 12f675 denedim, kimini kendi acemiliğimden dolayı yaktım kiminde ise osccal değerlerini bozdum..
şimdi yeni bir tane daha 12f675 aldım fakat buna da program atmaya korkmaya başladım yine aynı sorun olurmu diye, isis te çalışan devreyi çerçekte bir türlü çalıştıramadım.
sizden ricam boş vaktiniz olduğunda 12f675 için yazdım programa bir göz atarmısınız??
basit bir yazılım sadece aç ve kapa komutları gönderiyor.
teşekkür ederim.
s.atak





ete

Programda bir kusurun var.
VERICI=0
IF AC=1 THEN
    vERICI=10
    LED=1
    WHILE AC=0:WEND

While komutunda AC=0 değil AC=1 olması gerekir. Sıfır değerini 1 yap.
Aynı sorun diğer tuş kontrolünde de mevcut.
	IF KAPA=1 THEN 
    VERICI=20
    LED=1
    WHILE KAPA=0:WEND

Onuda düzelt.
Birinci tuş kontrolünden sonra pause 100 komutunuda kaldırman gerekir. Zira altta bir tane var zaten. O yeterlidir.
Serout2 komut satırının birisinide silmen gerek. Bir tanesi yeterlidir.

Ete

s.atak

ete hocam merhaba,

cevabınız için teşekkür ederim,
1 adet 12f675 daha çöpe gitti. bu osccal kalibrasyonu ile başım dertte malesef, winpic800 + jdm programlayıcı kullanıyorum. programlamadan önce okuma yaptım ve osccal değerini not aldım. 3430 şeklinde. sonra programı attım. fakat devrede hiç hareket olmadı. tekrar atayım programı dedim. osccal hatası verdi. winpic800 silerken ve tekrar yüklerken osccal okuyup tekrar yazdığını gösteriyor ama malesef sonra hata veriyor.
büyük ihtimalle 16f628a ile yapacağım, yordu bu işlemci.
8 yada 10 pinli ufak türkiye' de kolay bulunabilen 16f628a gibi kolay program atılabilen işlemci biliyormusunuz ??
saygılar

ete

12F675 benim sürekli kullandığım bir işlemcidir. Hiç bir şekilde yaşadığın sorunları yaşamadım. PicKit2 programlayıcı 3FFF adresinden OSCCAL değerini alır ve pic i programlarken yeniden aynı değeri aynı adrese yazar.

Senin programlayıcıda bir sorun olmalı. Aslında bir şey yapman gerekmemesi gerekir. OSCCAL değerini senin alıp yazman gerekmiyor. İşlemciyi yanlışlıkla silersen ancak yazman gereken bir şey bu değilse programında OSCAL 1K komutu var ise sorun olmaması gerekir. Bir defa programlayıcın bu değeri alıp geriye yazıyormu bakman gerekiyor.
Bunun için 675 boş iken önce Read komutu ile 3FFF adresini oku ve değeri not et.
Sonra hex dosyasını yükle ve pice yaz. Sonra yeniden okuma yap ve bak bakalım aynı adreste aynı değer varmıdır. Yok ise programlayıcın bu değeri okuyup geri yazmamaktadır. Bence programlayıcını değiştir.
Şayet programlayıcın OSCCAL değerini yazmıyor ise Hex dosyasını yükledikten sonra son adrese önceden okuduğun OSCCAL değerini manuel olarak sen yaz ve daha sonra programla işlemciyi.

Ete

s.atak

ete hocam
verdiğiniz bilgiler için çok teşekkür ederim.

sorunumu sizin son satırlarda söylediğinizden biraz farklı yaparak hallettim.
sorun yaşan diğer arkdaşlarında başına gelebilir.
kullandığım programcı winpic800 +rcd programmer(bu iki ile defalarca 16f628a ve 16f648a programladım)

ilk önce yeni 12f675 in içnde ki 0x3ff adresindeki osccal değerini okuyarak bir kenara yazdım.
sonra programı attığımda osccal değerini hep silip tekrar terine yazmıyordu programcı.
yani kalibrasyonu bozulmuştu.
bende işlemciyi tamamen silip, sadece 3ff adresine (işlemci boşken) önceden bir kenara yazdığım osccal değerini yazıp yükledim, sonrada kendi yazdığım programı üzerine tekrar yazdım ve tekrar okuma yaptığımda kalibrasyon değeri ve program yüklenmiş oldu.
işlemci devreye taktığım da çalışmaya başladı, artık biraz daha sempati ile bakar oldum 12f675 e  :)..
yardımlarınız için tekrar teşekkür ederim,
saygılar



s.atak

ete hocam merhaba

işlemciler 5v üzerinde çalışabilirmi ??
datashette 5,5v max voltaj gösteriyor (12f675 de ve 16f628a da ben yanlış bakmadıysam).
üstte verdiğim programa ilave bir de daha önce alıcı devresi paylaşmıştım sizinle, tekrar buraya yüklüyorum,
78L05 çıkışından 5,9V ile 5,16 volt çıkış alıyorum. isiste herşey normal ama gerçek devrede bir türlü komutlara göre çalıtıramadım.
vericide sinyali 5 kereye çıkardım yine aynı.(pbp de o şekilde kalmış,silmeyi unutmuşum)
voltajın yüksek olması işlemcinin çalışmasını etkilermi ?? 5 volt kritik değermidir, kesinlikle az da olsa aşılmamalı mı?
verici ve alıcı programlarını ve isis şemasını yüklüyorum, zamanınız olunca bir bakarsanız sevinirim.
saygılar,
s.atak

ete

#40
7805 ler genelde 4,98 ile 5,2 volt arasında bir voltaj verir. Sende 5,9v çıkıyor ise muhtemelen bozuktur. Bence onu değiştir. 5,5v üzerindeki voltajlar işlemciyi bozar.
Programlara baktım. Tabiiki bir çok kusur mevcut. Hem devrede sorun var (PORTA.4) hemde programlarda sorunlar var.
Her şeyden önemlisi bu tür sistemlerde alıcıda USART kesmesi kullanmak zorundasınız. Kullanmazsanız senkron denilen şeyi yani vericinin veri yolladığı anda alıcınında veri alma konumunda olması durumunu kaçırırsınız. Sebebi açık.
Verici veri yolarken arada 100 ms bekleme yapıyor. Alıcı ise tek bir serin komutu ile almaya çalışıyor ve ver gelmemiş ise orada 65,5ms beklemek zorunda komutun özelliği nedeni ile bu böyle. Peki bunlar nasıl karşı karşıya gelip buluşacaklar. Elbette işlemciler çok hzılı çalışıyorlar arada birde olsa veri alış verişi yapılabiliyor.
Ama veri yollanırken anında alınması için tek yol USART kesmesidir. Bunu unutmayın.
USART kesmesine dönünce devre şemasında ufak tefek değişikler yapmak gerekiyor. PortB.0 dan itibaren bağlı olan ledleri PORTB.3 den itibaren bağlıyoruz. Zira PortB.1 bacağı USART-RX pinidir. Bu değiştirilemez.
PORTA.4 pini open collectordur. Kendi başına artı (High) çıkartamaz. Bunu anlcak bir pullup ile sağlayabiliriz. Bu nedenle orada bağlı olan transistörün Emitter bacağındaki 10K yı kaldırdım onu direk GND ye verdim ve Collector bacağınada 10K lık pullup direnci bağladım. Böylece sensör sistemi doğru çalışmaya başladı.
Haberleşmede paket başını belirlemek için işaretçi kullanılması iyi bir yöntemdir. Ama işaretçininde 3 karekteri geçmemesi daha uygun bir yöntemdir. Zira işlemcinin boşuna vakit harcayacağı işlemlerden kaçınmamız gerekiyor. Bu nedenle işaretçiyi 3 karektere düşürdüm.

Programın mantığını ne yazıkki tam olarak çözemedim. Elbette komut satırlarından ne yapılmak istendiğini anlıyorum ama onların neden öyle yapıldığını anlamıyorum.
Mesela;
Vericide Kapat butonuna bastık ve 33 bilgisi alıcıya ulaştı. ALıcı 33 bilgisini alınca programı SAG isimli etikete gönderdi. Burada sw_Kapa tuşuna basarsak sistem kapanıp başla etiketine gidiyor. Ama sensör çıkışı şayet LOW olursa yada ACIL butonuna basılır ise program HOP isimli etikete gidiyor. HOP da UYARI hariç hepsi kapatılıyor ve sistem SOL isimli etikete atlıyor bu sefer. Halbuki SOL isimli etiket AÇMA için çalışan bir program parçası tabiiki oraya gidince her şey yeniden açılıyor ve Dursol tuşuna basılmaz ise program oradan çıkamıyor. Bana kalırsa bu bir mantık hatası. Program SOL değil muhtemelen SAĞ isimli etiket gitmesi gerekiyor sanırım. Buraları iyice düşünmen gerek.

Çalışan programlar ve devre şeması ilişiktedir.

Ete

pwm3434

ete hocam  başka bir  konu  altında  başlık  açmak  istemedim  benzer  bir  konu  olduğu  için.ihtiyacım  için  uygun  bir  modül  tavsiye  edebilirmisiniz.

rf  modül ile şu  işlemleri yapmak istiyorum

a-  model aracın hızını kontrol etmek için bu  adres'deki esc'i (elektronik hız  kontrol)  satın  alacağım,http://modelmerkezi.com/Elektronik/ESC-Hiz-Kontrolor?page=2 bu esc lerin  sinyan  giriş  pinine verici  tarafındaki pıc  ile  oluşturduğum puls bilgileri alıcıya gönderilip ve  bu  bilgiyi alıcı  kısmında ki pıc  ile  okuyup gerekli işlemler yapılacak.

b-  sağ ve sol yönlerine dönüşü sağlayan servo  puls  bilgilerini sağlamak a'da ki gibi  http://modelmerkezi.com/Elektronik/Servolar/Futaba-S3003-Servo




ete

RF modülün bu yapacaklarına bir alakası yok. O yalnızca iletişimi sağlar. Gerisi seninbecerine kalmış. mHer hangi bir modül olabilir.
Ete

pwm3434

ete  hocam  bu  söylediklerinizin  farkındayım  evet  sadece  iletişimi  sağlıyor  rf  moduller.daha  iönce  hiç  fr  modül  kullanmadım hangi  modülü  kullanmalıyım  konusunda da kafam  karıştı çünkü bu konu  başlığının ilk  mesajından  ittibaren  bir  kısmını  okudum  ve  PT2662 ve 2272 ile  istediğim  herhangi  bir  datayı  gönderemeyeceğimi  anladım  doğrumu.

hocam  bana  şimdilik  gerekli  olan mesafesi  en  az 100 metre  kadar ve frekans  kaymasının olmadığı  kararlı  çalışan  bir  modüldür.hocam ikinci el de  olabilir satabileceğiniz elinizde   fazla  olarak varmı  acaba .

ete

Cevabım değişmedi her hangi bir modül.
PT22xx serisi olursa butonlu uygulama yaparsın. Seri haberleşme için çok uygun değil.
Ete


Powered by EzPortal