Vinç kumandası yardım

Başlatan KocaRED, 20 Mart 2009, 17:53:05

KocaRED

Bir süredir uğraşıyorum ama istediğim şartlarda uygulamayı yapamadım. Elektronik teknisyeniyim ama piclerle proje pek önüme çıkan konulardan olmadığı için ötelemiştim. 3 adet kitap aldım Assambler, PBP, İsis-Ares hakkında. Gerekli programları kurdum. Yapılmış uygulamaları inceledim. Takıldığım için sizlerden yardım istiyorum. Şimdiden ilgilenen arkadaşlara teşekkür ederim.
Sorun:
Vinç buton kablolarındaki (16'lı 1 veya 1,5 luk kablo) arızaları engellemek. Kopan kabloların tesbiti değiştirilmesi çok fazla zaman kaybı bizim işimizde. Vinçler 24 saat durmuyorlar.
Amaç:
Duruşları engelleyip kablo kesitini ve damar sayısını azaltmak. (Hem para hem zaman)
Hedef:
2 adet 16F84A ile minumum sayıda kablo kullanarak (buda seri iletişim demek oluyor) buton kutusu ve güç panosu arasında haberleşmeyi sağlamak.
Yaptığım Çalışma:
Verici:
******GİRİŞ VE ÇIKIŞLAR******
TRISA=01111                    
TRISB=255                  
OPTION_REG.7=0                
VERICI VAR byte
                               
BASLA:
PAUSE 10
DEFINE BUTTON_PAUSE 100   'buton arkı söndürme
PEEK PORTB, VERICI
'GÖNDERME İŞLEMİ
SEROUT2 PORTA.0,396,["P","B","P",VERICI]
GOTO BASLA
END

Alıcı:
*****GİRİŞ VE ÇIKIŞLAR*****
TRISA=%00001                        
TRISB=0                            
PORTB=0                            
ALICI VAR BYTE                      

BASLA:
POKE PORTB,ALICI
SERIN2 PORTA.0,396,[WAIT("PBP"),ALICI]

GOTO BASLA
END

Şeklinde gönderen ve alan devreyi okuduklarım incelediklerimden sonra çalıştırdım. Daha önce IF THEN GOSUB la da devreyi çalıştırdım ama gönderdiğim çıkışlar giriş butonu basılı olduğu halde çıkıştaki ledler isis de simüle ettiğimde konum değiştiriyor. yani botondan 1 sinyali gidiyor ama çıkış 1010 gibi değişme gösteriyor.(komutları işlenme hızından kaynaklanıyor heralde). En hızlı veriyi okuyup çıkış veren ve butona basılı olduğu sürece çıkış veren üstteki devre gayet sağlıklı çalışmakta.
Şimdi sıra sorunuma geldi:
Vinç kumandalarında bildiğiniz gibi yukarı-aşağı-kedisağa-kedisola-köprüileri-köprügeri butonları var. Bu hareketler kumanda devresinde elektriksel korumaya alınıyor, yani vinç yukarı çıkarken aynı anda aşağı indir butonuna basılırsa vinç yukarı çıkmaya devam ediyor. Yada aşağı butonu basılıyken yukarı butonuna basılırsa aşağı hareketine devam ediyor. İşte bu sorunu aşamadım. programa göre konuşursak VERICI değişkeninin içindeki 1 byte lık verinin bitleriyle oynayamıyorum. Onları oralardan alacak karşılaştırıp döngüyü yazacak yani yardımcı olacak arkadaşlara ve bu yazıyı okuma zahmetine katlanan arkadaşlara şimdiden teşekkür ediyorum.

drmp

KOLAY GELSİN DOSTUM  
YAPACAĞIN UYGULAMA  ÇOK ZOR OLMASADA ÇOK DA KOLAY DEĞİL   ÖNCELİKLE RF MODULLERİ BİR ARAŞTIR  ARDINDAN  COMMİNUCATİON  İN POWER LİNE SYSTEM METHODUNU İNCELE  BUNLAR KABLOLU VE KABLOSUZ  HABERLEŞME TEKNİKLERİ  OLARAK BİZİM SIK KULLANDIĞIMIZ  MAKİNALARDA  VAR  AYRICA   ELEKTRİKSEL KUMANDAYI SAKIN İHMAL ETME  YARIN  BU KONUDA   BİRAZ BİLGİ FORUMA GÖNDERİRİM   AYRICA  PİCBASİC KULLANDIĞINA GÖRE  BİRAZ DAHA GELİŞTİRMENİ TAVSİYE EDERİM

arslan74

Merhaba,

rf haberleşme sistemleriyle cok uğraştım. Hatta düzgün çalışan bir haberleşme protokülüde geliştirdim. Ticari bir uygulamada olarak birsine satığım için bu kodları buraya yayınlamiyorum. Bu işlerde yıllarca uğraşmanın sonucu edindiğim bilgileri paylaşabilirim. Evvela Sizin iş kritik bir uygulama. En başta vincle yanlış çalışma veya müdahale edememek hayati kritik tehlikelere yol acabilir. Bu yüzden size tavsiyede bulunmak istiyorum.

Şuan yaptığınız sağlıklı ve güvenli bir yöntem değil. vinci harakete gecirib durduramayabilirsiniz. Yada istenmeden çalışabilir.

Ortamda aşırı bir Elektro manyetik parazitler olaşacağı için, yaptığın bu sistem bu gürültülere dayanıklı olmak zorunda. Bunun için kablo ile seri haberleşme doğrudan lojik data göndermeyi unutun. Şağlıklı değil. Bunun yerine CanBus, Modbus, profibus yada en azında rs485 hattı üzerinden doğrudan bilgi göndermeniz gerek.

Bilgi gönderirken Özel bir protokol geliştirmeniz gerek. Eğer Canbus kullanmış olsanız o zaman canbus sizin yerinize bu protokol işini halledecektir.

Basıc kullanan arkadaşlar bana kızacaklar, ama Canbus, yani daha donanıma yakın dil yazmak için Basic uygun bir dil değil, onun yerine C kullanmanızı tavsiye ediyorum. Cok daha esnek bir dil olduğundan kabiliyetleride o orandan esneme özelliği var.

rf ile haberleşme başlıca bir mesela. piyasada satılan 433 basid hibrit rf modüllerle doğrudan seri haberleşme protokolünü kullanamassınız. Onun yerinde rf ile haberleşmek için protokol geliştirmeniz gerek. En basid protokol Manchester haberleşme potokolüdür. ancak bu sadece bitleri tanımlar byte veya blok tanımlaması yok.

rf ile uğraşmamak için hazır rf modemler var. Ancak onlarda batarya ile seyyar kullanıma uygun değil. Batarya ile seyyar kullanmak için yapmanız gereken; rf chipleri kullanmanız iyi olabilir. Örneğin bu iş için en uygun ZigBee. O protokolu hazır kodları var ancak C dilinde. Zigbee cok gelişmiş bir sistem ise, onun yerine siz PIC le özel bir yazılım geliştirebilirsiniz. Gördüğüm kadarayıla şimdiki bilgi seviyen cok işi yapmak için yetersiz. Kendini en az bir yıl geliştirmen gerek, o zaman istediğin programları yapabilecek hale gelebilirsin.

Sana şimdilik bu kadar tavsiyede bulunabiliyorum.

Selamlar

KocaRED

Sistemde rf kullanmayı düşünmüyorum Yanlış anlaşıldım heralde. Kablolu seri haberleşme olacak sadece.