Anda di halaman 1dari 26

BAB VI

MOTOR LANGKAH (STEPPER MOTOR)

Motor langkah adalah motor DC atau juga motor AC sinkron dengan terdiri beberapa
kutub, yang dapat bergerak langkah perlangkah yang terprogram (gerak robotik) baik
berputar ke kanan maupun ke kiri.

Rotor terdiri dari material soft magnetic dengan beberapa kutub dan stator terdiri dari
kelipatan kutub dari reluctansi motor. Untuk motor step modern terdiri system hybrid , yang
mempunyai magnet permanen dan inti baja lunak. Untuk memperoleh putaran torsi penuh,
maka pada stepper motor harus diberi arus penuh setiap step. Lilitan induksi menyebabkan
EMF dengan munculnya gerkan rotor dan cenderung tahan terhadap perubahan arus driver,
sehingga kecepatan jika diumpani dengan arus penuh.

Motor step dapat digunakan untuk memindahkan sebuah benda (beban) dengan jarak
perpindahan yang kecil. Berbeda halnya dengan motor-motor lain, yang bergerak dengan
putaran yang kontinyu/mulus, motor langkah bergerak dengan putara n yang kaku. motor
langkah bergerak dari posisi berikutnya seperti gerak melangkah (step). Karena itulah motor
ini dinamakan motor langkah (stepper motor).
Motor langkah banyak sekali digunakan pada aplikasi-aplikasi elektronik seperti printer,
floppy drive, cdrom drive, pengeboran terprogram mesin CNC, gerak robotik dan banyak lagi
alat-alat yang lain. Berikut contoh salah satu jenis gambar dari motor langkah.

Gambar 6.1. Motor langkah


Motor langkah yang umum digunakan mempunyai jangkauan langkah berputar antara
0,9 derajat langkah pendek dan 1,8 derajat disebut langkah panjang. Namun dapat juga
sampai 45 derajat. Motor-motor tersebut adalah motor langkah dua atau empat fase. Secara
teoritis, sebuah motor langkah berukuran kecil dapat digerakkan langsung oleh mikroprosesor
atau mikrokontroler.
Motor step secara akurat disinkronisasi dengan keluaran sinyal pulsa dari kontroler ke
driver motor step (lihat Gambar 2) dengan kemampuan menghasilkan Torsi pada kecepatan
rendah dengan getran rendah. Sangat cocok untukpemakaian posisi cepat tepat dan jarak
dekat.

Gambar 6.2. Pulsa step dihasilkan dari pemrograman ke pengontrol (mikrokontroler) terus
ke driver yang menguatkan arus dengan rangkaian Darlington.

Dalam kenyataannya, arus dan tegangan yang dapat dikeluarkan oleh alat pemroses
tadi masih terlalu kecil. Sebagai perbandingan, gerbang-gerbang logika tipe TTL hanya
mampu mengeluarkan arus dalam orde mili-ampere dan tegangan antara 2 sampai 5 V.
Sementara itu untuk menggerakkan motor langkah dibutuhkan arus yang cukup besar (dalam
orde ampere) dengan tegangan berkisar 5-24 V atau kelipatan dari 12 V DC.
Untuk mengatasi masalah tersebut, diperlukan sebuah piranti tambahan yang dapat
memenuhi kebutuhan arus dan tegangan tadi yaitu dengan menambahkan rangkaian
penggerak seperti transistor yang dipasang secara Darlington, rangkaian penggerak gabungan
atau menggunakan IC-IC yang kompatibel. Gambar 6.3. berikut skema-skema rangkaian
penggerak motor langkah.

Gambar 6.3. Rangkaian interface motor langkah dengan transistor


Gambar 6.4. Skema gabungan penggerak motor langkah

Pada Gambar 6.4. skema diatas masing-masing mempunyai kelebihan dan


kekurangan. Jika ingin murah tapi kita harus buat program tambahan seperti waktu tunda
untuk pergeseran pulsanya pada setiap pin kaki motor langkah dan program looping atau
motor langkah ingin diputar berapa derajat, sedangkan jika menggunakan skema gabungan
pada gambar 3 kita hanya mengatur control mode-nya ingin diputar kekiri atau kekanan (lihat
data sheet 74LS194) dan untuk waktu tundanya diatur pada clock yang dibangkitkan oleh IC
555 kita bisa atur pada potensio yang digunakan. Selain I/O lebih sedikit dibanding
menggunakan transistor, cukup dua pin control yang kita kendalikan. Pada skema aslinya ada
rangkaian tambahan menggunakan IC 7474 untuk mengatur putar kanan dan kiri, tapi jika
menggunakan skema yang diatas juga dapat digunakan dan telah dibuktikan. Lihat lengkap
skema penggerak gabungan motor langkah.

Fase-fase Motor Langkah


Sebuah motor langkah digerakkan dari posisi berikutnya dengan mengubah arus yang
terhubung ke masing-masing fase. pengubahan arus tersebut mempunyai pola/kombinasi
tertentu. Berikut ini adalah untuk menggerakkan sebuah motor langkah 4-fase.
Motor langkah atau stepper motor, banyak digunakan dalam berbagai macam aplikasi,
terutama aplikasi-aplikasi yang menuntut jumlah putaran tertentu dan tepat, biasanya
berkaitan dengan posisi yang harus akurat. Suatu contoh dapat dijumpai pada alat kemudi
cakram atau disk drive, untuk proses pembacaan dan/atau penulisan data ke/dari cakram,
head baca-tulis ditempatkan pada tempat yang tepat di atas jalur atau track pada cakram
(diskette), untuk keperluan tersebut, head dihubungkan dengan sebuah motor langkah.
Kecepatan motor langkah pada dasarnya ditentukan oleh kecepatan pemberian data
pada komutatornya. Semakin cepat data yang diberikan maka akan semakin cepat pula
putarannya. Kebanyakan kecepatan motor langkah dapat diatur dalam daerah frekuensi audio
dan akan menghasilkan putaran yang cukup cepat.

 
Lazimnya motor step digunakan mellui program dengan mikrokontroler ATMEGA
8051 dengan motor stepper, keyboard, dan DAC (Digital to Analog Converter).

