Anda di halaman 1dari 36

BAB VI

MOTOR LANGKAH (STEPPER MOTOR)


Motor langkah adalah motor DC yang dapat bergerak langkah perlangkah yang terprogram (gerak
robotik) baik berputar ke kanan maupun ke kiri.
Motor langkah merupakan suatu jenis motor yang 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 dan banyak lagi alat-alat yang lain. Berikut contoh salah satu jenis gambar dari motor
langkah.

Gambar 1. Motor langkah


Motor langkah yang umum digunakan mempunyai jangkauan langkah berputar antara 0,9 derajat
sampai 30 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. 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.
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. Berikut skema-skema rangkaian penggerak motor langkah.

Gambar 2. Rangkaian interface motor langkah


dengan transistor

Gambar 3. Skema Gabungan penggerak motor


langkah
Pada 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.

Berhubungan dengan Dunia Nyata II: Motor Stepper,


Keyboard, dan DAC
February 28th, 2011

Musbikhin

BAB 13

Sasaran

Setelah anda menamatkan bab ini , diharapkan anda dapat :

Menjelaskan operasi dasar dari motor stepper

Menghubungkan 8051 dengan motor stepper

Memprogram 8051 untuk menjalankan motor stepper

Menjelaskan kaidah operasi motor stepper dalam hal sudut step, step per
revolusi, tooth pitch, kecepatan putar, RPM

Menjelaskan operasi dasar dari Keyboard

Menbahas Key-Press dan mekanisme deteksinya

Menghubungkan keypad 44 dengan 8051

Membahas operasi dasar dari DAC (Digital to Analog Converter)

Menghubungkan chip DAC pada 8051

Menjelaskan fungsi dari IC sensor suhu presisi

Membuat program untuk DAC, untuk gelombang sinus

Bab ini mabahas hubungan 8051 dengan motor stepper, keyboard, dan
(Digital to Analog Converter). Pada SubBAB 13.1, dasar motor stepper
dijelaskan. Dan di bagian 13.2, menghubungkan keyboard dengan 8051
ditunjukkan. Sedang karekteristik dari DAC yang berkaitan dengan 8051
dibahas pada SubBAB 13.3.

SubBab

13.1:

Menghubungkan

Motor

DAC
akan
akan
akan

Stepper

Bagian ini dimulai dengan penjelasan singkat tentang operasi dasar dari
motor stepper. Kemudian kita akan menjelas bagaimana menghubungkan motor
stepper pada 8051. Dan terakhir, kta menggunakan program bahasa assembly
untuk mendemonstrasikan penggendalian sudut, arah dari rotasi motor
stepper.
Motor-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, dan stator (bagian yang diam) dengan dikelingi oleh kumparankumparan. Lihat gambar 13-1. Kebanyakan dari motor stepper memiliki 4 buah
kumparan stator, yang dari keempatnya salah satu ujung kumparan dihubungkan

menjadi 1 yang kemudian dinamakan Common. Lihat gambar 13-2. Type motor
stepper seperti ini biasa dinamakan sebagai "motor stepper 4 fasa".

Gambar 13-1, Penjajaran rotor

Sejatinya motor ini memiliki hanya 2 buah kumparan. Lihat gambar 13-2. 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

Catatan : Ke kanan : Step 1 > 2 > 3 > 4. Ke kiri : Step 4 > 3 > 2 > 1.

Table 13-2: Sudut Step dari Motor Stepper

Sudut Step
0.72

Step per Revolusi


500

1.8

200

2.0

180

2.5

144

5.0

72

7.5

48

15

24

Gambar 13-2: Konfigurasi gulungan Stator

Gambar 13-3: 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 melompatlompat. 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 13-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
ULANG:

MOV P1,A
RR A

;isikan dengan urutan step


;tulis urutan itu pada port

;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 13-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
Jumlah gigi motor
Gerakan dalam 4 step

: 180 step
: 45
: 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

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 13-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 134. Perhatikan bahwa urutan 8-step (Tabel 13-3) adalah kombinasi dari urutan 4-step Wave
Drive (Tabel 13.4) dan urutan 4-step normal (Tabel 13-1). Percobaan dengan 4-step Wave
Drive saya serahkan kepada pembaca yang budiman.

Table 13-4: Urutan 4-step Wave-Drive

Step # Gul.A

Gul.B

Gul.C Gul.D

Catatan : Ke kanan : Step 1 > 2 > 3 > 4. Ke kiri : Step 4 > 3 > 2 > 1.

Gambar 13-4: Penggunaan Transistor sbg Driver Motor Stepper

