Konsep Dasar Motor Stepper (Bagian 2)

Rangkaian kontrol untuk setiap tipe motor stepper mempunyai kemiripan yaitu dalam hal aktivasinya. Namun yang paling membedakan adalah dalam hal urutan pemberian data aktivasi setiap lilitan pada motor stepper.

Motor stepper merupakan motor listrik yang tidak mempunyai komutator, di mana semua lilitannya merupakan bagian dari stator. Dan pada rotornya hanya merupakan magnet permanen. Semua komutasi setiap lilitan harus di kontrol secara eksternal sehingga motor stepper ini dapat dikontrol sehingga dapat berhenti pada posisi yang diinginkan atau bahkan berputar ke arah yang berlawanan.
Pada bagaian ini akan dibahas mengenai bagaian terakhir dari rangkaian penggerak motor stepper. Rangkaian ini pada dasarnya hanya merupakan rangkaian switching arus yang mengaliri lilitan pada motor stepper. Urutan pemberian data pada motor stepper ini dapat mengontrol arah putaran dari motor stepper ini. Penambahan kecepatan pada motor stepper dapat dilakukan dengan cara meningkatkan frekuensi pemberian data pada rangkaian switching arus.
Rangkaian kontrol ini nantinya terhubung langsung dengan lilitan pada motor, rangkaian power supplai, dan rangkaian yang dikontrol secara digital yang pada akhirnya menentukan kapan lilitan yang diinginkan dalam kondisi off atau on. Selain hanya menggunakan transistor switching ar, saat ini sudah tersedia driver motor yang memang diperuntukkan bagi motor stepper, yang lebih dikenal dengan H-Bridge. Komponen ini  biasanya digunakan pada motor stepper tipe bipolar, walaupun demikian tidak menutup kemungkinan digunakan pada motor stepper tipe yang lain.

Rangkaian Driver Variabel Reluctance Motor
Gambar 1
Kontrol Pada Varibel Reluctance Motor Stepper

Di dalam gambar 1 tersebut terdapat sebuah 3 blok dimana masing-masing mengatur sebuah kumparan motor stepper. Blok tersebut terdiri dari saklar arus yang dikontrol secara digital. Blok ini berperan penting di dalam pengontrolan arus yang akan melewati kumparan motor tertentu. Pengontrollan blok ini dapat dilakukan oleh sebuah rangkaian digital sederhana atau bahkan sebuah komputer melalui printer port. Dengan menggunakan komputer maka diperlukan perangkat lunak yang nantinya akan mengatur pemberian data dengan suatu urut-urutan tertentu kepada komponen saklar di dalam blok.
Kumparan pada motor stepper mempunyai karakteristik yang sama dengan karakteristik beban induktif lainnya. Oleh sebab itu ketika terdapat arus yang melalui kumparan motor, tidak dapat dimatikan dengan seketika tanpa menghasilkan tegangan transien yang sangat tinggi. Kondisi ini biasanya nampak dengan timbulnya percikan bunga api (ketika menggunakan motor DC dengan daya yang besar). Hal ini sangat tidak diinginkan karena dapat merusak saklar sehingga perlu diberikan rangkaian tambahan untuk membatasi tegangan transien yang muncul. Sebaliknya ketika saklar tertutup maka terdapat arus yang mengalir ke kumparan motor dan akan menghasilkan kenaikan tegangan secara perlahan.
Untuk membatasi tegangan spike yang muncul maka ada dua alternatif penyelesaiannya yaitu dengan memparalel pada kumparan motor dengan dioda dan alternatif yang kedua adalah dengan menggunakan kapasitor yang dipasang paralel dengan kumparan motor stepper.

Gambar 2
Spike Voltage Reducer

