Pengertian Kontrol Cerdas/Fuzzy Logic

on Selasa, 25 Oktober 2011



Kontrol cerdas adalah hasil penerapan kecerdasan komputasional pada sistem kontrol yg kompleks
Tekniknya berbeda sekali dari teknik control konvensional. Semakin banyak dipergunakan ketika control konvensional tidak mampu.
Hasil penerapannya:
1.      peningkatan produktivitas dan mutu produk
2.      penghematan konsumsi energi
Teori kontrol modern, yang telah memberikan kontribusi begitu signifikan untuk eksplorasi dan penaklukan ruang, telah sukses serupa dalam memecahkan masalah kontrol dari manufaktur. meskipun kemajuan di lapangan sejak 1950-an telah memperluas kesenjangan antara teori dan praktek dan banyak kebutuhan industri yang masih belum terselesaikan. industri ini memiliki beberapa pilihan, sehingga mereka sebagian besar didasarkan konvensional (kadang-kadang disebut hard disk) teknik kontrol industri berdasarkan tiga driver. sayangnya, perangkat ini sederhana dan di mana-mana tidak dapat selalu merespon tuntutan dan kompleksitas sistem manufaktur modern. kesenjangan antara teori dan praktek telah menyebabkan untuk mencari teknik baru dan tidak konvensional yang tidak tunduk pada pembatasan dan keterbatasan dari teori kontrol modern untuk memecahkan masalah kontrol dalam industri dan manufaktur. perubahan datang pertengahan 1960-an dengan pengenalan logika fuzzy oleh zadeh.
Penerapan teori zadeh untuk kontrol untuk datang hampir sepuluh tahun kemudian dan itu selama bertahun-tahun bahkan sebelum menerima penghormatan dan penerimaan yang benar-benar layak. pada sekitar waktu yang sama, widrow menunjukkan adalines menggunakan (adaptive linear networks), yang merupakan bentuk primitif dari jaringan syaraf tiruan (anns), di kontrol. ini adalah keberangkatan yang radikal dari kontrol konvensional untuk pengendali generik dilatih untuk melakukan tugas-tugas tertentu, bukan sedang dirancang. kedua pendekatan tersebut dikembangkan secara independen dan itu untuk mengambil  bertahun-tahun sebelum konsep ini diterapkan pada tingkat apapun.  penerapan fuzzy logic control engineering  pertama menunjukkan di eropa dan jepang pada pertengahan 1970-an. disajikan demonstrasi pertama dari fuzzy logic pada tahun 1974 pada proses eksperimental. ini demonstrasi fuzzy logic control (flc) memberikan dorongan untuk serangkaian aplikasi yang tampaknya tak berujung, yang terus berlanjut sampai hari ini. dengan beberapa pengecualian, teori zadeh dari fuzzy logika tanpa terasa di barat selama bertahun-tahun sementara, sementara itu, ada hiruk-pikuk aktivitas di jepang menerapkan teori untuk seperti bervariasi kolom seperti peralatan rumah, kamera dan sistem transportasi. tidak sampai awal 1980-an itu industri di barat secara serius mempertimbangkan menerapkan kontrol fuzzy. di garis depan ini adalah industri proses dan khususnya industri semen, yang merupakan pertama yang menerapkan 
teknik baru untuk mengontrol proses skala besar. perkembangan lapangan sejak saat itu telah mengesankan dan saat ini ada ratusan pabrik di seluruh dunia berhasil dikendalikan oleh teknik tersebut. bidang jaringan syaraf tiruan, yang berkembang cukup secara terpisah, telah memiliki evolusi yang sulit. muncul di tahun 1970-an sebagai bidang yang menawarkan banyak janji dan potensi, itu digagalkan oleh tidak memadainya komputasi fasilitas dan kurangnya algoritma pelatihan jaringan yang efektif. kembali muncul pada 1980-an, saat kemajuan yang signifikan telah dibuat di kedua algoritma pelatihan dan perangkat keras komputer, penelitian 
dan pengembangan di lapangan telah berkembang pesat. saraf tiruan jaringan dapat ditemukan hari ini di berbagai aplikasi mulai dari komunikasi, analisis dan sintesis kontrol dan banyak lagi.
Ini adalah domain dari Komputasi Lunak, yang berfokus pada stokastik, 
empiris dan asosiatif situasi, khas dari industri dan manufaktur lingkungan. Cerdas Controller (kadang-kadang pengendali lunak disebut) adalah turunan dari Komputasi Lunak, yang ditandai oleh kemampuan mereka untuk membangun hubungan fungsional antara mereka input dan output dari data empiris, tanpa bantuan eksplisit model proses dikendalikan. Ini adalah keberangkatan yang radikal dari konvensional controller, yang didasarkan pada hubungan fungsional eksplisit. Tidak seperti rekan-rekan konvensional mereka, pengendali cerdas dapat belajar, mengingat dan membuat keputusan. Hubungan fungsional antara input dan output dari kontroler cerdas dapat ditetapkan secara tidak langsung melalui suatu algoritma relasional, relasional matriks atau basis pengetahuan, atau  langsung dari training set tertentu. 
Kategori pertama milik domain Sistem Fuzzy sementara Jaringan Syaraf Tiruan milik kedua. di mana masukan yang sama untuk menanam menghasilkan output serupa sehingga kepekaan terhadap gangguan dalam input tanaman diminimalkan, adalah fitur yang melekat seperti sistem. menyiratkan bahwa controller mampu beroperasi benar pada informasi di luar training set. 
Kontroler cerdas, apa pun bentuk yang mereka dapat mengambil, berbagi sifat berikut:
menggunakan proses yang sama menyatakan, menggunakan prosesor asosiatif paralel terdistribusi, dan mampu kodifikasi dan pengolahan data samar-samar. Media utama kontrol cerdas Intelijen Komputasi, cabang Komputasi Lunak yang mencakup Sistem Pakar, Logika Fuzzy, Jaringan Syaraf Tiruan dan turunannya. Evolusioner Perhitungan (Algoritma Genetika dan Simulated Annealing) adalah sangat baru selain bidang ini berkembang pesat.