Menghubungkan Motor Stepper


 

Motor Stepper sekarang banyak digunakan unuk mentranslasikan pulsa-pulsa listrik


menjadi gerakan mekanis. Dalam aplikasi semacam Disk Drive, Printer Dot Matrix, dan
robot, motor stepper digunakan sebagai kendali posisi.
Setiap motor stepper memiliki rotor (bagian yang berputar) dengan magnet permanen atau
magnet nonpermanen, dan stator (bagian yang diam) dengan dikelingi oleh kumparan-
kumparan. Lihat Gambar 6-1. Kebanyakan dari motor stepper memiliki 4 buah kumparan
stator atau kelipatannya, yang dari keempatnya salah satu ujung kumparan dihubungkan
menjadi 1 yang kemudian dinamakan Common. Lihat gambar 6-5. Type motor stepper
seperti ini biasa dinamakan sebagai "motor stepper 4 fasa".
 

Gambar 6-5, Penjajaran rotor


 
Motor stepper ini memiliki hanya 2 buah kumparan. Lihat gambar 6.7. Yang masing-
masingnya diberikan center tap yang membagi 2 masing-masing kumparan besar. Sehingga
dari kumparan tersebut kita mendapatkan 3 buah terminal. Dengan berdasar pada center tap
ini maka kumparan dapat bekerja sebagai 4 buah kumparan kecil. Dengan demikian masing-
masing kumparan kecil dapat merubah medan magnet yang berpengaruh pada rotor.
Umumnya center tap ini dihubungkan pada sumber arus. Dan ujung kumparan lainnya akan
dapat merubah medan magnet jika di-bumi-kan. Setiap perubaha terkecil dalam gerakan rotor
oleh karena perubahan magnet ini disebut dengan step.
 
Gerakan berputar dapat diselenggarakan dengan melakukan urutan medan magnet, yang
didapat dari 4 kumparan ini. Ada banyak cara urutan untuk menggerakkan motor ini, dengan
kecepatan berbeda dan kekuatan yang juga berbeda. Tabel 13-1 menunjukkan urutan 4-step
normal.
 
Table 13-1: Urutan 4-step Normal
Step #   Gul.A    Gul.B     Gul.C   Gul.D 
1          1        0        0        1
2          1        1        0        0
3          0        1        1        0
4          0        0        1        1
Catatan : Ke kanan : Step 1 > 2 > 3 > 4. Ke kiri : Step 4 > 3 > 2 > 1.
 
 
Table 6-2: Sudut Step dari Motor Stepper
Sudut Step        Step per Revolusi
0.72              500
1.8               200
2.0               180
2.5               144
5.0               72
7.5               48
15                24
 
 

Gambar 6-6: Konfigurasi gulungan Stator


 
 
Gambar 6.7: Menghubungkan 8051 pada Motor Stepper
 
 
Harap dicatat pula bahwa kita dapat memulai urutan seperti dalam Tabel 13-1 dari
step mana saja. Namun tetap setelah itu adalah step berikutnya, dan tidak boleh melompat-
lompat. Misalnya untuk putaran ke kanan, dan kita mulai dari step 3. Maka step berikutnya
adalah harus step 4. Dan jika berputar ke kiri, maka haruslah step ke 2. Begitulah seterusnya.
 
 

Contoh 6-1
 
Sesuai dengan hubungan 8051 dan motor stepper seperti pada gambar 13-3, maka buatkan kode program untuk
membuatnya berputar secara teru menerus.
 
jawaban:
 
Langkah berikut ini menunjukkan hubungan 8051 dengan motor stepper, dan
pemrogramannya.

1.    Gunakan Ohmmeter untuk mengukur resistansi kumparan motor. Cara ini perlu dilakukan untuk
menemukan Kabel mana yang berupa COM.

2.    Kabel Common, dihubungkan ke sisi positif pada sumber daya khusus untuk motor. Beberapa motor
menggunakan 5 Volts. Beberapa lagi ada yang butuh 12 V dan 24 V.

3.    4 kabel lainnya yang merupakan kabel untuk gulungan statornya dikontrol oleh 4-
bit dari port 8051 (P1.0-P1.3). Namun, karena 8051 sangat minim akan
arus untuk dapat langsung menggerakkan gulungan motor, maka kita harus
menggunakan driver seperti ULN2003 untuk dapat memberikan arus yang
cukup bagi gulungan. Disamping ULN2003, kita dapat membuat driver
sendiri dengan 4 buah transistor, seperti yang diperlihatkan oleh
gambar 13-4. Jika kita menggunakan transistor, maka kita perlu untuk
menambahkan dioda pada masing-masing transistor. Dioda ini digunakan
untuk mengindari adanya arus induksi yang sangat besar (EMF = Elektro
Magnetic Feedback) sehingga masuk ke transistor dan kemudian dapat
merusakkanya. Jika kita menggunakan ULN2003, kita tidak perlu dioda
lagi. Karena di dalam ULN2003 ini sudah disediakan dioda, sehingga
dapat langsung dimanfaatkan.

 
               MOV A,#66h          ;isikan dengan urutan step
ULANG:         MOV P1,A            ;tulis urutan itu pada port
               RR  A               ;Putar searah jarum jam
               ACALL DELAY         ;tunggu sejenak
               SJMP ULANG          ;ulang
               …
DELAY:         MOV R2,#100
H1:            MOV R3,#255
H2:            DJNZ R3,H2
               DJNZ R2,H1
               RET
 