Diode yang yang terpasang paralel tersebut harus mampu melewatkan arus balik yang terjadi ketika saklar terbuka. Dioda yang digunakan dapat berupa dioda yang umum dipakai seperti 1N4001 atau 1N4002. Jika digunakan dioda yang mempunyai karakteristik ‘fast switch’ maka perlu diberikan penambahan kapasitor yang dipasang secara paralel pada dioda.
Pemasangan kapasitor paralel dengan kumparan motor dapat menyebabkan spike yang ditimbulkan akan menyebabkan kapasitor tersebut charge sehingga tegangan spike yang terjadi tidak akan keluar tetapi diredam oleh kapasitor ini. Tetapi yang paling penting adalah kapasitor ini harus mampu menahan surge current pada saat terjadi spike. Surge current adalah arus tiba-tiba yang sangat besar yang muncul bersamaan dengan tegangan spike. Nilai kapasitor harus dipilih pada kondisi dimana nilai induktansi dari kumparan motor stepper paling besar. Inilah karakteristik motor stepper dengan tipe variabel reluctance dimana nilai induktansinya berubah-ubah tergantung dari sudut  putaran pada poros rotor. Penambahan kapasitor sehingga tepat akan membentuk sebuah rangkaian resonansi yang dapat menyebabkan peningkatan torsi pada motor dengan tipe ini.

Rangkaian Driver Unipolar Permanent Magnet and Hybrid Motor
Gambar 3
Kontrol Pada Unipolar Permanent Magnet Motor

Rangkaian kontrol untuk mengendalikan motor stepper dengan tipe unipolar ini hampira sama dengan rangkaian kontrol pada motor tipe variabel reluctance. Perbedaanya hanya pada struktur kumparan motornya saja.
Gambar 4
Spike Voltage Reducer untuk Unipolar Stepper Motor

Walaupun demikian karena bebanya merupakan beban induktif maka selalu ada tegangan spike yang muncul ketika saklar terbuka. Oleh sebab itu perlu penambahan dioda yang terpasang paralel dengan kumparan motor stepper seperti terlihat pada gambar 4.
Dua  buah dioda tambahan diperlukan karena kumparan motor bukanlah kumparan yang independen tetapi sebuah kumparan yang mempunyai tap di tengah-tengah kumparan seperti struktur pada autotransformer. Ketika salah satu saklar dibuka maka tegangan spike muncul di kedua ujung kumparan motor tersebut dan di clamp oleh dua buah dioda ke supplay motor. Tetapi jika salah satu ujung kumparan motor tersebut tidak floating terhadap supplai motor maka tegangan spike ini akan lebih negatif daripada referensi ground. Jika saklar yang digunakan berupa relay, kondisi ini bukan menjadi masalah. Kondisi ini baru menjadi masalah ketika saklar yang digunakan adalah saklar semikonduktor seperti transistor atau FET.
Untuk membatasi level tegangan  spike dapat pula digunakan kapasitor yang terpasang seperti pada gambar 5.
Gambar 5
Pemberian Kapasitor Pembatas Tegangan Spike

Rangkaian Praktis Pengendali Motor Stepper
Jika rangkaian kontrol yang mengendalikan rangakaian motor driver ini berupa mikrokontroller atau komponen digital maka ada baiknya agar setiap port yang mengontrol rangkaian driver motor stepper ini diberi buffer terlebih dahulu agar tidak membebani port mikrokontroller yang digunakan. Seperti pada gambar 3, pin control_0, control_1, control_2 dan control_3 ini dapat dikontrol secara digital dengan menggunakan mikrokontroller dengan memberi komponen yang berfungsi sebagai buffer seperti pada gambar 6.
Gambar 6
Rangkaian Sederhana Penggerak Motor Stepper