Program Motor Stepper

;     Program Menjalankan Motor Stepper Per-derajat dan Per-Step
;                  Tugas Mata Kuliah Sistem Mikroprosesor
;     Dirancang dan direalisasikan oleh Didi Irwanto dan Ilham
;       Teknik Elektronika Industri Politeknik Negeri Jakarta
;===================================================================


            ORG   0H
            MOV   70H,#80H
            MOV   71H,#10H
        MOV     20H,#2
        MOV     21H,#10
        MOV     22H,#1

SCANz:          CALL ISI_BUFFER
            CALL    DISPLAY
            setb      p3.1
            CLR    P3.0
            MOV   C,P3.3
        JC      LAB1Z
        MOV       72h,#0
            setb      p3.0
            JMP     KEY_BINTANG

LAB1Z:  SETB    P3.0
            CLR    P3.1
            MOV   C,P3.3
        JC      SCANZ
            MOV   72h,#0FFH
        setb          p3.1
            JMP     KEY_BINTANG


KEY_BINTANG:
            mov     77h,#09
stopp:  CALL DELAY
            CALL DELAY
            djnz     77h,stopp
            MOV   49H,#00H
            MOV   50H,#00H
            MOV   51H,#00H
            MOV   52H,#00H
            MOV   59H,#00H
            MOV   60H,#00H
            MOV   61H,#00H
            MOV   62H,#00H      
            MOV   30H,#22H
            MOV   31H,#22H
            MOV   32H,#22H
            MOV   33H,#22H
            MOV   20H,#00H
            MOV   21H,#00H
            MOV   22H,#00H
            MOV   23H,#00H





;======================== scanning Keypad ===========================

SCAN:           
            CLR    P3.0
            MOV   C,P3.3
            JC        LAB1
            LCALL           KEY1
LAB1: MOV   C,P3.4
            JC        LAB2
            LCALL           KEY4
LAB2: MOV   C,P3.5
            JC        LAB3
            LCALL           KEY7
LAB3: MOV   C,P3.6
            JC        LAB4
            MOV   A,72H
            CJNE  A,#0FFH,PERSETEP
            LCALL   BINTANG
            JMP     LAB4
PERSETEP:
            LCALL           BINTANG_STEP

LAB4: SETB  P3.0
            CLR    P3.1
            MOV   C, P3.3
            JC        LAB5
            LCALL           KEY2