SubBAB

13.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 13-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 13-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 13-3

Dari Gambar 13-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 masingmaisng 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 13-6: Flowchart untuk program 13-1

Program 13-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
K1:

P2,#0FFh

MOV P1,#0
MOV A,P2

;buat P2 sebagai port input


;buat rendah semua

;Baca semua kolom

ANL A,#00001111b

;Ambil bit yang dibuthkan saja

CJNE A,#00001111b,K1 ;Lompat jika ada key masih ditekan


K2:

ACALL DELAY
MOV A,P2

;Panggil delay 20mS


;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


MOV A,P2

;Tunda
;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


MOV A,P2

;Aktifkan Baris pertama

;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
MOV A,P2

;Aktifkan Baris kedua

;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
MOV A,P2

;Aktifkan Baris ketiga

;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
MOV A,P2

;Aktifkan Baris keempat

;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


SJMP FIND

;Cari Kolom milik siapa

ROW_1: MOV DPTR,#KCODE1


SJMP FIND

JNC MATCH
INC DPTR
SJMP FIND
MATCH: CLR A
MOVC A,@A+DPTR

;Atur DPTR=Start dari ROW 2

;Cari Kolom milik siapa

ROW_3: MOV DPTR,#KCODE3


FIND: RRC A

;Atur DPTR=Start dari ROW 1

;Cari Kolom milik siapa

ROW_2: MOV DPTR,#KCODE2


SJMP FIND

;Atur DPTR=Start dari ROW 0

;Atur DPTR=Start dari ROW 3

;Lihat apa ada CY


;Lompat jk tak ada
;Arahkan pada Kolom berikutnya
;Tetap cari
;A = 0
;Ambil karakter ASCII nya

MOV P0,A
LJMP K1

;Tambilkan nilai Key pada Port 0


;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 13-1

SubBAB 13.3: Menghubungkan DAC dengan 8051


Bab ini akan menunjukkan bagaimana menghubungkan DAC (Digital Analog Converter)
dengan 8051. Kemudian akan mendemonstrasikan bagaimana membangkitkan
gelombang sinus dengan menggunakan DAC, yang nampak pada layar osiloskop.
konverter Analog-toDigital (DAC)
DAC adalah sebuah peralatan yang dikenal luas untuk mengkonversi bilangan atau nilainilai 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 Opamp 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 13-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 13-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
SJMP AGAIN

Contoh 13-6

;tunggu sampai DAC siap

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 13-5 Sudut vs besaran tegangan untuk Gelombang sinus

Sudut T

Sin T

Vout(5V + 5V x sin T)

Nilai untuk DAC

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

128

210

0.5

2.5

64

240

0.866

0.669

17

270

1.0

300

0.866

0.669

17

330

0.5

2.5

64

360

128

Gambar 13-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 135, 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 13-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 diubah menjadi tegangan. Level tegangan
tersebut dapat dimonitor melalui sebuah osiloskop. Bab ini ditunjukkan bagaimana
menghubungkan 8051 dengan chip DAC. Kemudian, membuat program sederhana untuk
membuat gelombang sinus yang bisa dlihat oleh osiloskop.

Fundamentals of operation

Because of power requirements, induction of the windings, and temperature management, motors cannot be powered
directly by most digital controllers. Some circuitry that can handle more power a motor controller such as an Hbridge must be inserted between digital controller and motor's windings. The above image shows the basic circuit of
a motor controller that can also sense motor current. The circuitry to control one winding of a motor is shown; a stepper
motor would use a circuit that could control four windings, and a normal DC motor would need circuitry to control two
windings. All of this circuitry is typically incorporated in an integrated H-bridge chip.

Stepper motors operate differently from DC brush motors, which rotate when voltage is applied to
their terminals. Stepper motors, on the other hand, effectively have multiple "toothed" electromagnets
arranged around a central gear-shaped piece of iron. The electromagnets are energized by an
external control circuit, such as a microcontroller. To make the motor shaft turn, first, one
electromagnet is given power, which makes the gear's teeth magnetically attracted to the
electromagnet's teeth. When the gear's teeth are aligned to the first electromagnet, they are slightly
offset from the next electromagnet. So when the next electromagnet is turned on and the first is

turned off, the gear rotates slightly to align with the next one, and from there the process is repeated.
Each of those slight rotations is called a "step", with an integer number of steps making a full rotation.
In that way, the motor can be turned by a precise angle.
[edit]Stepper

motor characteristics

1. Stepper motors are constant power devices.