Pada gambar 6 hanya ditampilkan satu bagian untuk mengontrol satu buah kumparan motor stepper. Ada dua alternatif yaitu dengan menggunakan buffer terlebuh dahulu atau menggunakan FET, yang mempunyai impedansi input yang sangat tinggi, sebagai komponen saklarnya. Tegangan Vmotor tidaklah harus selalu sama dengan tegangan VCC pada mikrokontroller. Oleh sebab itu digunakan sebuah komponen buffer yang mempunyai output open collector sehingga outputnya dapat di pull-up ke tegangan yang diinginkan.
Untuk dasar pemilihan transistornya adalah pada karakteristik IC (arus kolektor). Transistor ini harus merupakan transistor power yang mampu melewatkan arus sesuai dengan arus yang diperlukan oleh kumparan motor stepper ini. Jika arus yang ditarik oleh kumparan motor stepper ternyata lebih besar daripada kemampuan transistor maka transistor akan cepat panas dan dapat menyebabkan rusaknya transistor tersebut.
R pull-up  sebesar 470 akan memberikan arus sebesar 10 mA ke basis transistor Q1. Jika Q1 mempunyai gain sebesar 1000 maka  arus yang dapat diliewatkan adalah sekitar beberapa ampere, tergantung dari besar arus yang ditarik oleh kumparan motor stepper tersebut. Arus ini harus lebih kecil dari arus IC yang diperbolehkan.
Untuk komponen FET dapat digunakan komponen IRL540 yang dapat mengalirkan arus sampai 20 A dan mampu menahan tegangan balik sampai 100V. Hal ini disebabkan oleh karena FET ini mampu menyerap tegangan spike tanpa perlindungan dioda. Tetapi komponen ini memerlukan heat sink  yang besar dan harus cukup baik dalam hal penyerapan panasnya. Ada baiknya jika digunakan kapasitor untuk menekan level tegangan spike yang ditimbulkan dari transisi saklar dari on ke off.

Konsep Dasar Motor Stepper (Bagian 1)

Stepper motor bukanlah barang baru di dalam dunia komputer. Bahkan hampir sebagian besar disk drive atau  CDROM menggunakan stepper motor untuk memutar disk. Penggunaannya juga cukup sederhana dan mudah digunakan untuk aplikasi-aplikasi tertentu yang tidak terlalu membutuhkan torsi yang besar.

Motor stepper banyak digunakan untuk aplikasi-aplikasi yang biasanya cukup menggunakan torsi yang kecil, seperti untuk penggerak piringan disket atau piringan CD. Dalam hal kecepatan, kecepatan motor stepper cukup cepat jika dibandingkan dengan motor DC. Motor stepper merupakan motor DC yang tidak memiliki komutator. Pada umumnya motor stepper hanya mempunyai kumparan pada statornya sedangkan pada bagian rotornya merupakan permanen magnet. Dengan model motor seperti ini maka motor stepper dapat diatur posisinya pada posisi tertentu dan/atau berputar ke arah yang diinginkan, csearah jarum jam atau sebaliknya.
Kecepatan motor stepper pada dasarnya ditentukan oleh kecepatan pemberian data pada komutatornya. Semakin cepat data yang diberikan maka motor stepper akan semakin cepat pula berputarnya. Pada kebanyakan motor stepper kecepatannya dapat diatur dalam daerah frekuensi audio dan akan menghasilkan putaran yang cukup cepat.

Tipe Motor Stepper
Motor stepper dibedakan menjadi dua macam berdasarkan magnet yang digunakan, yaitu tipe permanen magnet dan variabel reluktansi. Pada umumnya motor stepper saat ini yang digunakan adalah motor stepper yang mempunyai variabel relukatansi. Cara yang paling mudah untuk membedakan antara tip motor stepper di atas adalah dengan cara memutar rotor dengan tangan ketika tidak dihubungkan ke suplai.
Pada motor stepper yang mempunyai permanen magnet maka ketika diputar dengan tangan akan terasa lebih tersendat karena adanya gaya yang ditimbulkan oleh permanen magnet. Tetapi ketika menggunakan motor dengan variabel reluktansi maka ketika  diputar akan lebih halus karena sisa reluktansinya cukup kecil.
 
 
Variabel Reluktansi Motor
Pada motor stepper yang mempunyai variabel reluktansi maka terdapat 3 buah lilitan yang pada ujungnya dijadikan satu pada sebuah pin common. Untuk dapat menggerakkan motor ini maka aktivasi tiap-tiap lilitan harus sesuai urutannya.
Gambar 1 merupakan gambar struktur dari motor dengan variabel reluktansi dimana tiap stepnya adalah 30°. Mempunyai 4 buah  kutub pada rotor dan 6 buah kutub pada statornya yang terletak saling berseberangan.
Gambar 1
Variabel Reluktance Motor