LAB5: MOV   C, P3.4
            JC        LAB6
            LCALL           KEY5
LAB6: MOV   C, P3.5
            JC        LAB7
            LCALL           KEY8
LAB7: MOV   C, P3.6
            JC        LAB8
            LCALL           KEY0
LAB8: SETB  P3.1
            CLR    P3.2
            MOV   C, P3.3
            JC        LAB9
            LCALL           KEY3
LAB9: MOV   C, P3.4
            JC        LAB10
            LCALL           KEY6
LAB10:           MOV   C, P3.5
            JC        LAB11
            LCALL           KEY9
LAB11:           MOV   C, P3.6
            JC        LAB12
            mov     a,72h
            CJNE  A,#0FFH,PERSETEx
            LCALL   key_pagar
            JMP     LAB12
PERSETEx:
            LCALL           PAGAR_STEP
           
LAB12:           SETB  P3.2
            LCALL           DISPLAY      
            LJMP  SCAN

;=================================================================


;============== Penanganan Penekanan Masing2 Tombol===============

KEY0:
            LCALL           XCH_DATA
            MOV   20H, #00H
            CALL             GESERAN
            MOV   49H,#00H
            LCALL           ISI_BUFFER
            LCALL           DISPLAY
            RET

KEY1:
            LCALL           XCH_DATA
            MOV   20H,#01H
            CALL             GESERAN
            MOV   49H,#01H
            LCALL           ISI_BUFFER
            LCALL           DISPLAY
            RET

KEY2:
            LCALL           XCH_DATA
            MOV   20H, #02H
            CALL             GESERAN
            MOV   49H,#02H
            LCALL           ISI_BUFFER
            LCALL           DISPLAY
            RET

KEY3:
            LCALL           XCH_DATA
            MOV   20H, #03H
            CALL             GESERAN
            MOV   49H,#03H
            LCALL           ISI_BUFFER
            LCALL           DISPLAY
            RET

KEY4:
            LCALL           XCH_DATA
            MOV   20H, #04H
            CALL             GESERAN
            MOV   49H,#04H
            LCALL           ISI_BUFFER
            LCALL           DISPLAY
            RET

KEY5:
            LCALL           XCH_DATA
            MOV   20H, #05H
            CALL             GESERAN
            MOV   49H,#05H
            LCALL           ISI_BUFFER
            LCALL           DISPLAY
            RET


KEY6:
            LCALL           XCH_DATA
            MOV   20H, #06H
            CALL             GESERAN
            MOV   49H,#06H
            LCALL           ISI_BUFFER
            LCALL           DISPLAY
            RET

KEY7:
            LCALL           XCH_DATA
            MOV   20H, #07H
            CALL             GESERAN
            MOV   49H,#07H
            LCALL           ISI_BUFFER
            LCALL           DISPLAY
            RET

KEY8:
            LCALL           XCH_DATA
            MOV   20H,#08H
            CALL             GESERAN
            MOV   49H,#08H
            LCALL           ISI_BUFFER
            LCALL           DISPLAY
            RET

KEY9:
            LCALL           XCH_DATA
            MOV   20H, #09H
            CALL             GESERAN
            MOV   49H,#09H
            LCALL           ISI_BUFFER
            LCALL           DISPLAY
            RET
;===============================================================



;=======================Ke Kiri Per Derajat=====================

BINTANG:CALL    PULUH
            CJNE  A,#0,RRR
            JMP     TTT
RRR:    CALL    KIRI

TTT:    CALL    HITUNGAN
            CJNE    A,#0,WWW
            JMP     OOO
WWW:            CALL    KIRI

OOO:    CALL           SATUAN
            CJNE  A,#0,HHHHH
            JMP     LLLL
HHHHH:        CALL YG_SATUAN
            call       long_dl
LLLL: RET
;====================================================================



;===============================Ke Kiri Per Step=====================
BINTANG_STEP:
            MOV   B,51H
            mov     a,b
            cjne      a,#0,bisa_deh1
            jmp      lewat1
bisa_deh1:
            MOV   R0,#100
            CALL kiri_ST
lewat1:
            MOV   B,50H
            mov     a,b
            cjne      a,#0,bisa_deh2
            jmp      lewat2
bisa_deh2:
            MOV   R0,#10
            CALL kiri_ST