Merubah-rubah nilai dari DELAY akan dapat menrubah kecepatan putaran.
Kita juga dapat menggunakan instruksi SETB dan CLR untuk menggantikan RRA untuk
menbuat urutan yang lebih baik.
 

 
 
Sudut Step
Berapa jauh gerakan pada motor stepper dalam 1 step-nya? Hal itu tergantung oleh
konstruksi internal dari motor, khususnya jumlah gigi pada stator dan rotor. Sudut Step
adalah derajat minimum putaran dalam 1 step. Beberapa motor memiliki sudut step berbeda.
Table 13-2 menunjukan beberapa sudut step dari beberapa jenis motor. Dalam Table 13-2,
perhatikan tentang step per revolution. Ini adalah jumlah total step yang dibutuhkan untuk
berputar dalam 1 putaran penuh atau 360 derajat.
Dan harap dicatat pula bahwa di masa depan atas prakarsa seseorang, motor stepper
tidak perlu lagi lebih banyak terminal untuk statornya untuk Step yang sama atau bahkan
untuk step yang lebih sedikit. Semua motor yang didiskusikan di BAB ini adalah motor yang
memiliki 4 kabel ditambah 1-2 kabel common (motor 4 fasa). Nanti kita akan mendiskusikan
terminologi yang berhubungan dengan motor stepper untuk mendalaminya.
Step per Detik dan relasinay dengan RPM
Hubungan antara RPM (revolutions per Minute), step per revolution, dan step per
second adalah kira-kira semacam ini.
        Step per Second = (RPM * Step per Revolution) / 60
Urutan 4-step dan jumlah gigi pada rotor
Urutan pensaklaran seperti yang ditunjukkan sebelumnya dalam Tabel 13-1 disebut
dengan urutan pensaklaran 4-step. Hal ini mengingat setelah 4-step dilalui, 2 kumparan yang
sama, kembali menjadi "ON". Berapa banyak gerakan yang dihasilkan dari 4-step ini?
Setelah menyelesaikan 4-step, motor bergerak hanya 1 gigi. Hal ini kerena motor dengan
jumlah step per revolusi sebanyak 200, memiliki 50 buah gigi dengan hitungan 4 x 50 = 200.
Sehingga dibutuhkan 200-step untuk satu revolusi (putaran penuh). Ini memberikan
kesimpulan bahwa sudut step minimum adalah sejarak 1 gigi dari rotor. Dengan kata lain,
untuk mendapatkan sudut step yang lebih kecil, maka dibutuhkan gigi yang lebih banyak.
Lihat contoh 13-2.
 
 

Contoh 6-2
 
Cari jumlah step pada urutan 4-step seperti pada gambar 13-1. Jika motor digunakan untuk berputar sejauh 80
derajat, dengan motor yang memiliki 2 derajat setiap stepnya
 
jawaban:
 
Motor dengan 2 derajat per step ini memiliki karakteristik seperti di bawah ini.
sudut Step (Step Angle) : 2 derajat
Step 1 putaran penuh    : 180 step
Jumlah gigi motor       : 45
Gerakan dalam 4 step    : 8 derajat
 
Untuk menggerakkan 80 derajat, kita membutuhkan untuk memberi perintah 10 kali urutan penuh 4-step.
Dengan perhitungan sebagai berikut.
 
10 x 4 step x 2 derajat = 80 derajat
 

 
 
Table 13-3: Urutan 4-step Half-Step
Step #   Gul.A    Gul.B    Gul.C   Gul.D 
1          1        0        0        1
2          1        0        0        0
3          1        1        0        0
4          0        1        0        0
5          0        1        1        0
6          0        0        1        0
7          0        0        1        1
8          0        0        0        1
Catatan : Ke kanan : Step 1 > 2 > 3 > 4.> 5 > 6 > 7 > 8. Ke kiri : Step 8 > 7 > 6> 5 > 4 > 3 > 2 > 1.
 
Kecepatan Motor
Kecepatan motor diukur dari jumlah step dalam 1 detik (step/S), dan juga disebut
sebagai swithcing rate. Perhatikan Contoh 6-1 bahwa dengan mengubah lama tundaan, kita
dapat membuat beberapa variasi kecepatan putar yang berbeda.
Holding torque (Kekuatan menahan)
Berikut ini adalah definisi dari Holding torque: "Dengan inti motor dalam keadaan
diam atau kondisi RPM = 0 atau menahan putaran, berapa tenaga yang harus diberikan
dari luar yang dibutuhkan untuk dapat memutar motor yang mengunci tersebut. Hal ini
diukur dengan memberikan tegangan dan arus rata-rata pada motor." Hasil pengukuran itu
dalam bentuk ounce-inch (atau kg-cm).
Urutan Wave Drive 4-step
Selain dari urutan 8-step dan 4-step yang sudah dibahas sebelumnya, ada urutan lain
yang disebut dengan urutan 4-step Wave Drive. Seperti yang ditunjukkan pada Tabel 6-4.
Perhatikan bahwa urutan 8-step (Tabel 6-3) adalah kombinasi dari urutan 4-step Wave Drive
(Tabel 6..4) dan urutan 4-step normal (Tabel 6-1). Percobaan dengan 4-step Wave Drive saya
serahkan kepada pembaca yang budiman.
 
Table 6-4: Urutan 4-step Wave-Drive
Step #   Gul.A    Gul.B     Gul.C   Gul.D 
1          1        0        0        0
2          0        1        0        0
3          0        0        1        0
4          0        0        0        1
Catatan : Ke kanan : Step 1 > 2 > 3 > 4. Ke kiri : Step 4 > 3 > 2 > 1.
 
 
Gambar 6-4: Penggunaan Transistor sbg Driver Motor Stepper 

6.2: Menghubungkan 8051 degan Keyboard 

Keyboard dan LCD adalah peralatan input/output yang digunakan secara luas dan