Jika lilitan 1 dilewati oleh arus, lilitan 2 mati dan lilitan 3 juga mati maka kumparan 1 akan menghasilkan gaya tolakan kepada rotor dan rotor akan berputar sejauh 30° searah jarum jam sehingga kutub rotor dengan label Y sejajar dengan kutub dengan label 2.
Jika kondisi seperti ini berulang terus menerus secara berurutan, lilitan 2 dilewati arus kemudian lilitan 3 maka motor akan berputar secara terus menerus. Maka agar dapat berputar sebanyak 21 step maka perlu diberikan data dengan urutan seperti pada gambar 2.

‘1’ pada gambar 2 diartikan bahwa lilitan yang bersangkutan dilewati arus sehingga menghasilkan gaya tolak untuk rotor. Sedangkan ‘0’ diartikan lilitan dalam kondisi off, tidak mendapatkan arus.

Unipolar Motor Stepper
Motor stepper dengan tipe unipolar adalah motor stepper yang mempunyai 2 buah lilitan yang masing-masing lilitan ditengah-tengahnya diberikan sebuah tap seperti  tampak pada gambar 3.
Gambar 3
Unipolar Stepper Motor

Motor ini mempunyai step tiap 30° dan mempunyai dua buah liliatan yang didistribusikan berseberangan 180° di antara kutub pada stator. Sedangkan pada rotonya menggunakan magnet permanen yang berbentuk silinder dengan mempunyai 6 buah kutub, 3 kutub selatan dan 3 buah kutub utara. Sehingga dengan konstrusi seperti ini maka jika dibutuhkan ke presisian dari motor stepper yang lebih tinggi dibutuhkan pula kutub-kutub pada stator dan rotor yang semakin banyak pula. Pada gambar 3, motor tersebut akan bergerak setiap step sebesar 30° dengan 4 bit urutan data (terdapat dua buah lilitan dengan tap, total lilitan menjadi 4 lilitan).
Ketelitian dari magnet permanen di rotor dapat sampai 1.8° untuk tiap stepnya. Ketika arus mengalir melalui tap tengah pada lilitan pertama akan menyebabkan kutub pada stator bagian atas menjadi kutub utara sedangkan kutub stator pada bagian bawah menjadi kutub selatan. Kondisi akan menyebabkan rotor mendapat gaya tarik menuju kutub-kutub ini. Dan ketika arus yang melalui lilitan 1 dihentikan dan lilitan 2 diberi arus maka rotor akan mengerak lagi menuju kutub-kutub ini. Sampai di sini  rotor sudah berputar sampai 30° atau 1 step.

Gambar 4
Urutan Data Untuk Motor Stepper dengan Tipe Unipolar (torsi normal)

 Gambar 5
Urutan Data Motor Stepper Tipe Unipolar (torsi besar)


Untuk meningkatkan torsi yang tidak terlalu besar maka dapat digunakan urutan pemberian data seperti pada gambar 5. Dimana terdapat dua buah lilitan yang di beri arus pada suatu waktu. Dengan pemberian urutan data seperti ini akan menghasilkan torsi yang lebih besar dan tentunya membutuhkan daya yang lebih besar.
Dengan urutan data baik pada gambar 4 atau gambar 5 akan menyebabkan motor berputar sebanyak 24 step atau 4 putaran.

Bipolar Motor Stepper
Motor dengan tipe bipolar  ini mempunyai konstruksi yang hampir sama dengan motor stepper tipe unipolar namun tidak terdapat tap pada lilitannya, seperti tampak pada gambar 6.