lewat2:
            MOV   B,49H
            mov     a,b
            cjne      a,#0,bisa_deh3
            jmp      lewat3
bisa_deh3:
            MOV   R0,#1
            CALL kiri_ST
            call       long_dl
lewat3:            RET


kiri_ST:
            MOV   A,70H
MASIH:          MOV   73H,B
LAGIX:          RL       A
            CJNE  A,#10H,OKEH
            MOV   A,#01
OKEH:
            MOV   P1,A
            MOV   P2,A
            CALL DELAY
            DJNZ  73H,LAGIX
            DJNZ  R0,MASIH
            MOV   70H,A
            MOV   71H,A
            RET
;==================================================================


;=======================Ke Kanan Per Derajat========================

KEY_PAGAR:
            CALL    PULUH
            CJNE  A,#0,RRRY
            JMP     TTTY
RRRY:   CALL    KANAN

TTTY:   CALL    HITUNGAN
            CJNE    A,#0,WWWY
            JMP     OOOY
WWWY:         CALL    KANAN
OOOY:


            CALL SATUAN
            CJNE  A,#0,HHHHHY
            JMP     LLLLY
HHHHHY:     CALL YG_SATUAN_KANAN
            call       long_dl
LLLLY:          RET
;==================================================================


;===============================Ke Kanan Per Step=====================
PAGAR_STEP:
            MOV   B,51H
            mov     a,b
            cjne      a,#0,Zbisa_deh1
            jmp      Zlewat1
Zbisa_deh1:
            MOV   R0,#100
            CALL kANAN_ST
Zlewat1:
            MOV   B,50H
            mov     a,b
            cjne      a,#0,Zbisa_deh2
            jmp      Zlewat2
Zbisa_deh2:
            MOV   R0,#10
            CALL kANAN_ST
Zlewat2:
            MOV   B,49H
            mov     a,b
            cjne      a,#0,Zbisa_deh3
            jmp      Zlewat3
Zbisa_deh3:
            MOV   R0,#1
            CALL kANAN_ST
            call       long_dl
Zlewat3:RET


KANAN_ST:
            MOV   A,71H
ZMASIH:       MOV   73H,B
ZLAGIX:        RR       A
            CJNE  A,#80H,ZOKEH
            MOV   A,#08H
ZOKEH:
            MOV   P1,A
            MOV   P2,A
            CALL DELAY
            DJNZ  73H,ZLAGIX
            DJNZ  R0,ZMASIH
            MOV   70H,A
            MOV   71H,A
            RET





;==================================================================



;================Menghitung Pengubahan Derajat ke Step=============

SATUAN:
clr        a
MOV   DPTR,#STEP
            MOV   A,49H
            ADD   A,50H
            ADD   A,51H
            MOVC            A,@A+DPTR
            MOV   60H,A
            RET

PULUH:
            MOV   A,50H
;           CJNE  A,#9H,SEMBILAN
;           MOV   61H,#0AH

;           MOV   R0,#0AH
;           RET
SEMBILAN:MOV     61H,50H
            MOV   R0,61H
            RET

HITUNGAN:
            MOV   DPTR,#PERTAMA
            CLR    A
        MOV     A,51H
            MOVC            A,@A+DPTR
            MOV   62H,A
            MOV   R0,62H          
            RET
;=============================================================


;=============Penggeseran Memori saat Penekanan tombol==========

GESERAN:
        MOV     51H,50H
        MOV     50H,49H
            RET
;===============================================================


;============= Gerakan ke Kiri Derajat: Ratusan & Puluhan=========

KIRI:  MOV   A,70H
MULAI_KIRI:
        MOV     40H,#0
        RL      A
        CJNE    A,#10H,XSATU
        MOV     A,#01
XSATU:  MOV     P2,A
        MOV     P1,A
            CALL DELAY
        RL      A
        CJNE    A,#10H,XDUA
        MOV     A,#01
XDUA:   MOV     P2,A
        MOV     P1,A
            CALL DELAY         
        RL      A
        CJNE    A,#10H,XTIGA
        MOV     A,#01
XTIGA:  MOV     P2,A
        MOV     P1,A
            CALL DELAY
        RL      A
        CJNE    A,#10H,XEMPAT
        MOV     A,#01