umum untuk 8051, dan mengerti dasar-dasar dari 2 peralatan tersebut adalah sangat penting
bagi kita. Di bagian ini, kita akan mendiskusikan  pondasi dari sebuah keyboard, termasuk
key-press dan mekanisme deteksi key. Kemudian kita akan ditunjukkan bagaimana
menghubungkan keyboard dengan 8051.
Menghubungkan keyboard dengan 8051
Pada tingkat terendah, keyboard diorganiasasi secara matrik meliputi baris dan kolom.
CPU mengakses kedua Baris dan Kolom tersebut melalui Port. Sehingga dengan
menggunakan 2 x 8-bit Port, sebuah key dengan matrix 8 x 8 dapat dihubungkan pada
mikrokontroller. Ketika key ditekan, Baris dan Kolom terhubung, dan jika sebaliknya, tidak
ada hubungan antara Baris dan Kolom.
Dalam keyboard PC IBM, terdapat sebuah mikrokontroller yang khusus menangani
Key. Dia bertugas memeriksa Key-key dan segera mengirimkan data kepada CPU utama
lewat hubungan serial jika ada key yang ditekan. 
Mengacu pada mekasinme yang dilakukan oleh keyboard kontroler tadi, kita akan membuat
8051 kita bisa bekerja semacam itu, yakni dengan scanning dan deteksi key.
Scanning dan identifikasi Key
Gambar 6-5 menunjukkan matrix 4 x4 yang terhubung pada 2 port. Baris terhubung
pada port output, dan kolom terhubung pada port input. Jika tidak ada key yang ditekan,
maka bacaan port input (kolom) akan selalu 1s. Hal ini karena input mendapat pull-up ke
Vcc. Jika ternyata salah satu key ditekan maka salah satu input/kolom tersebut adalah
berlogika 0s Karena Key ditekan karena mengikuti Output baris yang rendah. Nah hal inilah
yang ditelusuri (scann) oleh mikrokontroller secara terus menerus. Bagaimana itu terjadi,
akan kita jelaskan berikutnya.
 
 

Gambar 6-5: Koneksi matrik Keyboard kepada Port 

Membumikan Baris dn membaca kolom


Untuk mendeteksi Key yang sedang ditekan, mikrokontroller meng-ground-kan
semua baris dengan menuliskan nilai 0s pada semua port output. Selanjutnya membaca port
input, jika ternyata hasilnya adalah 1111, berarti memang tidak ada key yang ditekan, dan
proses tersebut selalu diulang sampai terdapat data yang berbeda. Jika ternyata salah satu
kolom bernilai 0s, maka berarti ada salah satu key yag ditekan. Key yang mana? Tentu saja
key yang kolomnya bernilai 0s. Misalnya terbaca D3-D0 = 1101, berarti key dalam kolom D1
ditekan, yakni di antara "1", "5", "9", dan "D". Setelah 8051 mengetahuinya, maka 8051
menuju pada proses identifikasi Key. Yakni menentukan Key yang ditekan itu dari baris
berapakah? Sehingga 8051 hanya berkonsentrasi pada kolom D1 ini.
 
Selanjutnya CPU meng-bumi-kan 4 port output satu per satu. Dimulai dari output-
baris D0. Jika ternyata input-kolom D2 masih tinggi, maka key yang ditekan bukanlah "1".
Dan sekarang ke baris berikutnya. CPU membumikan output-baris D1, dan input-kolom D1
masih tinggi, yang berarti key bukan "5". Baris berikutnya. Dengan mem-bumi-kan output-
baris D2, dan ternyata input kolom D1 adalah rendah. Maka kemudian dapat dipastikan key
yang ditekan adalah "9". Demikian proses tersebut diulang untuk setiap deteksi key yang lain.
 
Contoh 6-3
 
Dari Gambar 6-5, pastikan baris dan kolom pada posisi key, dari masing-masing …
(a) D3-D0 = 1110 untuk Baris. D3-D0 = 1011 untuk kolom
(b) D3-D0 = 1101 untuk Baris. D3-D0 = 0111 untuk kolom
 
jawaban:
 
Dari Gambar 13-5, Baris dan Kolom dapat digunakan untuk mendapatkan Key.
(a) Baris adalah D0, Kolom adalah D2, sehingga key adalah angka "2"
(b) Baris adalah D1, Kolom adalah D3, sehingga key adalah angka "7"
 

Untuk mendeteksi Key yang ditekan sebenarnya mudah saja.Karena terdapat 4 baris maka
kita program dibagi sebanyak 4 bagian.
Bagian pertama adalah Baris pertama yang port output D0 harus dibuat rendah
sementara yang lain tetap tinggi. PortOut D0-D0 = 1110. Setelah itu kita memeriksa kolom.
Jika ternyata PotIn D3-D0 = 1111, maka berarti tombol "3", "2", "1", dan "0" tidak ada yang
ditekan. 8051 dapat melompat ke bagian berikutnya. Namun jika ternyata PortIn D3-D0 =
1101, maka berarti tombol "1"-lah yang sedang ditekan. Demikian pula jika ternyata PortIn
D3-D0 = 1101, maka tombol "2 dan "1" sama-sama ditekan.
Bagian kedua adalah Baris kedua. Maka kita harus meulis PortOut = 1101. Kemudian
kita bisa membaca PortIn D3-D0 yang merepresentasikan tombol berikutnya, yakni "7", "6",
"5", dan "4".
Bagian ketiga dan keempat adalah baris ketiga dan baris keempat masing-maisng
PortOut kita tulis dengan D3-D0 = 1011, untuk memeriksa tombol "B", "A", "9", dan "8".
Dan PortOut kita tulis dengan D3-D0 = 0111, untuk memeriksa tombol "F", "E", "D", dan
"C". 
 
 
Gambar 6-6: Flowchart untuk program 6-1
 