Penggunaan motor dengan tipe bipolar ini membutuhkan rangkaian yang sedikit lebih rumit untuk mengatur agar motor ini dapat berputar dalam dua arah. Biasanya untuk menggerakkan motor stepper jenis ini membutuhkan sebuah driver motor yang sering dikenal sebagai H Bridge. Rangkaian ini akan menontrol tiap-tiap lilitan secara independen termasuk dengan polaritasnya untuk tiap-tiap lilitan.
Untuk mengontrol agar motor ini dapat berputar satu step maka perlu diberikan arus untuk tiap-tiap lilitan dengan polaritas tertentu pula. Urutan datanya dapat dilihat pada gambar 7.
Gambar 7
Urutan Data Motor Stepper tipe Bipolar

Bersambung pada bagian 2

Pemrograman MCS51/AVR dengan Bahasa Basic

Mungkin hal ini sudah tidak asing bagi kalangan pecinta mikrokontroler, tetapi dalam hal ini penulis mencoba menulis reviewnya sekedar untuk berbagi tutorial maupun softwarenya bagi yang membutuhkan. Nama aplikasinya ialah BASCOM 8051 untuk MCS51 dan BASCOM AVR untuk AVR.

Jadi jka teman-teman memiliki biasa menggunakan visual basic pasti akan mudah memprogram mikrokontroler keluarga MCS51 maupun AVR dengan software ini, karena statment nya tidak jauh berbeda dengan visual basic dan lebih menyenangkan lagi karena software ini dilengkapi simulasi output dan debug program yang mudah dipahami.

Ketika penulis mencoba menggunakan terasa begitu mudah dipahami meski baru beberapa saat. tidak sabar berikut screenhotnya :

sesi paling penting :
Download Bascom 8051 full version dapat download disini
Download Bascom AVR full version dapat download disini

Untuk tutorial dan artikel penggunaan bascom 8051/avr anda dapat mendownload pada kolom ebook



Pemrograman MCS51/AVR dengan Bahasa C

Bahasa Assembler merupakan bahasa pemrograman tingkat paling rendah, hanya mengenal instruksi-instruksi paling dasar mikrokontroler, ditambah dengan beberapa perintah untuk mengatur memori secara sederhana. Bahasa pemrograman ‘satu tingkat’ di atas Asembler adalah bahasa C yang sangat fleksible, dipakai untuk membangun Windows, tapi bisa juga dipakai untuk rancang bangun peralatan dengan mikrokontroler.

C asalnya dirancang sebagai bahasa pemrograman untuk membangun sistem  operasi UNIX pada komputer DEC PDP-11, sekitar awal tahun 1970-an. Bahasa ini berkembang secara pesat, pada tahun 1983, American National Standards Institute (ANSI) membentuk komite kerja dengan tugas khusus membakukan bahasa C sebagai bahasa pemrograman yang tidak tergantung pada jenis komputer. Hasil kerja komite tersebut merupakan pedoman baku untuk bahasa C, dan C compiler yang dibangun atas dasar pedoman tersebut disebut sebagai ANSI-C.
Semua C compiler yang ada kini kebanyakan adalah ANSI-C, tapi masing-masing mempunyai variasinya tersendiri, dilengkapi dengan sarana-sarana untuk memudahkan pemakaian C pada komputer tertentu. Dalam hal ini dikenal Turbo C, Borland C++, Visual C dan lain sebagainya, semuanya merupakan C Compiler yang banyak dipakai pada IBM-PC, tentu saja hasil akhir dari semua C Compiler tadi adalah kode mesin untuk prosesor IBM-PC (8086, 80286, 80386, 80486 dan Pentium).
Tapi bahasa C untuk keperluan rancang bangun peralatan yang memakai mikrokontroler tentu saja tidak memerlukan sarana-sarana tambahan secanggih C Compiler yang dipakai dalam IBM-PC, dan hasil akhirnya harus berupa kode mesin untuk masing-masing mikrokontroler/mikroprosesor. Artinya C Compiler untuk mikrokontroler MCS51 harus menghasilkan kode mesin MCS51, C Compiler untuk MC68HC11 harus menghasilkan kode mesin MC68HC11 pula.
Dengan pengertian di atas. C Compiler untuk IBM-PC tidak bisa dipakai untuk mikrokontroler, dan masing-masing jenis mikrokontroler mempunyai C Compiler tersendiri.