XEMPAT: MOV     P2,A
        MOV     P1,A
            CALL DELAY
        RL      A
        CJNE    A,#10H,XLIMA
        MOV     A,#01
XLIMA:  MOV     P2,A
        MOV     P1,A
            CALL DELAY
        DJNZ    r0,MULAI_KIRI
            MOV   40H,#1
            MOV   70H,A
            MOV   71H,A
            RET
;==========================================================

;===== Gerakan ke Kanan : Derajat, Ratusan dan puluhannya=============

KANAN:        MOV   A,71H
MULAI_KANAN:
        MOV     40H,#0
        RR      A
        CJNE    A,#80H,YSATU
        MOV     A,#08
YSATU:  MOV     P2,A
        MOV     P1,A
            CALL DELAY
        RR      A
        CJNE    A,#80H,YDUA
        MOV     A,#08
YDUA:   MOV     P2,A
        MOV     P1,A
            CALL DELAY         
        RR      A
        CJNE    A,#80H,YTIGA
        MOV     A,#08
YTIGA:  MOV     P2,A
        MOV     P1,A
            CALL DELAY
        RR      A
        CJNE    A,#80H,YEMPAT
        MOV     A,#08
YEMPAT: MOV     P2,A
        MOV     P1,A
            CALL DELAY
        RR      A
        CJNE    A,#80H,YLIMA
        MOV     A,#08
YLIMA:  MOV     P2,A
        MOV     P1,A
            CALL DELAY
        DJNZ    r0,MULAI_KANAN
            MOV   40H,#1
            MOV   70H,A
            MOV   71H,A
            RET
;=============================================================


; ========== Gerakan satuan Kiri==============================

YG_SATUAN:
            MOV   A,70H
YG_SATUAN_K:
        RL      A
        CJNE    A,#10H,XSATUZ
        MOV     A,#01
XSATUZ: MOV     P2,A
        MOV     P1,A
            CALL DELAY
            DJNZ  60H,YG_SATUAN_K
            MOV   70H,A
            mov     71h,a
            RET    
;=============================================================

;=================== Gerakan Satuan Kanan=====================
YG_SATUAN_KANAN:
            MOV   A,71H
YG_SATUAN_L:
        RR      A
        CJNE    A,#80H,YSATUZ
        MOV     A,#08
YSATUZ: MOV     P2,A
        MOV     P1,A
            CALL DELAY
            DJNZ  60H,YG_SATUAN_L
            MOV   70H,A
            MOV   71H,A
            RET    
;=============================================================


;================== Delay ================================

delay:  mov r1,#20h
del1:    mov R7,#0h
MMM: djnz r7,MMM ; R7=R7-1 bila <> 0 ke label delay
            djnz r1,del1                
            RET
;=========================================================
long_dl:
            mov     77h,#10
lagixp: call       delay
            djnz     77h,lagixp
            ret
;=========================================================
;                       Berbagai subrutin untuk Display
;=========================================================

XCH_DATA:
            MOV   R2,#03H
            MOV   R1,#22H
            MOV   R0,#23H
XCH_DATA1:          
            MOV   A,@R0
            XCH   A,@R1
            ANL    A,#0FH
            MOV   @R0,A
            DEC    R1
            DEC    R0
            DJNZ  R2, XCH_DATA1
            RET
;

ISI_BUFFER:
            MOV   24H, #04H
            MOV   R1, #20H
            MOV   R0, #30H
ISI_BUFFER1:         
            MOV   A, @R1
            MOVC            A,@A+DPTR
            MOV   @R0, A
            INC     R0
            INC     R1
            DJNZ  24H, ISI_BUFFER1
            RET


DISPLAY:
            MOV   DPTR,#ANGKA
            MOV   25H, #09FH
DISPLAY1:
            LCALL           DIS8SEG
            DJNZ  25H, DISPLAY1
            RET

DIS8SEG:
            MOV   26H, #03H
            MOV   R1, #30H
            MOV   27H, #0FEH
DIS8SEG1:
            MOV   A, @R1
            MOV   P0, A
            INC     R1
            MOV   A, 27H
            MOV   P1, A
            SETB  C
            RLC    A
            MOV   27H, A
            LCALL           DELAYDP
            MOV   P0, #0FFH
            MOV   P1, #0FFH
            DJNZ  26H, DIS8SEG1
            RET

