RF motor kontrol hk

Başlatan yolcu27, 02 Kasım 2017, 22:43:17

yolcu27

arkadaşlar rf alıcı verici devresi şeklinde kendi etrafında dönebilecek bir araç düşünüyorum. motorları l293d ile süreceğim simulasyondaki sorunum butondan elimi çektiğimde bile motorlar son verilen komutu gerçekleştirmeye devam ediyor. kodları ve şemayı koyuyorum nerede yanlış yapıyorum acaba. butona bastığım sürece motorların hareket etmesini istiyorum

ALICI KOD

@ DEVICE pic16F628A 'işlemci 16F628 
@ DEVICE pic16F628A, WDT_on 'Watch Dog timer kapalı 
@ DEVICE pic16F628A, PWRT_OFF 'Power on timer açık 
@ DEVICE pic16F628A, PROTECT_OFF 'Kod Protek kapalı 
@ DEVICE pic16F628A, MCLR_off 'MCLR pini kullanılıyor. 
@ DEVICE pic16F628A, INTRC_OSC_NOCLKOUT 'Dahili osilatör kullanılacak
DEFINE OSC 4
OPTION_REG.7=1   ' PULL UP  KAPALI
include "modedefs.bas" 'SERİN VE SEROUT KOMUTLARININ ÇALIŞMASI İÇİN GEREKLİ KÜTÜPHANE DOSYASI
ALICI var  word     'SERİ İLETİŞİMDE ALINACAK  VERİ

TRISB=0 'PORTB TAMAMI ÇIKIŞ
CMCON=7 'KOMPARATÖR PİNLERİ DİJİTAL GİRİŞ VEYA ÇIKIŞ
TRISA=%000000001 'PORTA.0 GİRİŞ
portb=0
ALICI=0


BASLA:


serin PORTA.0,813,["V","O","L"],ALICI 'PORTA.1 alıcı VERİSİNİ AL

IF  ALICI=10   THEN  portb=%00000101
IF  ALICI=20   THEN  PORTB=%00001010
IF  ALICI=30   THEN  PORTB=%00000110
IF  ALICI=40   THEN  PORTB=%00001001
IF  ALICI=50   THEN  portb=0
IF  ALICI=0    THEN  PORTB=0


GOTO BASLA





VERİCİ KOD


@ DEVICE pic16F628A 'işlemci 16F628 
@ DEVICE pic16F628A, WDT_on 'Watch Dog timer kapalı 
@ DEVICE pic16F628A, PWRT_OFF 'Power on timer açık 
@ DEVICE pic16F628A, PROTECT_OFF 'Kod Protek kapalı 
@ DEVICE pic16F628A, MCLR_off 'MCLR pini kullanılıyor. 
@ DEVICE pic16F628A, INTRC_OSC_NOCLKOUT 'Dahili osilatör kullanılacak

include "modedefs.bas"  'SERİN VE SEROUT KOMUTLARININ ÇALIŞMASI İÇİN GEREKLİ KÜTÜPHANE DOSYASI

DEFINE OSC 4
TRISA=%00011110   'PORTA.0 ÇIKIŞ
TRISB=%11111111
OPTION_REG.7=0        ' PULL UP DİRENCLERİ AKTİF
ALICI VAR word

PORTB=0
ALICI=0



               
BASLA: 
ALICI=0
 

IF PORTB.0=0 THEN 
ALICI=10 
serout PORTA.0,813,["V","O","L",ALICI]
ELSE
ALICI=0
ENDIF


IF PORTB.1=0 THEN 
ALICI=20
serout PORTA.0,813,["V","O","L",ALICI]
ELSE
ALICI=0
ENDIF

IF PORTB.2=0 THEN 
ALICI=30
serout PORTA.0,813,["V","O","L",ALICI]
ELSE
ALICI=0
ENDIF

IF PORTB.3=0 THEN
ALICI=40   
serout PORTA.0,813,["V","O","L",ALICI]
ELSE
ALICI=0
ENDIF

IF PORTB.4=0 THEN
ALICI=50
serout PORTA.0,813,["V","O","L",ALICI]
ELSE
ALICI=0
ENDIF

goto basla 

end                       

               
                         





bu aşamayı geçtikten sonra başka özelliklerde eklemeyi düşünüyorum. hatta mantığını kavradıktan sonra bluetooth üzerinden kontrol edilebilecek şekilde düşünüyorum.


Bir sorumda l293 de vss yi +5 v ye    VS yide motorları besleyecek bataryaya mı bağlamam gerekiyor? bu iki kaynak ayrı olduğu durumda gnd leri birleştirmem gerekiyor mu?


yolcu27

sorunu şimdilik çözüdm gibi verici kod kısmında portb=255 ise alıcı=0 yaparak veri gönderdim alıcı kısmında alıcı=0 ise portb=0 yapınca bastıgım sürece motorlar dönüyo

ete

Aslında yalnızca alıcı kısmında BASLA satırından hemen sonrasına ALICI=0 yazsan ve bunu bir koşula bağlamasan işin olacak idi. Olacak derken mantık olarak olması gerekir diye düşünüyorum. Çünkü sistemi durduracak olan ALICI=0 işlemidir. Ama sen vericiden hiç bişr şekilde Alıcı=0 komutu yollamadığın için sistem durmuyor.
Dediğim gibi yapsan ne mahsuru olur ? arada bir veri alamaz ise direk motoru tuşa basmış olsan da durdurur.
O halde işin doğrusu, Verici tarafında tuşlar bırakılır ise ALICI=0 koutunu göndermek olur.
Böylece verici tarafından kontrol edersin işi ve sorunda ortadan kalkar. O zaman ALıcı tarafına ALıcı=0 demen gerekmiyor tabiiki.

Ete

yolcu27

Evet bende verici de dahili pullup açık olduğu için direk portb=255 ise veriyi sıfır yap dedim.

Şimdi far yapmak için aç kapat tuşu koymak istiyorum. Bu akşam da artık onunla uğraşırım.   Bunları yaparsam başka  pwm ile motor hızını kontrol edecek bir özellik düşünüyorum. Buton yada farklı bir seri kullanarak pot üzerinden okunan ADC ye göre pwm üretmek.  Yavaş yavaş aklımda şekilleniyor

Powered by EzPortal