DC MOTOR KONTROL

Başlatan veli, 24 Mart 2017, 11:24:32

veli

arkadaşlar standart bir h bridge ile motor kontrolü yapmak istiyorum isiste kurdum programıda yazdım fakat ileri yada geri butonuna bir süre basılı tutup çekince sanki butona basıyormuş gibi pic çıkış vermeye devam ediyor nasıl çözebilirim bu sorunu???www.dosyaupload.com/4Cr8



@ __config _INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF& _MCLRE_OFF & _LVP_OFF & _CP_OFF

TRISA=%11111111
TRISB=%01110000
CMCON=7

SYMBOL M0=PORTB.0
SYMBOL M1=PORTB.1
SYMBOL M2=PORTB.2
SYMBOL M3=PORTB.3
SYMBOL ILERI=PORTB.4
SYMBOL GERI=PORTB.5
SYMBOL FREN=PORTB.6
PORTB=0

BASLA:
IF ILERI=1 THEN GOTO SOL
IF GERI=1 THEN GOTO SAG
'IF FREN=1 THEN GOTO DUR
GOTO BASLA

SOL:
LOW M1:LOW M3
IF ILERI=1 THEN
HIGH M0:HIGH M2
ELSE
LOW M0:LOW M2
ENDIF
GOTO BASLA

SAG:
LOW M0:LOW M2
IF GERI=1 THEN
HIGH M1:HIGH M3
ELSE
LOW M1:LOW M3
ENDIF
GOTO BASLA

'DUR:
''LOW M0:LOW M3
'IF FREN=1 THEN
'HIGH M1:HIGH M2
'ELSE

GOTO BASLA
'ENDIF
END

gigabytetr

#1
bende bu işte yenşyşm ama buşekilde bi denermisin.
deşiklik yaptım böyle daha basit olabilir
BASLA:
while fren=1
LOW M1:LOW M3
LOW M0:LOW M2
wend
IF ILERI=0 AND  GERI=0 THEN
LOW M1:LOW M3
LOW M0:LOW M2 
ENDIF

IF ILERI=1 and geri=0 THEN:HIGH M0:HIGH M2

IF GERI=1 and ileri=0 THEN:HIGH M1:HIGH M3

GOTO BASLA

veli

aynen kardeşim goto basla yı çıkarınca oldu çok teşekkür ederim

gigabytetr

Alıntı yapılan: veli - 24 Mart 2017, 11:45:08
aynen kardeşim goto basla yı çıkarınca oldu çok teşekkür ederim
rica ederim . kodu bidaha değiştirdim onada bak istersen.

veli

evet bu daha mantıklı ve kısa frenide ekledim son hali şu
IF ILERI=0 AND  GERI=0 THEN
LOW M1:LOW M3:LOW M0:LOW M2
 
ENDIF

IF ILERI=1 THEN HIGH M0:HIGH M2

IF GERI=1 THEN HIGH M1:HIGH M3

IF FREN=1 THEN HIGH M1:HIGH M2
pause 100

GOTO BASLA

ete

Şema ya bakarsan devre 12F675 ile çalışacak şekilde yapılmış. Ama programa bakarsan sanki 16F628A için yazılmış gibi gözüküyor hangisi doğru?
Bu tür şeylere dikkat edin. Bilen hemen anlar uyumsuzluk olduğunu ancak bilmeyen bunu alır kayıt eder çok sonra yeniden açar ve çalıştırmaya çalışır ama çalışmaz .

Programa gelince istediğini yapmak için, yön butonlarına basıp basılı tuttuğun müddetçe motora hareket veren pinleri aktif durumda tutacak butonu bırakınca aynı pinleri pasif hale getirmen gerekecektir.

Motorun döndürüldüğü etiketler altındaki program satırları aşağıdaki şekilde değişmesi gerekir.
SOL:
LOW M1:LOW M3
WHILE ILERI=1
HIGH M0:HIGH M2
WHILE ILERI=1:WEND
LOW M0:LOW M2
GOTO BASLA

SAG:
LOW M0:LOW M2
HIGH M1:HIGH M3
WHILE GERI=1 :WEND
LOW M1:LOW M3


Ete


veli

#6
kusura bakmayın ilk başta sorun çıkınca beyzleri ayrı ayrı sürmek için 16f628 i kullanmaya karar verdim ama ilk şemayı eklemişim biraz yoğundum özürdilerim linki güncelledim :-[

Powered by EzPortal