; ----------------------Delay Display----------------------------
DELAYDP:
            MOV   28H, #0E0H
DELAY1:      
            DJNZ  28H, DELAY1
            RET
;----------------------------------------------------------------

;=============================================================
;                                   database
;-------------------------------------------------------------
ANGKA:
        DB      22H,77H,0A4H,25H,71H,29H,28H,67H,20H,21H,0ffh

STEP:
            DB      0H,1H,1H,2H,2H,3H,3H,4H,4H,5H,6H,6H;
            DB      7H,7H,8H,8H,9H,9H,0AH,0BH,0BH,0CH,0CH;
            DB      0DH,0DH,0EH,0EH,0FH,10H,10H,11H,12H,12H
PERTAMA:
DB      00H,0BH,16H,21H,2CH,37H,40H,4DH,58H,64H;

END

Pengertian Motor Stepper


Motor stepper adalah motor yang digunakan sebagai penggerak/pemutar. Prinsip kerja motor stepper mirip dengan motor DC, sama-sama dicatu dengan tegangan DC untuk memperoleh medan magnet. Bila motor DC memiliki magnet tetap pada stator, motor stepper mempunyai magnet tetap pada rotor. Motor stepper dinyatakan dengan spesifikasi : “berapa phasa “, “berapa derajat perstep”, “berapa volt tegangan catu untuk tiap lilitan” dan ”berapa ampere/miliampere arus yang dibutuhkan untuk tiap lilitan”. Motor stepper tidak dapat bergerak sendirinya, tetapi bergerak secara per-step sesuai dengan spesifikasinya, dan bergerak dari satu step ke step berikutnya memerlukan waktu, serta menghasilkan torsi yang besar pada kecepatan rendah. Motor stepper juga memiliki karakteristik yang lain yaitu torsi penahan, yang memungkinkan menahan posisinya. Hal ini sangat berguna untuk aplikasi dimana suatu sistem memerlukan keadaan start dan stop (Trianto, 2005).
Motor stepper tidak merespon sinyal clock dan mempunyai beberapa lilitan dimana lilitan-lilitan tersebut harus dicatu (tegangan) dahulu dengan suatu urutan tertentu agar dapat berotasi. Membalik urutan pemberian tegangan tersebut akan menyebabkan putaran motor stepper yang berbalik arah. Jika sinyal kontrol tidak terkirim sesuai dengan perintah maka motor stepper tidak akan berputar secara tepat, mungkin hanya akan bergetar dan tidak bergerak. Untuk mengontrol motor stepper digunakan suatu rangkaian driver yang menangani kebutuhan arus dan tegangan (Trianto, 2005).
Karakteristik dari motor stepper menurut Trianto adalah sebagai berikut:
a.        Tegangan
Tiap motor stepper mempunyai tegangan rata-rata yang tertulis pada tiap unitnya atau tercantum pada datasheet masing-masing motor stepper. Tegangan rata-rata ini harus diperhatikan dengan seksama karena bila melebihi dari tegangan rata-rata ini akan menimbulkan panas yang menyebabkan kinerja putarannya tidak maksimal atau bahkan motor stepper akan rusak dengan sendirinya.
b.        Resistansi
Resistansi per lilitan adalah karakteristik yang lain dari motor stepper. Resistansi ini akan menentukan arus yang mengalir, selain itu juga akan mempengaruhi torsi dan kecepatan maksimum dan motor stepper.
c.        Derajat per step
Derajat per step adalah faktor terpenting dalam pemilihan motor stepper sesuai dengan aplikasinya. Tiap-tiap motor stepper mempunyai spesifikasi masing-masing, antara lain: 0.72° per step, 1.8° per step, 3.6° per step, 7.5° per step, 15° per step, dan bahkan ada yang 90° per step. Dalam pengoperasiannya kita dapat menggunakan 2 prinsip yaitu full step atau half step. Dengan full step berarti motor stepper berputar sesuai dengan spesifikasi derajat per stepnya, sedangkan half step berarti motor stepper berputar setengah derajat per step dari spesifikasi motor stepper tersebut.
Motor stepper dibedakan menjadi dua kategori besar yaitu: magnet permanen dan reluktansi variabel. Tipe magnet permanen terbagi menjadi dua motor stepper yaitu motor stepper unipolar dan bipolar.
Motor stepper unipolar sangat mudah untuk dikontrol dengan menggunakan rangkaian counter ‘-n’. Motor stepper unipolar mempunyai karakteristik khusus yaitu berupa lilitan center-tapped dan 1 lilitan sebagai common. Lilitan common akan mencatu tegangan pada center-tapped dan sebagai ground adalah rangkaian drivernya.
Motor stepper unipolar dapat dikenali dengan mengetahui adanya lilitan center-tapped. Jumlah phase dan motor stepper adalah dua kali dan jumlah koilnya. Umumnya pada motor stepper unipolar terdapat dua buah koil (Trianto, 2005).
Gambar 2.4.  Susunan koil motor stepper unipolar

