STEP MOTOR KONTROLÜ
Step motor fırçasız elektrik motorlarıdır. Step motorlar ile tam bir tur dönmeyi yüksek sayıda adımlara bölebilmek mümkündür (200 adım). Step motorları sürmek için, sürekli gerilim uygulamak yerine darbeler(pulse) uygulamak gerekmektedir. 12 volt ile çalışan modelleri yaygındır.
Step motorlar genel olarak 2 çeşide ayrılabilir.
a. Bipolar Step Motor: Bipolar step motorların çıkısında 4 kablo bulunur. Motorun bobinleri birbirlerine bağlanmıştır, bu yüzden bu uçlara ters gerilim uygulanmak zorundadır(1a=1 ise 1b=0 olmalıdır). Genel olarak bir H-Bridge devresi ile sürülür.
b. Unipolar Step Motor: Unipolar step motorların çıkısında 5 yada 6 kablo bulunur. Motorun bobinleri ayrı ayrı çıkışa gönderilir ve yapısına göre 1 veya 2 adet ortak giris bulunur(toprak ve besleme uçları). Yandaki şekilde görünen step motorda 1 ve 2 ortak girişler, a ve b ise step motorun hareketinin sağlanması için gerekli kombinasyonun uygulandığı girişlerdir.
Program örneklerine geçmeden önce step motor sürücü devrelerine örnek verelim. Bunlar;
Program Adı: Bir step motoru PORTA'nın 1. bitine bağlı A1 butonuna basınca sağa, A1 ve A2 butonlarına birlikte basınca da sola döndüren program. Step motor uçlarına gönderilecek olan gerilimler PORTB'deki LED'lerde görülür. (Tasarımı yaparken PORTB ile ster motor uçları arasına step motor sürücü devrelerinden bir tanesini koyun.)
LIST P=16P84
INCLUDE "P16F84.INC"
SAYAC1 EQU h'0C'
SAYAC2 EQU h'0D'
ADIM EQU h’0E'
CLRF PORTB
BSF STATUS, 5
MOVLW h'FF'
MOVWF TRISA
CLRF TRISB
BCF STATUS, 5
MOVLW h'FF'
MOVWF ADIM
BASLA
BTFSC PORTA, 1
GOTO BASLA
BTFSC PORTA, 2
GOTO SAG
SOL
INCF ADIM, F
MOVF ADIM, W
ANDLW b'00000111'
CALL ADIMTBL
ANDLW b'00001111’
MOVWF PORTB
CALL GECIKME
GOTO BASLA
SAG
DECF ADIM, F
MOVF ADIM, W
ANDLW b'00000111’
CALL ADIMTBL
ANDLW b'00001111’
MOVWF PORTB
CALL GECIKME
GOTO BASLA
ADIMTBL ;Çevrim tablosu
ADDWF PCL, F
RETLW b’000l’
RETLW b'1001’
RETLW b'l000'
RETLW b'1010'
RETLW b'00l0'
RETLW b'0110'
RETLW b'0100’
RETLW b'0101’
GECIKME ;Gecikme alt programı
MOVLW h'FF'
MOVWF SAYAC1
DONGU1
MOVLW h'FF'
MOVWF SAYAC2
DONGU2
DECFSZ SAYAC2, F
GOTO DONGU2
DECFSZ SAYAC1, F
GOTO DONGU1
RETURN
END
Programın Adı : PORTC'nin ilk dört bitine bağlı olan step motorun devir yönünü ve adım sayısını dışardan girilrn değerler doğrultusunda otomatik olarak döndüren program
DEFINE LCD_DREG PORTD
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTD
DEFINE LCD_RSBIT 2
DEFINE LCD_EREG PORTD
DEFINE LCD_EBIT 3
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2
A VAR BYTE
SAGA VAR BYTE
SOLA VAR BYTE
ADCON1 = 7 :TRISA = $FF
TRISC = $00
ORTC = $00
SAGA=0 : SOLA=0
ANA_PROGRAM :
IF PORTA.2=0 THEN GOTO DONUS_AYARI_YAP
LCDOUT $FE,1, "SAGA ", DEC2 SAGA,"ADIM"
LCDOUT $FE,$C0,"SOLA ", DEC2 SOLA,"ADIM"
GOSUB GECIKME
IF SOLA=0 AND SAGA=0 THEN GOTO ANA_PROGRAM
GOSUB SAGADON :GOSUB SOLADON
GOTO ANA_PROGRAM
END
DONUS_AYARI_YAP :
IF PORTA.3=0 THEN
SAGA_DON_AYARI :
IF PORTA.0=0 THEN SAGA=SAGA+1
IF PORTA.1=0 THEN SAGA=SAGA-1
LCDOUT $FE,1, "SAGA ", DEC2 SAGA," ADIM" :GOSUB
GECIKME
IF PORTA.2=0 THEN
GOTO SOLA_DON_AYARI
ELSE
GOTO SAGA_DON_AYARI
ENDIF
ENDIF
IF PORTA.4=0 THEN
SOLA_DON_AYARI :
IF PORTA.0=0 THEN SOLA=SOLA+1
IF PORTA.1=0 THEN SOLA=SOLA-1
LCDOUT $FE,1, "SOLA ", DEC2 SOLA, " ADIM" :GOSUB GECIKME
IF PORTA.2=0 THEN
GOTO DON_AYARI_BITIR
ELSE
GOTO SOLA_DON_AYARI
ENDIF
ENDIF
DON_AYARI_BITIR:
IF PORTA.2=0 THEN
GOTO ANA_PROGRAM
ELSE
GOTO DONUS_AYARI_YAP
ENDIF
RETURN
SAGADON :
FOR A = 0 TO SAGA
PORTC = $01 :GOSUB GECIKME
ORTC = $02 : GOSUB GECIKME
PORTC = $04 :GOSUB GECIKME
ORTC = $08 : GOSUB GECIKME
NEXT A
PORTC = $00
RETURN
SOLADON :
FOR A = 0 TO SOLA
PORTC = $08 :GOSUB GECIKME
ORTC = $04 :GOSUB GECIKME
PORTC = $02 :GOSUB GECIKME
ORTC = $01 :GOSUB GECIKME
NEXT A
PORTC = $00
RETURN
GECIKME :
PAUSE 250
RETURN