manual spc low cost motor controller
TRANSCRIPT
5/12/2018 Manual SPC Low Cost Motor Controller - slidepdf.com
http://slidepdf.com/reader/full/manual-spc-low-cost-motor-controller 1/19Smart Peripheral Controller
5/12/2018 Manual SPC Low Cost Motor Controller - slidepdf.com
http://slidepdf.com/reader/full/manual-spc-low-cost-motor-controller 2/19
Daftar Isi
1 Pendahuluan............................................................................................. 31.1 Spesifikasi SPC LOW COST MOTOR CONTROLLER......................... 31.2 Sistem yang Dianjurkan............................................................................ 3
2 Perangkat Keras SPC LOW COST MOTOR CONTROLLER......................... 32.1 Tata Letak Komponen SPC LOW COST MOTOR CONTROLLER..... 3
2.2 Konektor dan Pengaturan Jumper.......................................................... 4
3 Antarmuka SPC LOW COST MOTOR CONTROLLER................................. 63.1 Antarmuka UART TTL................................................................................. 63.2 Antarmuka I2C............................................................................................. 73.3 Command Set.............................................................................................. 83.3.1 DC Forward................................................................................................. 83.3.2 DC Reverse.................................................................................................. 9
3.3.3 DC Stop........................................................................................................ 103.3.4 DC All Stop.................................................................................................. 113.3.5 Stepper Continuous Run............................................................................ 113.3.6 Stepper Pulse Count Run........................................................................... 123.3.7 Stepper Brake............................................................................................ 143.3.8 Stepper Stop............................................................................................... 153.3.9 Set I2C Address........................................................................................... 153.3.10 Read I2C Address....................................................................................... 16
5/12/2018 Manual SPC Low Cost Motor Controller - slidepdf.com
http://slidepdf.com/reader/full/manual-spc-low-cost-motor-controller 3/19
1. PENDAHULUANSmart Peripheral Controller / SPC LOW COST MOTOR CONTROLLER
merupakan sebuah modul pengendali motor DC dan motor stepper yangringkas dan handal serta cocok untuk aplikasi robotik. Modul ini dapatdigunakan untuk mengendalikan arah dan kecepatan putaran 4 buah motorDC menggunakan metode Pulse Width Modulation (PWM) atau 2 buah motorstepper menggunakan full-step maupun half-step. Modul ini sudah dilengkapidengan quad full H-Bridge driver serta antarmuka UART level TTL dan I2Csehingga dapat dengan mudah dihubungkan dengan sistem lain.
1.1. SPESIFIKASI SPC LOW COST MOTOR CONTROLLERSpesifikasi SPC LOW COST MOTOR CONTROLLER adalah sebagai berikut:
• Sumber catu daya modul menggunakan tegangan 4,8 – 5,4 Volt.
• Sumber catu daya motor menggunakan tegangan 8 – 36 Volt.
• Menggunakan IC motor driver A3988.
• Kemampuan Arus Kontinu tiap driver 1,2 A.
• Dapat digunakan untuk motor stepper unipolar atau bipolar.
• Pin Input/Output kompatibel dengan level tegangan TTL dan CMOS.• Dilengkapi dengan antarmuka UART TTL dan I2C.
• Jika menggunakan I2C, SPC LOW COST MOTOR CONTROLLER dapat di-cascade hingga 8 modul.
1.2. SISTEM YANG DIANJURKAN
Sistem yang dianjurkan untuk penggunaan SPC LOW COST MOTORCONTROLLER adalah:
P k t k
5/12/2018 Manual SPC Low Cost Motor Controller - slidepdf.com
http://slidepdf.com/reader/full/manual-spc-low-cost-motor-controller 4/19
2. PERANGKAT KERAS SPC LOW COST MOTOR CONTROLLER
2.1. TATA LETAK KOMPONEN SPC LOW COST MOTOR CONTROLLER
2.2. KONEKTOR DAN PENGATURAN JUMPER
Konektor INTERFACE PORT (J1) berfungsi sebagai konektor untuk catu dayamodul, catu daya motor, antarmuka UART TTL, antarmuka I2C, dan koneksi kemotor.
5/12/2018 Manual SPC Low Cost Motor Controller - slidepdf.com
http://slidepdf.com/reader/full/manual-spc-low-cost-motor-controller 5/19
Jumper J3, J4, J6, dan J7 berfungsi untuk memilih mode operasi masing-masingH-Bridge pada modul SPC.
Fungsi M1 & M2 Posisi J3 & J4 Fungsi M3 & M4 Posisi J6 & J7
PengendaliMotor DC
PengendaliMotor DC
PengendaliMotor Stepper
PengendaliMotor Stepper
Perhatikan tipe motor stepper yang akan dihubungkan ke SPC LOW COSTMOTOR CONTROLLER karena koneksinya berbeda-beda untuk masing-masing
tipe. SPC LOW COST MOTOR CONTROLLER dapat dipergunakan untuk 3macam tipe motor stepper yaitu: Bipolar, Unipolar 5 kabel, dan Unipolar 6kabel. Berikut adalah contoh koneksi untuk tiap tipe motor stepper:
8V36V
Konektor J1
Bipolar
J3 J4
1
23
J3 J4
12
3
J6 J7
1
23
J6 J7
123
5/12/2018 Manual SPC Low Cost Motor Controller - slidepdf.com
http://slidepdf.com/reader/full/manual-spc-low-cost-motor-controller 6/19
Jumper SCL-SDA (J5) berfungsi untuk mengaktifkan resistor pull-up untuk pinSDA dan SCL pada antarmuka I2C.
Jumper SCL-SDAJ5
Fungsi
P ll id k k if
8V-36V
Ground Catu Daya Motor
VM
M11/M31
M12/M32
M21/M41
MGND
M22/M42
Konektor J1
MB
A
C
D
COMMON 1
COMMON 2
Unipolar 6 kabel
5/12/2018 Manual SPC Low Cost Motor Controller - slidepdf.com
http://slidepdf.com/reader/full/manual-spc-low-cost-motor-controller 7/19
• tanpa flow control
Semua perintah yang dikirim melalui antarmuka UART TTL dimulai denganmengirim 1 byte data yang berisi <nomor perintah> dan (jika diperlukan) n-byte data parameter perintah.
Jika transmisi perintah berserta parameternya berhasil, maka SPC LOW COSTMOTOR CONTROLLER akan mengirimkan 0x06 (Acknowledged/ACK). Jikaperintah tidak dikenal, maka SPC LOW COST MOTOR CONTROLLER akanmengirimkan 0x15 (Not Acknowledged/NCK). Sedangkan jika perintah dikenal
tetapi parameter perintah salah, maka SPC LOW COST MOTORCONTROLLER tidak akan mengirimkan balasan.
Jika perintah yang telah dikirimkan merupakan perintah yang meminta datadari modul SPC LOW COST MOTOR CONTROLLER, maka SPC LOW COSTMOTOR CONTROLLER akan mengirimkan data melalui jalur TX TTL.
Sebuah data parameter yang memiliki range lebih besar dari 255 desimal
(lebih besar dari 1 byte) dikirim secara dua tahap. Satu byte data MSBdikirim lebih dahulu kemudian diikuti dengan data LSB. Misalnya parameter<pulse delay> yang memiliki range 1 - 65535. Jika <pulse delay> bernilai1500 maka byte MSB yang dikirim/diterima adalah 5 dan byte LSB yangdikirim/diterima adalah 220 ((5x256)+220=1500).
Perintah dan parameter yang bisa digunakan dapat dilihat pada bagian 3.3.
3 2 ANTARMUKA I2C
5/12/2018 Manual SPC Low Cost Motor Controller - slidepdf.com
http://slidepdf.com/reader/full/manual-spc-low-cost-motor-controller 8/19
Jika transmisi perintah berserta parameternya berhasil, maka SPC LOW COSTMOTOR CONTROLLER akan menulis respon heksadesimal 0x06
(Acknowledged/ACK) pada buffer I2C-nya. Sebaliknya jika perintah tidakdikenal atau parameter perintah salah, maka SPC LOW COST MOTORCONTROLLER akan menulis respon heksadesimal 0x15 (NotAcknowledged/NCK) pada buffer I2C-nya.
Master dapat mengirimkan perintah baca untuk membaca respon<ACK/NCK> tersebut. Jika perintah yang telah dikirimkan merupakanperintah yang meminta data dari modul SPC LOW COST MOTOR
CONTROLLER, maka data-data tersebut dapat dibaca, setelah membacarespon, dengan menggunakan urutan perintah baca.
Berikut urutan yang harus dilakukan untuk membaca respon dan/atau datadari SPC LOW COST MOTOR CONTROLLER.
+ +1 1 1 0 X X X 1
Alamat Baca
Start
++0 0 0 X 0 1 X X
ACK / NCK
X X X X X X X X
Data 1 (jika ada)
Stop++ X X X X X X X X
Data n (jika ada)
...
5/12/2018 Manual SPC Low Cost Motor Controller - slidepdf.com
http://slidepdf.com/reader/full/manual-spc-low-cost-motor-controller 9/19
Keterangan ● Intensitas cahaya LED indikator masing2 H-Bridge (M1,M2, M3, dan M4) akan sebanding dengan nilai PWM
yang diberikan. Jika nilai PWM adalah 0 maka LEDindikator akan padam. Sedangkan jika nilai PWMadalah 255 maka LED indikator akan menyala denganintensitas yang paling tinggi.
● Pada kondisi forward , LED indikator juga akan akanberkedip.
● Pada kondisi forward , Mn1 (n merupakan nomor H-Bridge) akan mengeluarkan tegangan sebanding
dengan nilai PWM sedangkan Mn2 akan terhubungdengan MGND.
● Arah motor dan nilai PWM tidak akan disimpan diEEPROM. Saat modul SPC baru power on, nilai PWMsetiap H-bridge adalah 0 (nol) dan motor pada kondisistop (ke-4 LED indikator akan berkedip redup tiapkurang lebih 2 detik).
Contoh dengan antarmuka UART untuk mengendalikan kecepatan putaranmaju motor DC yang terhubung ke M1. Misalkan duty cycle yang diinginkan50% (0,5 * 255 = 128) atau setara dengan bilangan desimal 128 danbilangan heksadesimal 0x80:
User : 0x30 0x01 0x80SPC : 0x06
Berikut ini contoh pseudo code untuk menggunakan perintah ini dengan
k I
2
C ( i lk l I
2
C 0 E0)
5/12/2018 Manual SPC Low Cost Motor Controller - slidepdf.com
http://slidepdf.com/reader/full/manual-spc-low-cost-motor-controller 10/19
Respon 0x06 jika perintah dikenali0x15 jika perintah tidak dikenali
Delay antaraCommanddan Respon
10 µs
Keterangan ● Intensitas cahaya LED indikator masing2 H-Bridge (M1,M2, M3, dan M4) akan sebanding dengan nilai PWMyang diberikan. Jika nilai PWM adalah 0 maka LEDindikator akan padam. Sedangkan jika nilai PWMadalah 255 maka LED indikator akan menyala dengan
intensitas yang paling tinggi.● Pada kondisi reverse, Mn2 (n merupakan nomor H-
Bridge) akan mengeluarkan tegangan sebandingdengan nilai PWM sedangkan Mn1 akan terhubungdengan MGND.
● Arah motor dan nilai PWM tidak akan disimpan diEEPROM. Saat modul SPC baru power on, nilai PWMsetiap H-bridge adalah 0 (nol) dan motor pada kondisi
stop (ke-4 LED indikator akan berkedip redup tiapkurang lebih 2 detik).
Contoh dengan antarmuka UART untuk mengendalikan kecepatan putaranmundur motor DC yang terhubung ke M1. Misalkan duty cycle yang diinginkan20% (0,25 * 255 = 64) atau setara dengan bilangan desimal 64 danbilangan heksadesimal 0x40:
User : 0x31 0x01 0x40
SPC 0 06
5/12/2018 Manual SPC Low Cost Motor Controller - slidepdf.com
http://slidepdf.com/reader/full/manual-spc-low-cost-motor-controller 11/19
Delay antara
Command
dan Respon
10 µs
Keterangan ● Pada kondisi stop, Mn1 dan Mn2 akan berada padakondisi tri state / high impedance.
Contoh dengan antarmuka UART untuk menghentikan putaran motor DC yangterhubung ke M1:
User : 0x32 0x01SPC : 0x06
Berikut ini contoh pseudo code untuk menggunakan perintah ini denganantarmuka I2C (misalkan alamat I2C = 0xE0):
i2c_start(); // Start Conditioni2c_write(0xE0); // Tulis ke modul SPC Low Cost Motori2c_write(0x32); // Perintah “DC Stop”i2c_write(0x01); // nomor motori2c_stop(); // Stop Condition
delay_us(10); // delay 10 us
i2c_start(); // Start Conditioni2c_write(0xE1); // Baca ke modul SPC Low Cost Motortemp = i2c_read(0); // Data Acknowledgementi2c_stop(); // Stop Condition
3 3 4 DC ALL STOP
5/12/2018 Manual SPC Low Cost Motor Controller - slidepdf.com
http://slidepdf.com/reader/full/manual-spc-low-cost-motor-controller 12/19
delay_us(10); // delay 10 us
i2c_start(); // Start Condition
i2c_write(0xE1); // Baca ke modul SPC Low Cost Motortemp = i2c_read(0); // Data Acknowledgementi2c_stop(); // Stop Condition
3.3.5. STEPPER CONTINUOUS RUN
Fungsi Mengendalikan motor stepper agar berputar secara kontinuPerintah 0x34
Parameter <Motor number>1 motor stepper yang terhubung pada M1 dan M22 motor stepper yang terhubung pada M3 dan M4
<tipe step>1 Full-Step: motor akan berputar 1 step tiap 1 pulsa2 Half-Step: motor akan berputar 1/2 step tiap 1
pulsa
<direction>0 motor berputar searah jarum jam1 motor berputar berlawanan arah jarum jam
<pulse delay>1 - 65535 waktu tunda antar pulsa ke motor stepper.
S ki k il il i l d l k
5/12/2018 Manual SPC Low Cost Motor Controller - slidepdf.com
http://slidepdf.com/reader/full/manual-spc-low-cost-motor-controller 13/19
i2c_write(0x00); // derectioni2c_write(0x00); // pulse delay MSB
i2c_write(0x64); // pulse delay LSBi2c_stop(); // Stop Condition
delay_us(10); // delay 10 us
i2c_start(); // Start Conditioni2c_write(0xE1); // Baca ke modul SPC Low Cost Motortemp = i2c_read(0); // Data Acknowledgementi2c_stop(); // Stop Condition
3.3.6. STEPPER PULSE COUNT RUN
Fungsi Mengendalikan motor stepper agar berputar sejumlah stepyang diberikan
Perintah 0x35
Parameter <Motor number>1 motor stepper yang terhubung pada M1 dan M22 motor stepper yang terhubung pada M3 dan M4
<tipe step>1 Full-Step: motor akan berputar 1 step tiap 1 pulsa2 Half-Step: motor akan berputar 1/2 step tiap 1
pulsa
<direction>
0
b h
5/12/2018 Manual SPC Low Cost Motor Controller - slidepdf.com
http://slidepdf.com/reader/full/manual-spc-low-cost-motor-controller 14/19
Contoh dengan antarmuka UART untuk menggerakkan motor stepper yangterhubung ke M1 dan M2 agar berputar searah jarum jam sebanyak 20
(bilangan heksadesimal 0x0014) pulsa dengan tipe step adalah full-step, sertadelay antar pulsa sebesar kurang lebih 1000 ms (bilangan heksadesimal0x03E8):
User : 0x35 0x01 0x01 0x00 0x03 0xE8 0x00 0x14SPC : 0x06
Berikut ini contoh pseudo code untuk menggunakan perintah ini denganantarmuka I2C (misalkan alamat I2C = 0xE0):
i2c_start(); // Start Conditioni2c_write(0xE0); // Tulis ke modul SPC Low Cost Motori2c_write(0x35); // Perintah “Stepper Pulse Count Run”i2c_write(0x01); // nomor motori2c_write(0x01); // tipe stepi2c_write(0x00); // derectioni2c_write(0x03); // pulse delay MSBi2c_write(0xE8); // pulse delay LSB
i2c_write(0x00); // pulse count MSBi2c_write(0x14); // pulse count LSBi2c_stop(); // Stop Condition
delay_us(10); // delay 10 us
i2c_start(); // Start Conditioni2c_write(0xE1); // Baca ke modul SPC Low Cost Motortemp = i2c_read(0); // Data Acknowledgementi2c_stop(); // Stop Condition
5/12/2018 Manual SPC Low Cost Motor Controller - slidepdf.com
http://slidepdf.com/reader/full/manual-spc-low-cost-motor-controller 15/19
Berikut ini contoh pseudo code untuk menggunakan perintah ini denganantarmuka I2C (misalkan alamat I2C = 0xE0):
i2c_start(); // Start Conditioni2c_write(0xE0); // Tulis ke modul SPC Low Cost Motori2c_write(0x36); // Perintah “Stepper Brake”i2c_write(0x01); // nomor motori2c_stop(); // Stop Condition
delay_us(10); // delay 10 us
i2c_start(); // Start Conditioni2c_write(0xE1); // Baca ke modul SPC Low Cost Motortemp = i2c_read(0); // Data Acknowledgementi2c_stop(); // Stop Condition
3.3.8. STEPPER STOP
Fungsi Menghentikan motor stepper (lilitan motor tidak dialiri arus)
Perintah 0x37Parameter <Motor number>1 motor stepper yang terhubung pada M1 dan M22 motor stepper yang terhubung pada M3 dan M4
Respon 0x06 jika perintah dikenali0x15 jika perintah tidak dikenali
Delay antaraCommand
d R
10 µs
5/12/2018 Manual SPC Low Cost Motor Controller - slidepdf.com
http://slidepdf.com/reader/full/manual-spc-low-cost-motor-controller 16/19
3.3.9. SET I2C ADDRESS
Fungsi Mengubah alamat I2CPerintah 0x41
Parameter <0xAA> <0x55> <newAddress>Respon 0x06 jika perintah dikenali
0x15 jika perintah tidak dikenaliDelay antaraCommanddan Respon
10 µs
Keterangan ● Perintah ini hanya dapat dilakukan denganmenggunakan jalur komunikasi UART.● Modul SPC akan menggunakan alamat I2C yang baru
setelah melalui siklus power off .● Alamat I2C <newAddress> yang diperbolehkan dapat
dilihat pada tabel berikutnya.● Jika alamat baru yang diberikan tidak sesuai, maka
alamat I2C tidak akan diubah (tetap alamat
sebelumnya).● Alamat I2C default adalah 0xE0.● Data alamat I2C disimpan di EEPROM sehingga tidak
akan hilang saat power off .
Alamat I2C
Alamat Tulis I2C Alamat Baca I2C
0xE0 0xE1
5/12/2018 Manual SPC Low Cost Motor Controller - slidepdf.com
http://slidepdf.com/reader/full/manual-spc-low-cost-motor-controller 17/19
berkedip 1 kali. Jika alamat I2C adalah 0xE2 makaLED indikator akan berkedip 2 kali. Jika alamat I2C
adalah 0xE4 maka LED indikator akan berkedip 3 kalidan demikian seterusnya sampai alamat I2C 0xEE makaLED indikator akan berkedip 8 kali.
Contoh dengan antarmuka UART:
User : 0x42Modul SPC : <I2CAddress>
4. PROSEDUR PENGUJIAN
1. Hubungkan sumber catu daya 5 Volt ke VIN dan 9 - 12 Volt ke VM modulSPC LOW COST MOTOR CONTROLLER.
2. LED indikator akan berkedip yang menandakan alamat I2C.3. Kirimkan perintah “DC Forward” ke motor 1 (M1) dengan nilai PWM 255
melalui antarmuka UART TTL.4. LED indikator M1 akan berkedip dan jika diukur tegangan antara pin M11
dan M12, maka hasil akan mendekati nilai tegangan catu daya motoryang diberikan pada pin VM.
5. Ulangi langkah 3 dan 4 untuk motor 2 (M2), motor 3 (M3), dan motor 4(M4).
5. CONTOH APLIKASI DAN PROGRAMSebagai contoh aplikasi, dimisalkan modul SPC LOW COST MOTOR
5/12/2018 Manual SPC Low Cost Motor Controller - slidepdf.com
http://slidepdf.com/reader/full/manual-spc-low-cost-motor-controller 18/19
Sebagai contoh program untuk aplikasi di atas, pada DVD yang disertakanpada saat pembelian modul SPC LOW COST MOTOR CONTROLLERdisertakan program contoh_i2c.c dan contoh_uart.c yang ditulis denganmenggunakan CodeVisionAVR 1.25.2 versi evaluasi.
DT-AVR
LCMSRXD
TXD RX (PORTD.0)
TX (PORTD.1)
M1
M2
M11
M12
M21M22
VM (8V – 36V ) VIN (+5 V )
MGND
(Ground Catu Daya Motor)
PGND(Ground Catu Daya
Digital)
M3
M4
M31
M32M41M42
SPC
LOW COST
MOTORCONTROLLER
(alamat 0xE0)
5/12/2018 Manual SPC Low Cost Motor Controller - slidepdf.com
http://slidepdf.com/reader/full/manual-spc-low-cost-motor-controller 19/19
LAMPIRAN A.Skematik SPC LOW COST MOTOR CONTROLLER
19