Tabel 2.2.  Pola 1-phase putaran motor stepper unipolar

Pada prinsipnya ada dua macam cara kerja motor stepper unipolar, yaitu full-step dan half-step. Terlihat pada Tabel 2.3. dan Tabel 2.4.

Tabel 2.3. Pemberian tegangan untuk operasi full-step

FULLSTEP

Tegangan yang diberikan pada lilitan

Arah putar searah jarum jam
Arah putar melawan jarum jam

L3
L2
L1
L0
L3
L2
L1
L0
1
1
0
0
0
0
0
0
1
2
0
1
0
0
0
0
1
0
3
0
0
1
0
0
1
0
0
4
0
0
0
1
1
0
0
0

Pada full step, suatu titik pada sebuah kutub magnet di rotor akan kembali mendapat tarikan medan magnet stator pada lilitan yang sama setelah step ke 4., dan berikutnya dapat diberikan lagi mulai dari step 1. Setiap step, rotor bergerak searah atau berlawanan dengan jarum jam sebesar spesifikasi derajat per step dan motor stepper. Setiap step hanya menarik sebuah kutub saja. Tegangan ‘1’ adalah menunjukkan logika dalam level Transistor Transistor Logic (TTL). Besar tegangan sesungguhnya diatur dengan spesifikasi motor stepper yang dipakai, misalnya dengan menggunakan buffer.

Tabel 2.4. Pemberian tegangan untuk operasi half-step

HALFSTEP

Tegangan yang diberikan pada lilitan

Arah putar searah jarum jam
Arah putar melawan jarum jam

L3
L2
L1
L0
L3
L2
L1
L0
1
1
0
0
0
0
0
0
1
2
1
1
0
0
0
0
1
1
3
0
1
0
0
0
0
1
0
4
0
1
1
0
1
1
1
0
5
0
0
1
0
1
1
0
0
6
0
0
1
1
1
1
0
0
7
0
0
0
1
0
0
0
0
8
1
0
0
1
0
0
0
1

Untuk half step, setiap kutub magnet pada rotor akan kembali mendapatkan tarikan dan medan magnet lilitan yang sama setelah step ke 8. berikutnya kembali mulai step 1. Setiap step posisi rotor berubah sebesar setengah derajat dan spesifikasi derajat per step motor stepper.
Berbeda dengan motor stepper unipolar, motor stepper bipolar sangat sulit dalam pengontrolannya. Motor stepper jenis ini memerlukan rangkaian driver yang kompleks. Keuntungan motor stepper bipolar adalah ukurannya yang besar dan dapat menghasilkan torsi yang besar daripada motor stepper unipolar. Motor stepper bipolar di desain dengan koil yang terpisah yang akan di catu dan dua arah (polaritas harus dibalik selama pencatuan). Motor stepper bipolar menggunakan logika yang sama seperti motor stepper unipolar yaitu hanya ‘0’ dan ‘1’ untuk merespon koilnya


Gambar 2.5. Susunan koil motor stepper bipolar

Tabel 2.5. Pola phase putaran motor stepper bipolar

Reluktansi variabel motor stepper, juga sering disebut sebagai motor hibrid. Motor stepper jenis ini mudah dikontrol jika dibandingkan dengan jenis motor stepper yang lain. Rangkaian driver untuk mencatu tiap-tiap lilitannya sangatlah sederhana. Prinsip kerjanya adalah driver mencatu tiap lilitan secara bergantian. Jika diputar dengan tangan, terlihat motor ini seperti motor DC, berputar sangat bebas dan tidak terasa adanya step. Motor stepper jenis ini tidak memiliki magnet permanen seperti pada motor stepper unipolar dan bipolar (Trianto, 2005).

