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.
Musbikhin
BAB 13
Sasaran
Menjelaskan kaidah operasi motor stepper dalam hal sudut step, step per
revolusi, tooth pitch, kecepatan putar, RPM
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".
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.
Step #
Gul.A
Gul.B
Gul.C
Gul.D
Catatan : Ke kanan : Step 1 > 2 > 3 > 4. Ke kiri : Step 4 > 3 > 2 > 1.
Sudut Step
0.72
1.8
200
2.0
180
2.5
144
5.0
72
7.5
48
15
24
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
ACALL DELAY
;tunggu sejenak
SJMP ULANG
;ulang
DELAY:
MOV R2,#100
H1:
MOV R3,#255
H2:
DJNZ R3,H2
DJNZ R2,H1
RET
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
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.
Step # Gul.A
Gul.B
Gul.C Gul.D
Catatan : Ke kanan : Step 1 > 2 > 3 > 4. Ke kiri : Step 4 > 3 > 2 > 1.
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.
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"
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
P2,#0FFh
MOV P1,#0
MOV A,P2
ANL A,#00001111b
ACALL DELAY
MOV A,P2
ANL A,#00001111b
;Ulang
;Tunda
;Lihat jk ada key dtekan
ANL A,#00001111b
;Ulang
ANL A,#00001111b
MOV P1,#11111101b
MOV A,P2
ANL A.#00001111b
MOV P1,#11111011b
MOV A,P2
ANL A.#00001111b
MOV P1,#11110111b
MOV A,P2
ANL A.#00001111b
;Ulang
JNC MATCH
INC DPTR
SJMP FIND
MATCH: CLR A
MOVC A,@A+DPTR
MOV P0,A
LJMP K1
; 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
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.
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)
jawaban:
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
INC A
ACALL DELAY
SJMP AGAIN
Contoh 13-6
(b) 60
jawaban:
Sudut T
Sin T
Vout(5V + 5V x sin T)
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
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
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.
(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
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
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
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
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
Servo motor
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