C Compiler untuk MCS51

Sejak akhir tahun 1980-an, telah banyak dibuat C Cross-Compiler yang bekerja pada IBM-PC untuk MCS51, artinya C Compiler tersebut bekerja di IBM-PC tapi kode mesin yang dihasilkan bukan untuk IBM-PC melainkan untuk MCS51.
C Compiler untuk MCS51 yang cukup dikenal antara lain adalah Micro-C buatan Dunfield Development Systems, Franklin C buatan Franklin Software Inc dan C51 buatan Keil Software, harga perangkat lunak tersebut tidak murah. Yang menarik meskipun harganya mahal, Keil membagikan C51 produknya yang bisa diminta lewat situs web http://www.keil.com, C51 gratis tersebut dibatasi hanya bisa menghasilkan kode mesin MCS51 paling banyak 2 KiloByte. Tapi untuk keperluan projek kecil-kecil yang memakai AT89C2051 batasan memori tersebut tidak merupakan masalah, karena memori-program AT89C2051 memang hanya sebesar 2 KiloByte.
Selain produk komersil tersebut di atas, ada pula C Compiler gratis, yang dikenal sebagai SDCC – Small Device C Compiler.

Small Device C Compiler - SDCC

SDCC, buatan Sandeep Dutta (sandeep@users.sourceforge.net), sejak semula memang dibuat sebagai software gratis (freeware), kemudian project mulia ini digabungkan dengan projek GNU, yakni projek ramai-ramai insan Internet yang melahirkan Linux. Dengan demikian, kini program SDCC bisa diambil pada situs http://sdcc.sourceforge.net.

Dalam rancangannya, SDCC dipersiapkan untuk berbagai macam mikroprosesor / mikrokontroler, hal ini sesuai dengan sifat bahasa C yang mudah diadaptasikan ke berbagai macam prosesor. Sampai saat ini, SDCC sudah bisa dipakai untuk mikroprosesor Z80, mikrokontroler MCS51, dalam waktu dekat akan segera bisa dipakai untuk mikrokontroler AVR buatan Atmel, dan mikrokontroler PIC buatan MicroChip, dan beberapa prosesor lainnya akan segera menyusul.
Hal ini membuat SDCC menjadi sangat menarik. Setelah terbiasa memakai SDCC untuk projek-projek dengan MCS51, kelak satu saat bermaksud memakai mikrokontroler AVR karena memerlukan mikrokontroler yang kemampuannya lebih, maka tidak banyak hambatan untuk beralih prosesor, bahkan program-program yang sudah dikembangkan untuk MCS51 dengan SDCC, dengan sedikit perubahan bisa dipakai di sistem yang memakai AVR.

SDCC dapat anda download disini
Manual booknya anda bisa download disini

Rangkaian Sensor Suhu LM35

Rangkaian sensor suhu ini menggunakan IC LM35 yang cukup presisi dan mudah didapat. kali ini penulis mencoba memanfaatkan IC ini sebagai indikator temperatur pada ruangan. untuk lebih jelasnya dibawah ini adalah skematik rangkaian sensor suhu ini :

klik pada gambar untuk ukuran sebenarnya
20 Led pada rangkaian bertindak sebagai leveling dari suhu yang terukur, jadi jika suhu semakin tinggi maka led akan bergeser ke kanan hingga batas tertinggi.
Usahakan menggunakan resistor dengan toleransi yang baik berkisar 1% supaya rangkaian presisi, setelah selesai perakitan rangkain sensor suhu ini perlu untuk dikalibrasi pada setiap kanalnya, berikut parameter yang harus anda kalibrasi :
Putar trimer potensio RB hingga VB menunjukkan 3,075V
Putar trimer potensio RC hingga VC menunjukkan 1,955V
Putar trimer potensio RA hingga VA menunjukkan 0,075V

Rangkaian membutuhkan tegangan total 7V, dan penulis mencoba menggunakan tegangan 5V alhasil rangkaian tetap bekerja dengan baik.
Terima Kasih