Tabel 2.6. Pola 1-phase reluktansi variable motor stepper


Gambar 2.6. Susunan koil reluktansi variable motor stepper


2.2.      Driver Motor Stepper
Secara teoritis, sebuah motor stepper dapat digerakkan langsung oleh mikrokontroller (Trianto, 2005). Dalam kenyataannya, arus dan tegangan yang dikeluarkan oleh mikrokontroller terlalu kecil untuk menggerakkan sebuah motor stepper. Gerbang-gerbang Transistor Transistor Logic (TTL) mikrokontroller hanya mampu mengeluarkan arus dalam orde mili-ampere dan tegangan antara 2 sampai 2,5 Volt. Sementara itu untuk menggerakkan motor stepper diperlukan arus yang lebih besar (dalam orde ampere) dan tegangan berkisar 5 sampai 24 Volt. Untuk mengatasi masalah tersebut, diperlukan sebuah piranti tambahan yang memenuhi kebutuhan arus dan tegangan yang cukup besar. Rangkaian driver motor stepper merupakan rangkaian “open collector”, dimana output rangkaian ini terhubung dengan ground untuk mencatu lilitan-lilitan motor stepper.


Gambar 2.7. Skema rangkaian driver motor stepper

Arus keluaran mikrokontroler tidak dapat menggerakkan motor stepper. Maka diperlukan driver untuk mencatu arus motor stepper. Di sini digunakan chip IC ULN2003 sebagai stepper motor driver.
ULN2003 adalah sebuah IC yang berupa darlington array sebanyak 7 buah. Berikut ini adalah gambar IC ULN 2003.


Gambar 2.8. Konfigurasi pin dan gerbang ULN 2003
ULN2003 mempunyai arus keluaran sampai 500 mA. Pada saat ketujuh driver tersebut ON, IC ini dapat mencatu daya sampai 230 W (350 mA x 95 V). ULN2003 mempunyai resistor input serial yang dapat dipilih untuk operasi TTL atau CMOS 5 V.

Motor stepper terdiri rotor dan stator yang bekerja berdasar sifat magnet, dimana magnet sejenis tolak menolak dan yang berlawanan tarik menarik. Kumparan pada stator membentuk medan magnet saat diberi arus,sehingga motor yang menggunakan magnet akan bergerak untuk mencari kestabilan agar kutub magnet bersesuaian dengan medan magnet yang terjadi. Arah puran motor stepper ditentukan oleh arah urutan arus yang diberikan pada input motor stepper
            Motor stepper mempunyai 4 input dan satu input tegangan. Motor stepper dapat berputar kekiri maupun kekanan sesuai dengan input yang diberikan. Untuk perputaran kearah kiri dengan memberikan input ring counter dengan arah kekiri dan untuk berputar kekanan dengan memberikan input ring counter dengan arah kekanan
            Motor stepper bergerak setiap satu langkah dengan besar sudut 1,8ยบ jadi untuk berputar satu putaran penuh membutuhkan 200 step. Dengan motor stepper kita dapat memutar motor sesuai dengan yang diinginkan.  Kecepatan motor stepper juga dapat diubah sesuai dengan kebutuhan. Dengan mengubah waktu perpindahan dari suatu input ke input lain pada motor stepper.
Ada dua mode dalam menggerakkan motor stepper yaiyu mode full step dan mode half step. Pada mode full step perputaran motor lebih kasar dibandingkan dengan mode half step. Ini dikarenakan pada mode half step untuk menggerakkan satu step dibutuhkan  dua kondisi sehingga perputaran ledih halus, sedangkan pada mode full step torsinya lebih besar dibandingkan dengan mode half step. Berikut tabel input untuk mode full step dan mode half step





Mode full step

Input 1
Input 2
Input 2
Input 4
NA
0
1
1
1
NB
1
0
1
1
NC
1
1
0
1
ND
1
1
1
0















Input 1
Inpu t2
Input 3
Input 4
NA
0
1
1
1
NB
0
0
1
1
NC
1
0
1
1
ND
1
0
0
1
NA
1
1
0
1
NB
1
1
0
0
NC
1
1
1
0
ND
0
1
1
0