Program 6-1 adalah program bahasa Assembly yang bertugas untuk mendeteksi dan
mengidentifikasi aktivasi key. Dalam program ini, kita mengasumsikan bahwa P1 dan P2
adalah masing-masing digunakan sebagai output dan input. Program 13-1 selengkapnya
adalah sebegai berikut.
1.    Sebelumnya yakinkan bahwa saat itu tidakada key yang sedang ditekan. Bumikan port
output menjadi 0s semua. Kemudian bacalah input, jika masih ada yang 0s maka
tunggulah sampai input menjadi "1111". Bahwa Key masih ada yang ditekan.

2.    Untuk kemudian melihat apakah ada key yang ditekan, maka kita harus meng-scan
kolom-kolom itu terus menerus dan berulang-ulang. Sampai dari padanya ada yang
bernilai 0s. Dan jika ternyata memang demikian, maka tunggu selama 20mS. Hal ini
untuk memberi kesemapatan debounce dari Key. Hal ini penting untuk menjamin
kebenaran bacaan key. (Kualitas Switch Key yang buruk akan membuat seolah key
ditekan dengan cepat, walaupun sebenarnya tidak ditekan). Setelah yakin ada key yang
ditekan, maka kemudian tinggal dicari key tersebut.

3.    Untuk mendeteksi Baris Key yang ditekan , maka bumi-kan salah satu dari port output-
baris. Dan kemudian baca kolom saat itu juga. Jika ternyata hasilnya adalah "1111", maka
key yang ditekan bukan milik Kolom tersebut. Selanjutnya adalah memilih baris
berikutnya. Jika ternyata hasilnya kolom ada yang 0s, maka dapat dipastikan key yang
ditekan adalah milik kolom ini. Tugas selanjutnya adalah mencari kode ASCII dari Key
tersebut.

4.    Untuk mendeteksi Key , maka putar bit-bit kolom, bit demi bit, menuju Carry, dan
periksalah apakah dalam keadaan 0s. Jika memang 0s maka dengan menggunakan tabel
look-up maka cari nilai ASCIInya. Namun jika ternyata Carry tidak ada 0s, maka kita
dapat ke proses kolom selanjutnya dengan menambah DPTR untuk menunjuk ASCII
berikutnya..

 
Jika proses deteksi key adalah menjadi standar dari keyboard manapun, maka proses dari
pengujian key mana yang ditekan adalah bermacam cara. Metodetable Look-up yang
ditunjukkan pada Program 13-1 dapat dimodifikasi untuk dapat bekerja pada sembarang
matrix sampai dengan 8 x 8. Gambar 13-6 mmeberikan flowchart dari program 13-1 untuk
proses scanning dan identifikasi Key.
 
Ada banyak chip IC seperti dari National Semiconductor, yakni MM74C933 yang merupakan
chip lengkap scanning dan decoding keyboard. Chip tersebut menggunakan kombinasi dari
Counter dan gerbang logika  (tanpa mikro kontroller) untuk mengimplementasikan konsep
yang dipaparkan pada program 13-1. 
 

;Subrutin Keyboard. Program ini mengirimkan kode ASCII utk Key P0.1
;P1.0-P1.3 pada Baris, P2.0-P2.3 pada kolom
        MOV  P2,#0FFh         ;buat P2 sebagai port input
K1:     MOV  P1,#0            ;buat rendah semua
        MOV  A,P2             ;Baca semua kolom
        ANL  A,#00001111b     ;Ambil bit yang dibuthkan saja
        CJNE A,#00001111b,K1  ;Lompat jika ada key masih ditekan
K2:     ACALL DELAY             ;Panggil delay 20mS
        MOV  A,P2               ;Lihat jk ada key dtekan
        ANL  A,#00001111b       ;Ambil bit yang dibutuhkan
        CJNE A,#00001111b,OVER  ;Lompat jika ada key masih ditekan
        SJMP K2                 ;Ulang
OVER:   ACALL DELAY             ;Tunda
        MOV  A,P2               ;Lihat jk ada key dtekan
        ANL  A,#00001111b       ;Ambil bit yang dibutuhkan
        CJNE A,#00001111b,OVER1 ;Lompat jika ada key masih ditekan
        SJMP K2                 ;Ulang
 
OVER1:  MOV  P1,#11111110b      ;Aktifkan Baris pertama
        MOV  A,P2               ;Lihat jk ada key dtekan
        ANL  A,#00001111b       ;Ambil bit yang dibutuhkan
        CJNE A,#00001111b,ROW_0 ;Lompat jika ada key masih ditekan
 
        MOV  P1,#11111101b      ;Aktifkan Baris kedua
        MOV  A,P2               ;Lihat jk ada key dtekan
        ANL  A.#00001111b       ;Ambil bit yang dibutuhkan
        CJNE A,#00001111b,ROW_1 ;Lompat jika ada key masih ditekan
 
        MOV  P1,#11111011b      ;Aktifkan Baris ketiga
        MOV  A,P2               ;Lihat jk ada key dtekan
        ANL  A.#00001111b       ;Ambil bit yang dibutuhkan
        CJNE A,#00001111b,ROW_2 ;Lompat jika ada key masih ditekan
 
        MOV  P1,#11110111b      ;Aktifkan Baris keempat
        MOV  A,P2               ;Lihat jk ada key dtekan
        ANL  A.#00001111b       ;Ambil bit yang dibutuhkan
        CJNE A,#00001111b,ROW_3 ;Lompat jika ada key masih ditekan
        LJMP K2                 ;Ulang
 
ROW_0:  MOV  DPTR,#KCODE0       ;Atur DPTR=Start dari ROW 0
        SJMP FIND               ;Cari Kolom milik siapa
ROW_1:  MOV  DPTR,#KCODE1       ;Atur DPTR=Start dari ROW 1
        SJMP FIND               ;Cari Kolom milik siapa