2. As motor speed increases, torque decreases. Most motors exhibit maximum torque when
stationary, however the torque of a motor when stationary (holding torque) defines the ability
of the motor to maintain a desired position while under external load.
3. The torque curve may be extended by using current limiting drivers and increasing the driving
voltage (sometimes referred to as a 'chopper' circuit; there are several off the shelf driver
chips capable of doing this in a simple manner).
4. Steppers exhibit more vibration than other motor types, as the discrete step tends to snap the
rotor from one position to another (called a detent). The vibration makes stepper motors
noisier than DC motors.
5. This vibration can become very bad at some speeds and can cause the motor to lose torque
or lose direction. This is because the rotor is being held in a magnetic field which behaves
like a spring. On each step the rotor overshoots and bounces back and forth, "ringing" at its
resonant frequency. If the stepping frequency matches the resonant frequency then the
ringing increases and the motor comes out of synchronism, resulting in positional error or a
change in direction. At worst there is a total loss of control and holding torque so the motor is
easily overcome by the load and spins almost freely.
6. The effect can be mitigated by accelerating quickly through the problem speeds range,
physically damping (frictional damping) the system, or using a micro-stepping driver.
7. Motors with a greater number of phases also exhibit smoother operation than those with
fewer phases (this can also be achieved through the use of a micro-stepping driver)
[edit]Open-loop

versus closed-loop commutation

Steppers are generally commutated open loop, i.e. the driver has no feedback on where the rotor
actually is. Stepper motor systems must thus generally be over engineered, especially if the load
inertia is high, or there is widely varying load, so that there is no possibility that the motor will lose
steps. This has often caused the system designer to consider the trade-offs between a closely sized
but expensive servomechanism system and an oversized but relatively cheap stepper.

