Rangkaian Mikrokontroler Pengendalian Motor Stepper Melalui PPI 8255

Posted on

Stepper motor, baik yang mempunyai magnet permanen dan hybrid mempunyai 5 atau 6 kabel sebagaimana  yang  ditunjukkan  kedua  stepping motor  tersebut mempunyai  center  tap  pada dua winding-nya. Pada saat digunakan center tap dari kedua winding tersebut dihubungkan dengan power negatif, dan kedua kabel winding dihubungkan ke power positif untuk membalik arah.

Untuk memperoleh sudut stepping yang lebih akurat, rotor harus mempunyai kutub-kutub yang lebih banyak dan harus lah proporsional. 

Contoh manipulasi bitnya adalah sebagai berikut

1 0 0 0             Step 1

0 1 0 0             Step 2

0 0 1 0             Step 3

0 0 0 1             Step 4 kembalike Step 1

Untuk memutar kearah yang berlawanan perlu manipulasi bit sebagai berikut:

0 0 0 1             Step 1

0 0 1 0             Step 2

0 1 0 0             Step 3

1 0 0 0             Step 4 kembalike Step 1

  1. Full step dengan meggeser 2 bit yang saling berdekatan sebanyak 1 pergeseran baik kearah kanan maupun kiri tergantung putaran motornya.

Contoh manipulasi bitnya adalah sebagai berikut:

1 1 0 0             Step 1

0 1 1 0             Step 2

0 0 1 1             Step 3

1 0 0 1             Step 4 kembalike Step 1

             Untuk memutar kearah yang berlawanan perlu manipulasi bit sebagai berikut:

0 0 1 1             Step 1

0 1 1 0             Step 2

1 1 0 0             Step 3

1 0 0 1             Step 4 kembalike Step 1

Pada rangkaian mikrokontroler ini stepper motor dihubungkan dengan PPI 8255 yaitu PortA.0 s.d. PortA.3.Untuk menghubungkan PPI 8255 dengan motor steper perlu interface lain sebagai buffer yaitu IC ULN2003. 

Gambar Kerja 

Program Mikrokontroler

Program 1:

PORTA EQU   80H

COMMAND     EQU   83H

      ORG 0H

      MOV A, #10000000B

      MOV DPTR,#COMMAND ; inisialisasi ppi 8255

     

Mulai:MOVX @DPTR,A

      MOV   DPTR,#PORTA

ULANG:MOV   A, #1000B        

      MOVX @DPTR,A

      call delay

      MOV   A, #0100B        

      MOVX @DPTR,A

      call delay

      MOV   A, #0010B        

      MOVX @DPTR,A

      call delay

      MOV   A, #0001B        

      MOVX @DPTR,A

      call delay

      SJMP ULANG

delay:      Mov   R1,#20

DELAY1:     mov   R2,#255

DELAY2:     MOV   R3,#255

      DJNZ  R3,$

      DJNZ  R2,DELAY2

      DJNZ  R1,DELAY1  

      RET

END

Program 2:

PORTA EQU   80H

COMMAND     EQU   83H

      ORG 0H

      MOV A, #10000000B

      MOV DPTR,#COMMAND ; inisialisasi ppi 8255

     

Mulai:MOVX @DPTR,A

      MOV   DPTR,#PORTA

ULANG:MOV   A, #0001B        

      MOVX @DPTR,A

      call delay

      MOV   A, #0010B        

      MOVX @DPTR,A

      call delay

      MOV   A, #0100B        

      MOVX @DPTR,A

      call delay

      MOV   A, #1000B        

      MOVX @DPTR,A

      call delay

      SJMP ULANG

delay:      Mov   R1,#20

DELAY1:     mov   R2,#255

DELAY2:     MOV   R3,#255

      DJNZ  R3,$

      DJNZ  R2,DELAY2

      DJNZ  R1,DELAY1  

      RET

END

Program 3:

PORTA EQU   80H

COMMAND     EQU   83H

      ORG 0H

      MOV A, #10000000B

      MOV DPTR,#COMMAND ; inisialisasi ppi 8255

     

Mulai:MOVX @DPTR,A

      MOV   DPTR,#PORTA

ULANG:MOV   A, #1100B        

      MOVX @DPTR,A

      call delay

      MOV   A, #0110B        

      MOVX @DPTR,A

      call delay

      MOV   A, #0011B        

      MOVX @DPTR,A

      call delay

      MOV   A, #1001B        

      MOVX @DPTR,A

      call delay

      SJMP ULANG

delay:      Mov   R1,#20

DELAY1:     mov   R2,#255

DELAY2:     MOV   R3,#255

      DJNZ  R3,$

      DJNZ  R2,DELAY2

      DJNZ  R1,DELAY1  

      RET

END

Program 4:

PORTA EQU   80H

COMMAND     EQU   83H

      ORG 0H

      MOV A, #10000000B

      MOV DPTR,#COMMAND ; inisialisasi ppi 8255

     

Mulai:MOVX @DPTR,A

      MOV   DPTR,#PORTA

ULANG:MOV   A, #0011B        

      MOVX @DPTR,A

      call delay

      MOV   A, #0110B        

      MOVX @DPTR,A

      call delay

      MOV   A, #1100B        

      MOVX @DPTR,A

      call delay

      MOV   A, #1001B        

      MOVX @DPTR,A

      call delay

      SJMP ULANG

delay:      Mov   R1,#20

DELAY1:     mov   R2,#255

DELAY2:     MOV   R3,#255

      DJNZ  R3,$

      DJNZ  R2,DELAY2

      DJNZ  R1,DELAY1  

      RET

END

Leave a Reply

Your email address will not be published. Required fields are marked *