ROW_2:  MOV  DPTR,#KCODE2       ;Atur DPTR=Start dari ROW 2
        SJMP FIND               ;Cari Kolom milik siapa
ROW_3:  MOV  DPTR,#KCODE3       ;Atur DPTR=Start dari ROW 3
FIND:   RRC  A                  ;Lihat apa ada CY
        JNC  MATCH              ;Lompat jk tak ada
        INC  DPTR               ;Arahkan pada Kolom berikutnya 
        SJMP FIND               ;Tetap cari 
MATCH:  CLR  A                 ;A = 0
        MOVC A,@A+DPTR         ;Ambil karakter ASCII nya
        MOV  P0,A              ;Tambilkan nilai Key pada Port 0
        LJMP K1                ;Ulang
 
; Tabel Look Up
KCODE0:     DB ’0123′         ;ROW 0
KCODE1:     DB ’4567′         ;ROW 1
KCODE2:     DB ’89AB’         ;ROW 2
KCODE3:     DB ‘CDEF’         ;ROW 3
 
END
 

Program 6-1

6.3: Menghubungkan DAC dengan 8051

Analog-toDigital (DAC)
DAC adalah sebuah peralatan yang dikenal luas untuk mengkonversi bilangan atau nilai-nilai
digital menjadi sebuah sinyal analog. Pada bagian ini kita akan membicarakan dasar-dasar
dari hubungan DAC dengan mikroprosesor seperti 8051.
Merujuk pada sebuah buku tentang elektronika digital anda, terdapat 2 metode untuk
membuat DAC, yakni pemberatan bilangan biner (binary weigthed) dan penjummlah resistor
R/2R (R/2R adder). DAC yang umum dipasaran saat ini termasuk MC1408 (DAC808) juga
menggunakan metode R/2R. Hal ini karena metode ini memmiliki derajat yang lebih teliti.
Kreteria pertama saat memilih DAC adalah resolusi, yang mana berarti jumlah dari input
binernya. Kebanyakan adalah 8, 10 dan 12 bit. Jumlah input data bit tersebut menentukan
resolusi dari DAC, mengingat jumlah dari input data bit tesebut adalah setara dengan2 exp N,
yang mana N adalah jumlah dari input data bit. Sehingga jika DAC 8-bit seperti DAC8051,
maka dia berarti memiliki resolusi sebesar 256 perbedaan level tegangan (atau arus).
Termasuk juga DAC 12-bit akan memiliki perbedaan tegangan sebesar 4096. Dan juga DAC
16-bit yang harganya lebih mahal. DAC yang sangat mahal memiliki resolusi 24-bit dengan
bit rate 192 kbps, yang digunakan untuk Audio profesional.
DAC MC1408 (atau DAC808)
Pada MC1408 (DAC808, input digital dikopnversi menjadi arus listrik, dan dengan
menghubungkan sebuah resistor pada pin Iout, kita akan mendapatkan hasil berupa tegangan.
Total arus yang diberikan oleh pin Iout adalah tergantung status dari nilai input D0-D7 pada
DAC808 tersebut dan juga tergantung pada arus referensi (Iref), seperti yang dtunjukkan
pada berikut ini.
 
    Iout = Iref * ((D7/2)+(D6/4)+(D5/8)+(D4/16)+(D3/32)+(D2/64)+(D1/128)+(D0/256))
 
di sana D0 adalah LSB dan D7 adalah MSB, sedang Iref adalah input arus yang harus
diberikan pada pin 14. arus Iref ini umumnya diatur setinggi 2.0 mA. Gambar 13-7
menunjukkan bagaimana membangkitkan arus referensi (Iref=2mA) dengan menggunakan
tegangan catu daya standar 5 Volt dan dengan beberapa resistor standar 1KOhms dan
1,5KOhms. Beberapa rancangan juga menggunaan dioda zener (lm336), yang mana digunaan
untuk mencegah adangan fluktuasi yang disebabkan oleh catu daya yang kurang baik.
Sekarang anggaplah Iref adalah 2 mA, jika kesemuanya input biner DAC adalah tinggi, maka
arus maksimum keluaran adalah 1.99mA (periksalah sendiri pada rangkaian anda).
Konversi Iout menjadi tegangan di dalam DAC808
Kita menghubungkan pin output Iout dengan sebuah resistor, sehingga mengubah arus
tersebut menjadi tegangan dan monitorlah hasilnya pada sebuah osiloskop. Namun, pada
kehidupan nyata, hal ini dapat menyebabkan akurasi yang tidak semestinya, mengingat
resistansi input pada beban yang dikoneksikan  nanti juga menyebabkan pengaruh pada
tegangan output. Untuk alasan ini, arus Iref di-isolasi dengan menghubungkannya dengan
sebuah Op-amp seperti 741 dengan Rf = 5KOhms sebagai resistor feedback. Menganggap
bahwa R=5KOhms, dengan mengubah input biner DAC, maka perubahan tegangan DAC
dapat dilihat seperti pada contoh 13-4.
 

Contoh 6-4
 
Dengan menganggap R = 5K dan Iref = 2 mS, kalkulasikan Vout untuk input biner berikut ini.
(a) 10011001b (99h)      (b) 11001000b (C8)
 
jawaban:
 
(a) Iout = 2mA (153/255) = 1.195mA dan Vout = 1.195mA x 5K = 5.975 V
(b) Iout = 2mA (200/255) = 1.562mA dan Vout = 1.562mA x 5K = 7.8125 V
 

 
Gambar 6-7: Koneksi 8051 pada DAC808
 
 

Contoh 13-5
 
Dalam tugas untuk membuat gelombang tangga, seperti pada gambar 13-7, dan hubungkan output dengan
sebuah osiloscope. Kemudian tulis program untuk mengirimkan data pada DAC untuk menghasilkan
gelompabng tangga.
 
jawaban:
 
         CLR   A
AGAIN:   MOV   P1,A     ;kirim data pada DAC 
         INC   A
         ACALL DELAY    ;tunggu sampai DAC siap
         SJMP  AGAIN
 

 
 

Contoh 6-6
 
Periksalah pada nilai yang diberikan untuk sudut..
(a) 30     (b) 60
 
jawaban:
 
(a)Vout 5V + (5V x sin T) = 5V + 5 x sin 30 = 5V + 5 x 0.5 = 7.5 V
   nilai input DAC = 7,5 x 25.6 = 192 desimal
 
(b)Vout 5V + (5V x sin T) = 5V + 5 x sin 60 = 5V + 5 x 0.866 = 9.33V
   nilai input DAC = 9.33 x 25.6 = 238 desimal
 

 
 
Tabel 6-5  Sudut vs besaran tegangan untuk Gelombang sinus
Sudut T     Sin T     Vout(5V + 5V x sin T)  Nilai untuk DAC
0           0         5                      128
30          0.6       7.5                    192
60          0.866     9.33                   238
90          1.0       10                     255
120         0.866     9.33                   238
150         0.5       7.5                    192
180         0         5                      128
210         0.5       2.5                    64
240         0.866     0.669                  17
270         1.0       0                      0
300         0.866     0.669                  17
330         0.5       2.5                    64
360         0         5                      128
 
 

Gambar 6-8: Besaran Voltage untuk Gelombang Sinus


Membuat gelombang sinus
Untuk menbangitkan gelombang sinus, kita membutuhkan sebuah tabel nilai, yang
merepresentasikan besaran dari gelombang sinus tersebut mulai dari 0 sampai 360 derajat.
Nilai untuk gelombang sinus ini adalah berkisar -1.0 s/d +1.0 untuk 0 s/d 360 derajat.
Kemudian sebuah table nilai integer, yang merepresentasikan besaran tegangan dari
gelombang sinus tetha. Metode ini unutk menjamin bahwa hanya bilangan integer yang
diberikan pada DAC oleh mikrokontroller 8051. Table 13-5 menunjukkan sudut nilai sinus,
dan besaran tegangan, dan nilai integer yang merepresentasikan besaran tegangan bagi setiap
sudut dalam kelipatan 30 derajat. Untuk membangkitkan Table 13-5, kita menganggap
jangkauan tegangan penuhnya adalah 10V pada keluaran DAC (sepeti pada rangkaian
Gambar 13-7). Jangkauan keluaran penuh pada DAC dicapai di saat semua input data biner
DAC dalam keadaan tinggi (1s). Kemudian untuk mencapai tegangan keluaran penuh 10V,
kita mengunaan perhitungan Vout DAC dari beberapa derajat sinus seperti pada hitungan
berikut ini.
 
    Vout = 5V + (5 * sin t)
Untuk mencari nilai yang dikirimkan pada DAC untuk beberapa sudut, kita secara sederhana
mengkalikan nilai tegangan Vout dengan 25.60 karena ada 256 langkah dan skala penuh Vout
dalah 10Volts. Kemudian, 256 langkah / 10 V = 25.6 langkah per Volt. Untuk lebih jelas
tentang hal ini lihat pada kode berikut ini. Program ini mengirimkan tegangan DAC secra
terus menerus (in an infinite loop) untuk menghasilkan gelombang sinus bergerigi. Lihat
gambar 13-7.
 
  LAGI:    MOV  DPTR,#TABLE 
           MOV  R2,#COUNT 
  ULANG:   CLR  A 
           MOVC A,@A+DPTR 
           MOV  P1,A 
           INC  DPTR 
           DJNZ R2,ULANG 
           SJMP LAGI 
           ORG  300 
  TABLE:   DB 128,192,238,255,238,192   ;lihat table 13-5 
           DB 128,64,18,0,17,64,128 
;untuk mendapatkab gelombang yang mulus, ulangi 
; tabel 6-5 dengan sudut 2 derajat. 

Ringkasan
Bab ini lanjutan dari pertunjukkan bagaimana menghubungkan 8051 dengan peralatan Dunia Nyata.
Peralatan yang dibahas pada bab ini adalah motor stepper, keyboard, dan DAC(Digital-toAnalog
Converter).
Pertama, operasi dasar dari motor stepper yang dibahas, dengan hal-hal pokok yang melatar belakangi
digunakannya dan kendali motor stepper. Kemudian menghubungan 8051 dengan motor stepper.
Kemudian membuat program yang bisa mengendalikan motor stepper.
Keyboard adalah satu dari sekian banyak peralatan yang paling sering digunaan untuk 8051. Bab ini
akan menjelaskan tentang operasi keyboard. Termasuk KeyPress dan mekanisme deteksi key.
Kemdudian kita ditunjukkan menghubungkan 8051 denga keyboard. Membuat program untuk
mendapatkan nilai karakter ASCII dari setiap tombol yang ditekan.

Terakhir, 8051 dihubungkan dengan DAC. Chip DAC yang umum, menerima inut digital, dan
mengubahnya menjadi arus listrik. Dengan menghubungkan sebuah resistor pada pin   outputnya
maka arus tersebut dapat
Stepper motor characteristics

1. Piranti dengan daya konstan.


2. Motor dengan kecepatan meningkat, maka torsi menurun, Torsi maksimum diperoleh tatkala
gerakan tunak.
3. Kurva Torsi dapat dikembngkan dengan menggunakan driver pembatasan arus, dan
peningkatan tegangan.
4. Motor Stepper lebih bergetar tatkala step berhenti, oleh karena itu lebih bising dibandingkan
motor DC. Motor dapat menyebabkan hilangnya vibrasi atau rendah, maka akan terjadi
hilang torsi. Efek ini dapat diatasi dengan dengan mempercepat gerakan dengan mikro step.
5. Motors dengan jumlah fasa banyak akan menyebabkan operasi lebih halus atau
menggunakan mikro stepping.

Tipe-tipe motor step

Ada 4 tipe motor stepper :[1]

1. Permanent Magnet Stepper (can be subdivided in to 'tin-can' and 'hybrid', tin-can being a
cheaper product, and hybrid with higher quality bearings, smaller step angle, higher power
density)
2. Hybrid Synchronous Stepper
3. Variable Reluctance Stepper
4. Lavet type stepping motor

Permanent magnet motors use a permanent magnet (PM) in the rotor and operate on the attraction or
repulsion between the rotor PM and the stator electromagnets. Variable reluctance (VR) motors have
a plain iron rotor and operate based on the principle that minimum reluctance occurs with minimum
gap, hence the rotor points are attracted toward the stator magnet poles. Hybrid stepper motors are
named because they use a combination of PM and VR techniques to achieve maximum power in a
small package size.
Two-phase stepper motors

There are two basic winding arrangements for the electromagnetic coils in a two phase stepper motor:
bipolar and unipolar.
Unipolar motors

A unipolar stepper motor has one winding with center tap per phase. Each section of windings is
switched on for each direction of magnetic field. Since in this arrangement a magnetic pole can be
reversed without switching the direction of current, the commutation circuit can be made very simple
(e.g. a single transistor) for each winding. Typically, given a phase, the center tap of each winding is
made common: giving three leads per phase and six leads for a typical two phase motor. Often, these
two phase commons are internally joined, so the motor has only five leads.

A microcontroller or stepper motor controller can be used to activate the drive transistors in the right
order, and this ease of operation makes unipolar motors popular with hobbyists; they are probably the
cheapest way to get precise angular movements.

Unipolar stepper motor coils

(For the experimenter, the windings can be identified by touching the terminal wires together in PM
motors. If the terminals of a coil are connected, the shaft becomes harder to turn. one way to
distinguish the center tap (common wire) from a coil-end wire is by measuring the resistance.
Resistance between common wire and coil-end wire is always half of what it is between coil-end and
coil-end wires. This is because there is twice the length of coil between the ends and only half from
center (common wire) to the end.) A quick way to determine if the stepper motor is working is to
short circuit every two pairs and try turning the shaft, whenever a higher than normal resistance is felt,
it indicates that the circuit to the particular winding is closed and that the phase is working.
Bipolar motor

Bipolar motors have a single winding per phase. The current in a winding needs to be reversed in
order to reverse a magnetic pole, so the driving circuit must be more complicated, typically with an H-
bridge arrangement (however there are several off the shelf driver chips available to make this a
simple affair). There are two leads per phase, none are common.
Static friction effects using an H-bridge have been observed with certain drive topologies. See
"Friction and the Dead Zone" by Douglas W
Joneshttp://www.divms.uiowa.edu/~jones/step/physics.html#friction.

Dithering the stepper signal at a higher frequency than the motor can respond to will reduce this
"static friction" effect.

Because windings are better utilized, they are more powerful than a unipolar motor of the same
weight. This is due to the physical space occupied by the windings. A unipolar motor has twice the
amount of wire in the same space, but only half used at any point in time, hence is 50% efficient (or
approximately 70% of the torque output available). Though bipolar is more complicated to drive, the
abundance of driver chips means this is much less difficult to achieve.

An 8-lead stepper is wound like a unipolar stepper, but the leads are not joined to common internally
to the motor. This kind of motor can be wired in several configurations:

 Unipolar.
 Bipolar with series windings. This gives higher inductance but lower current per winding.
 Bipolar with parallel windings. This requires higher current but can perform better as the
winding inductance is reduced.
 Bipolar with a single winding per phase. This method will run the motor on only half the
available windings, which will reduce the available low speed torque but require less current.

Full step drive (two phases on)

This is the usual method for full step driving the motor. Two phases are always on. The motor will
have full rated torque.
Half stepping

When half stepping, the drive alternates between two phases on and a single phase on. This increases
the angular resolution, but the motor also has less torque (approx 70%) at the half step position (where
only a single phase is on). This may be mitigated by increasing the current in the active winding to
compensate. The advantage of half stepping is that the drive electronics need not change to support it.
Microstepping

What is commonly referred to as microstepping is often "sine cosine microstepping" in which the
winding current approximates a sinusoidal AC waveform. Sine cosine microstepping is the most
common form, but other waveforms can be used [1]. Regardless of the waveform used, as the
microsteps become smaller, motor operation becomes more smooth, thereby greatly reducing
resonance in any parts the motor may be connected to, as well as the motor itself. Resolution will be
limited by the mechanical stiction, backlash, and other sources of error between the motor and the end
device. Gear reducers may be used to increase resolution of positioning.
Step size repeatability is an important step motor feature and a fundamental reason for their use in
positioning.

Example: many modern hybrid step motors are rated such that the travel of every full step (example
1.8 Degrees per full step or 200 full steps per revolution) will be within 3% or 5% of the travel of
every other full step; as long as the motor is operated within its specified operating ranges. Several
manufacturers show that their motors can easily maintain the 3% or 5% equality of step travel size as
step size is reduced from full stepping down to 1/10 stepping. Then, as the microstepping divisor
number grows, step size repeatability degrades. At large step size reductions it is possible to issue
many microstep commands before any motion occurs at all and then the motion can be a "jump" to a
new position.

References

 February 28th, 2011   Musbikhin


 ZaberMicrostepping Tutorial. Retrieved on 2007-11-15.

1. ^ Liptak, Bela G. (2005). Instrument Engineers' Handbook: Process Control and


Optimization. CRC Press. pp. 2464. ISBN 9780849310812.
2. ^ http://www.electricmotors.machinedesign.com/guiEdits/Content/bdeee4/bdeee4_1-
1.aspx

Anda mungkin juga menyukai