Dc motor yön kontrol

Başlatan balkes1022, 16 Mart 2015, 10:23:29

balkes1022



selamlar arkadaşlar takıldığım biryer var yardımcı olursanız sevinirim.
Atelyemize bi makina yaptık mekanik tamam ama elektronik kısmında takıldığım küçük bir yer var isteseniz ben size çalışma prensibini anlatayım basit aslında.

mekanik butonA basınca motor sola
mekanik diğer butona basınca motor sağa
mekanik butona basınca dur röle çek 1 sn

sorun şu mekanik dur dediğinde dur butonu basılı kalacak basılı kaldığı sürece motor sağ veya motor sol butonu çalışmıyor. Bizim istediğiniz dur butonu basılı ise diğer butonlardan birine basıldığında tekrar dur butonuna basana kadar sistemi çalıştırmak. When while ile denemeler yaptım ama beceremedim biraz karıştırdım sanırım programlama konusuna yeni giriyorum yardımcı olursanız sevinirim.

trisa=$1f
trisb=0

portb=0
basla:
    if(porta.0==0)then
        portb=1
        portb.3=1
    endif
    if(porta.1==0)then
        portb=2
        portb.4=1
    endif
    if(porta.2==0)then
        portb=0
        portb.5=1
        pause 1000
        portb=0
        endIF 
          WHILE porta.2=0
wend
     
    goto basla
    end

ete

#1
Aşağıdaki kodu deneyin.

Ete
trisa=$1f
trisb=0
SAYAC VAR WORD
portb=0
basla:
    if(porta.0==0)then
        portb=%00001001
    endif
   
    if(porta.1==0)then
        portb=%00010010
    endif
   
    IF PORTA.0=0 OR PORTA.1=0 THEN BASLA      '.....yön tuşlarından biri basılı ise durdurma tuşuna zaten bakma
   
    if(porta.2==0)then                                        'durdurma tuşuna basılmış ise  roleyi kes ama PORTB.5=1 yap
        portb=%00100000
        sayac=0                                                   'sayacı sıfırla
        WHILE porta.2=0 AND (PORTA.0=1 AND PORTA.1=1)  'durudurma tuşu basılı ama yön tuşları basılı olmadığı müddetçe
          pause 1                                                                  '  1ms gecikme uygula
          SAYAC=SAYAC+1                                                   'sayac değerini 1 artır
          IF SAYAC=1000 THEN                                            ' 1 sn geçmiş ve sistem hala bozulmamış ise
            PORTB=0                                                            ' portB yi tamamen sıfırla
            GOTO BASLA                                                       ' başa git
           ENDIF             
         WEND                                                                   
         PORTB=0                                                               'dur tuşu bırakılmış veya yön tuşlarından birine basılmış ise
     ENDIF                                                                       ' program bu satırlara  ulaşır.
     
    goto basla                                                                 've basla satırına giderek işlem yapar
    end

balkes1022

Teşekkür ederim yazdığınız kodu denedim istediğim gibi ama yeni olduğum için sizin yazdığınız kodları çözmeye çalışacağım saygılar...

ete

programa açıklama ekledim daha kolay anlarsın

Ete

Powered by EzPortal