A new development in stepper control is to incorporate a rotor position feedback (e.g. a rotary
encoder or resolver), so that the commutation can be made optimal for torque generation according to
actual rotor position. This turns the stepper motor into a high pole count brushless servo motor, with
exceptional low speed torque and position resolution. An advance on this technique is to normally run
the motor in open loop mode, and only enter closed loop mode if the rotor position error becomes too
large this will allow the system to avoid hunting or oscillating, a common servo problem.
[edit]Types
There are four main types of stepper motors:[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.
[edit]Two-phase

stepper motors

There are two basic winding arrangements for the electromagnetic coils in a two phase stepper motor:
bipolar and unipolar.
[edit]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.
[edit]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 Hbridge 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.

[edit]Higher-phase

count stepper motors

Multi-phase stepper motors with many phases tend to have much lower levels of vibration, [2] although
the cost of manufacture is higher. These motors tend to be called 'hybrid' and have more expensive
machined parts, but also higher quality bearings. Though they are more expensive, they do have a
higher power density and with the appropriate drive electronics are actually better suited to the
application[citation needed], however price is always an important factor. Computer printers may use hybrid
designs.
[edit]Stepper

motor drive circuits

Stepper motor performance is strongly dependent on the drive circuit. Torque curves may be
extended to greater speeds if the stator poles can be reversed more quickly, the limiting factor being
the winding inductance. To overcome the inductance and switch the windings quickly, one must
increase the drive voltage. This leads further to the necessity of limiting the current that these high
voltages may otherwise induce.
[edit]L/R

drive circuits

L/R drive circuits are also referred to as constant voltage drives because a constant positive or
negative voltage is applied to each winding to set the step positions. However, it is winding current,
not voltage that applies torque to the stepper motor shaft. The current I in each winding is related to
the applied voltage V by the winding inductance L and the winding resistance R. The resistance R
determines the maximum current according to Ohm's law I=V/R. The inductance L determines the
maximum rate of change of the current in the winding according to the formula for an Inductor dI/dt =
V/L. Thus when controlled by an L/R drive, the maximum speed of a stepper motor is limited by its
inductance since at some speed, the voltage U will be changing faster than the current I can keep up.
In simple terms the rate of change of current is L / R (e.g. a 10mH inductance with 2 ohms resistance

will take 5 ms to reach approx 2/3 of maximum torque or around 24 msec to reach 99% of max
torque). To obtain high torque at high speeds requires a large drive voltage with a low resistance and
low inductance. With an L/R drive it is possible to control a low voltage resistive motor with a higher
voltage drive simply by adding an external resistor in series with each winding. This will waste power
in the resistors, and generate heat. It is therefore considered a low performing option, albeit simple
and cheap.
[edit]Chopper

drive circuits

Chopper drive circuits are also referred to as constant current drives because they generate a
somewhat constant current in each winding rather than applying a constant voltage. On each new
step, a very high voltage is applied to the winding initially. This causes the current in the winding to
rise quickly since dI/dt = V/L where V is very large. The current in each winding is monitored by the
controller, usually by measuring the voltage across a small sense resistor in series with each winding.
When the current exceeds a specified current limit, the voltage is turned off or "chopped", typically
using power transistors. When the winding current drops below the specified limit, the voltage is
turned on again. In this way, the current is held relatively constant for a particular step position. This
requires additional electronics to sense winding currents, and control the switching, but it allows
stepper motors to be driven with higher torque at higher speeds than L/R drives. Integrated
electronics for this purpose are widely available.
[edit]Phase

current waveforms

A stepper motor is a polyphase AC synchronous motor (see Theory below), and it is ideally driven by
sinusoidal current. A full step waveform is a gross approximation of a sinusoid, and is the reason why
the motor exhibits so much vibration. Various drive techniques have been developed to better
approximate a sinusoidal drive waveform: these are half stepping and microstepping.

Different drive modes showing coil current on a 4-phase unipolar stepper motor

[edit]Wave

drive

In this drive method only a single phase is activated at a time. It has the same number of steps as the
full step drive, but the motor will have significantly less than rated torque. It is rarely used.
[edit]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.
[edit]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.
[edit]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.
[edit]Theory
A step motor can be viewed as a synchronous AC motor with the number of poles (on both rotor and
stator) increased, taking care that they have no common denominator. Additionally, soft magnetic
material with many teeth on the rotor and stator cheaply multiplies the number of poles (reluctance
motor). Modern steppers are of hybrid design, having both permanent magnets and soft iron cores.
To achieve full rated torque, the coils in a stepper motor must reach their full rated current during each
step. Winding inductance and reverse EMF generated by a moving rotor tend to resist changes in
drive current, so that as the motor speeds up, less and less time is spent at full current thus
reducing motor torque. As speeds further increase, the current will not reach the rated value, and
eventually the motor will cease to produce torque.
[edit]Pull-in

torque

This is the measure of the torque produced by a stepper motor when it is operated without an
acceleration state. At low speeds the stepper motor can synchronise itself with an applied step
frequency, and this pull-in torque must overcome friction and inertia. It is important to make sure that
the load on the motor is frictional rather than inertial as the friction reduces any unwanted oscillations.
[edit]Pull-out

torque

The stepper motor pull-out torque is measured by accelerating the motor to the desired speed and
then increasing the torque loading until the motor stalls or misses steps. This measurement is taken
across a wide range of speeds and the results are used to generate the stepper motor's dynamic

performance curve. As noted below this curve is affected by drive voltage, drive current and current
switching techniques. A designer may include a safety factor between the rated torque and the
estimated full load torque required for the application.
[edit]Detent

torque

Synchronous electric motors using permanent magnets have a remnant position holding torque
(called detent torque or cogging, and sometimes included in the specifications) when not driven
electrically. Soft iron reluctance cores do not exhibit this behavior.
[edit]Stepper

motor ratings and specifications

Stepper motors nameplates typically give only the winding current and occasionally the voltage and
winding resistance. The rated voltage will produce the rated winding current at DC: but this is mostly a
meaningless rating, as all modern drivers are current limiting and the drive voltages greatly exceed
the motor rated voltage.
A stepper's low speed torque will vary directly with current. How quickly the torque falls off at faster
speeds depends on the winding inductance and the drive circuitry it is attached to, especially the
driving voltage.
Steppers should be sized according to published torque curve, which is specified by the manufacturer
at particular drive voltages or using their own drive circuitry.
[edit]Applications
Computer-controlled stepper motors are one of the most versatile forms of positioning systems. They
are typically digitally controlled as part of an open loop system, and are simpler and more rugged
than closed loop servo systems.
Industrial applications include high speed pick and place equipment and multi-axis CNC machines,
often directly driving lead screws or ballscrews. In the field of lasers and optics they are frequently
used in precision positioning equipment such as linear actuators, linear stages, rotation
stages, goniometers, and mirror mounts. Other uses are in packaging machinery, and positioning of
valve pilot stages for fluid control systems.
Commercially, stepper motors are used in floppy disk drives, flatbed scanners, computer
printers, plotters, slot machines, image scanners, compact disc drives and many more devices.

[edit]See

also
Electronics portal

Fractional horsepower motors

Servo motor

Brushless DC electric motor

Brushed DC electric motor

Three-phase AC synchronous motors

Solenoid

[edit]References
Zaber Microstepping 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