Smart Peripheral Controller
Neo DC Motor 2.4A
Trademarks & Copyright AT, IBM, and PC are trademarks of International Business Machines Corp. Pentium is a registered trademark of Intel Corporation. Windows is a registered trademark of Microsoft Corporation. CodeVisionAVR is copyright by Pavel Haiduc, HP InfoTech s.r.l.
Daftar Isi 1
Pendahuluan............................................................................................. 1.1 Spesifikasi SPC NEO DC MOTOR 2.4A................................................ 1.2 Sistem yang Dianjurkan............................................................................
3 3 3
2
Perangkat Keras SPC NEO DC MOTOR 2.4A........................................... 2.1 Tata Letak Komponen SPC NEO DC MOTOR 2.4A........................... 2.2 Konektor dan Pengaturan Jumper..........................................................
3 3 4
3
Antarmuka SPC NEO DC MOTOR 2.4A.................................................... 3.1 Antarmuka UART TTL................................................................................. 3.2 Antarmuka I2C............................................................................................. 3.3 Command Set.............................................................................................. 3.3.1 M1 Forward................................................................................................ 3.3.2 M1 Reverse.................................................................................................. 3.3.3 M1 Stop....................................................................................................... 3.3.4 M1 Brake..................................................................................................... 3.3.5 M2 Forward................................................................................................ 3.3.6 M2 Reverse.................................................................................................. 3.3.7 M2 Stop....................................................................................................... 3.3.8 M2 Brake..................................................................................................... 3.3.9 All Stop......................................................................................................... 3.3.10 All Brake...................................................................................................... 3.3.11 All Forward.................................................................................................. 3.3.12 All Reverse................................................................................................... 3.3.13 Set PWM Frequency.................................................................................. 3.3.14 Set I2C Address........................................................................................... 3.3.15 Read I2C Address.......................................................................................
5 5 5 5 6 6 7 7 8 8 9 9 10 10 10 11 11 12 12
4
Prosedur Pengujian..................................................................................
13
5
Contoh Aplikasi dan Program..................................................................
13
Lampiran A.
Skematik SPC NEO DC MOTOR 2.4A...................................................
2
15
1.
PENDAHULUAN Smart Peripheral Controller / SPC NEO DC MOTOR 2.4A merupakan sebuah modul pengendali motor DC yang ringkas dan handal serta cocok untuk aplikasi robotik. Modul ini dapat digunakan untuk mengendalikan arah dan kecepatan putaran 2 buah motor DC menggunakan metode Pulse Width Modulation (PWM). Modul ini sudah dilengkapi dengan dual full H-bridge driver serta antarmuka UART level TTL dan I2C sehingga dapat dengan mudah dihubungkan dengan sistem lain.
1.1.
SPESIFIKASI SPC NEO DC MOTOR 2.4A Spesifikasi SPC NEO DC MOTOR 2.4A 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 A3995. • Kemampuan Arus Kontinu tiap driver 2,4 A. • Pilihan frekuensi PWM yang tersedia 21,68 kHz, 2,71 kHz (default), 338,8 Hz, dan 84,7 Hz. • Pin Input/Output kompatibel dengan level tegangan TTL dan CMOS. • Dilengkapi dengan antarmuka UART TTL dan I2C. • Jika menggunakan I2C, SPC NEO DC MOTOR 2.4A dapat di-cascade hingga 8 modul. • Konektor modul menggunakan konfigurasi 16 pin DIP 600mil sehingga lebih mudah dihubungkan langsung ke project board atau PCB lubang.
1.2.
SISTEM YANG DIANJURKAN Sistem yang dianjurkan untuk penggunaan SPC NEO DC MOTOR 2.4A adalah: Perangkat keras: • PC™ AT™ Pentium® IBM™ Compatible dengan port USB. • DT-AVR Low Cost Series. • DVD-ROM Drive dan Hard disk. Perangkat lunak: • Sistem operasi Windows® XP. • CodeVisionAVR©. • File/Folder yang ada pada CD/DVD program: Folder contoh_i2c, folder contoh_uart, A3995.pdf, dan Manual SPC Neo DC Motor 2.4A.pdf.
2.
PERANGKAT KERAS SPC NEO DC MOTOR 2.4A
2.1.
TATA LETAK KOMPONEN SPC NEO DC MOTOR 2.4A
3
2.2.
KONEKTOR DAN PENGATURAN JUMPER Konektor INTERFACE (J2) berfungsi sebagai konektor untuk catu daya modul, antarmuka UART TTL, dan antarmuka I2C. Pin
Nama
Fungsi
1,2
VIN
Terhubung ke catu daya (4,8 – 5,4 Volt)
3
SCL
I2C-bus clock input
4
SDA
I2C-bus data input / output
5
RX TTL
Input serial level TTL ke modul SPC
6
TX TTL
Output serial level TTL dari modul SPC
7,8
PGND
Titik referensi untuk catu daya modul SPC
Konektor MOTOR (J3) berfungsi sebagai konektor untuk catu daya motor dan koneksi modul ke motor. Pin
Nama
Fungsi
1,2
VM
Terhubung ke catu daya untuk motor (8 Volt – 36 Volt)
3
M11
Output ke-1 dari pasangan H-Bridge M1
4
M12
Output ke-2 dari pasangan H-Bridge M1
5
M21
Output ke-1 dari pasangan H-Bridge M2
6
M22
Output ke-2 dari pasangan H-Bridge M2
7,8
MGND
Titik referensi untuk catu daya motor
M11 dan M12 terhubung ke motor DC 1, sedangkan M21 dan M22 terhubung ke motor DC 2. Jumper SCL-SDA (J4) berfungsi untuk mengaktifkan resistor pull-up untuk pin SDA dan SCL pada antarmuka I2C. Jumper SCL-SDA J4
Fungsi Pull-up tidak aktif (jumper terlepas)
SCL SDA
Pull-up aktif (jumper terpasang) SCL SDA Penting ! Apabila lebih dari satu modul dihubungkan pada I 2C-bus maka jumper SCL-SDA (J4) salah satu modul saja yang perlu dipasang. Pengaturan alamat I2C dapat dilakukan melalui antarmuka UART TTL. LED M1 IND (D3) berfungsi sebagai indikator kondisi Motor DC 1. LED M2 IND (D4) berfungsi sebagai indikator kondisi Motor DC 2. 4
3.
ANTARMUKA SPC NEO DC MOTOR 2.4A SPC NEO DC MOTOR 2.4A memiliki antarmuka UART TTL dan I2C yang dapat digunakan untuk menerima perintah atau mengirim data.
3.1.
ANTARMUKA UART TTL Parameter komunikasi UART TTL adalah sebagai berikut: • 38400 bps • 8 data bit • 1 stop bit • tanpa parity bit • tanpa flow control Semua perintah yang dikirim melalui antarmuka UART TTL dimulai dengan mengirim 1 byte data yang berisi <nomor perintah> dan (jika diperlukan) nbyte data parameter perintah. Jika perintah yang telah dikirimkan merupakan perintah yang meminta data dari modul SPC NEO DC MOTOR 2.4A, maka SPC NEO DC MOTOR 2.4A akan mengirimkan data melalui jalur TX TTL. Perintah dan parameter yang bisa digunakan dapat dilihat pada bagian 3.3.
3.2.
ANTARMUKA I2C Modul SPC NEO DC MOTOR 2.4A memiliki antarmuka I2C. Pada antarmuka I2C ini, modul SPC NEO DC MOTOR 2.4A bertindak sebagai slave dengan alamat sesuai dengan telah ditentukan sebelumnya melalui perintah UART (lihat bagian 3.3.12). Antarmuka I2C pada modul SPC NEO DC MOTOR 2.4A mendukung bit rate sampai dengan maksimum 50 kHz. Semua perintah yang dikirim melalui antarmuka I2C diawali dengan start condition dan kemudian diikuti dengan pengiriman 1 byte alamat modul SPC NEO DC MOTOR 2.4A. Setelah pengiriman alamat, selanjutnya master harus mengirim 1 byte data yang berisi <nomor perintah> dan (jika diperlukan) 1 byte data parameter perintah. Selanjutnya, setelah seluruh parameter perintah telah dikirim, urutan perintah diakhiri dengan stop condition. Berikut urutan yang harus dilakukan untuk mengirimkan perintah melalui antar muka I2C. Start
+
1
1
1
0
X
X
X
0
+
X
X
X
Alamat Tulis X
X
X
X
X
X
X
X
+
Command
X
X
X
X
X
+
Parameter (jika ada)
Stop Perintah dan parameter yang bisa digunakan dapat dilihat pada bagian 3.3. 3.3.
COMMAND SET Berikut ini daftar lengkap perintah-perintah dalam antarmuka UART dan I2C. 5
3.3.1. M1 FORWARD Fungsi Perintah Parameter
Mengendalikan putaran maju motor DC 1 0x30
0 - 255 persentase duty cycle yang diberikan (0 = 0% ; 255 = 100%). Respon Keterangan ● Pada kondisi forward, M11 akan mengeluarkan tegangan sebanding dengan nilai PWM sedangkan M12 akan terhubung dengan MGND. ● Pada kondisi forward, LED indikator M1 berwarna hijau. ● Arah motor dan nilai PWM tidak akan disimpan di EEPROM. Saat modul SPC baru power on, nilai PWM pada saat power on adalah 0 (nol) dan motor pada kondisi stop (LED indikator M1 berwarna jingga/oranye). Contoh dengan antarmuka UART untuk mengendalikan kecepatan putaran maju motor DC yang terhubung ke M1. Misalkan duty cycle yang diinginkan 50% (0,5 * 255 = 128) atau setara dengan bilangan desimal 128 dan bilangan hexadesimal 0x80: User
:
0x30 0x80
Berikut ini contoh pseudo code untuk menggunakan perintah ini dengan antarmuka I2C (misalkan alamat I2C = 0xE0): i2c_start(); i2c_write(0xE0); i2c_write(0x30); i2c_write(0x80); i2c_stop();
// // // // //
Start Condition Tulis ke modul SPC Neo DC Motor Perintah “M1 Forward” nilai PWM Stop Condition
3.3.2. M1 REVERSE Fungsi Perintah Parameter
Mengendalikan putaran mundur motor DC 1 0x31 0 - 255 persentase duty cycle yang diberikan (0 = 0% ; 255 = 100%). Respon Keterangan ● Pada kondisi reverse, M12 akan mengeluarkan tegangan sebanding dengan nilai PWM sedangkan M11 akan terhubung dengan MGND. ● Pada kondisi reverse, LED indikator M1 berwarna merah. ● Arah motor dan nilai PWM tidak akan disimpan di EEPROM. Saat modul SPC baru power on, nilai PWM pada saat power on adalah 0 (nol) dan motor pada kondisi stop (LED indikator M1 berwarna jingga/oranye). Contoh dengan antarmuka UART untuk mengendalikan kecepatan putaran mundur motor DC yang terhubung ke M1. Misalkan duty cycle yang diinginkan 20% (0,25 * 255 = 64) atau setara dengan bilangan desimal 64 dan bilangan hexadesimal 0x40: User
:
0x31 0x40 6
Berikut ini contoh pseudo code untuk menggunakan perintah ini dengan antarmuka I2C (misalkan alamat I2C = 0xE0): i2c_start(); i2c_write(0xE0); i2c_write(0x31); i2c_write(0x40); i2c_stop();
// // // // //
Start Condition Tulis ke modul SPC Neo DC Motor Perintah “M1 Reverse” nilai PWM Stop Condition
3.3.3. M1 STOP Fungsi Perintah Parameter Respon Keterangan
Menghentikan putaran motor DC 1 0x32 ● Pada kondisi stop, M11 dan M12 akan berada pada kondisi tri state / high impedance. ● Pada kondisi stop, LED indikator M1 berwarna jingga/oranye.
Contoh dengan antarmuka UART untuk menghentikan putaran motor DC yang terhubung ke M1: User
:
0x32
Berikut ini contoh pseudo code untuk menggunakan perintah ini dengan antarmuka I2C (misalkan alamat I2C = 0xE0): i2c_start(); i2c_write(0xE0); i2c_write(0x32); i2c_stop();
// // // //
Start Condition Tulis ke modul SPC Neo DC Motor Perintah “M1 Stop” Stop Condition
3.3.4. M1 BRAKE Fungsi Perintah Parameter Respon Keterangan
Menghentikan putaran motor DC 1 secara cepat 0x33 ● Pada kondisi brake, M11 dan M12 akan terhubung ke MGND. ● Pada kondisi brake, LED indikator M1 akan menyala berwarna hijau dan merah secara bergantian.
Contoh dengan antarmuka UART untuk menghentikan putaran motor DC yang terhubung ke M1 secara cepat: User
:
0x33
Berikut ini contoh pseudo code untuk menggunakan perintah ini dengan antarmuka I2C (misalkan alamat I2C = 0xE0): i2c_start(); i2c_write(0xE0); i2c_write(0x33); i2c_stop();
// // // //
7
Start Condition Tulis ke modul SPC Neo DC Motor Perintah “M1 Brake” Stop Condition
3.3.5. M2 FORWARD Fungsi Perintah Parameter
Mengendalikan putaran maju motor DC 2 0x34 0 - 255 persentase duty cycle yang diberikan (0 = 0% ; 255 = 100%). Respon Keterangan ● Pada kondisi forward, M21 akan mengeluarkan tegangan sebanding dengan nilai PWM sedangkan M22 akan terhubung dengan MGND. ● Pada kondisi forward, LED indikator M2 berwarna hijau. ● Arah motor dan nilai PWM tidak akan disimpan di EEPROM. Saat modul SPC baru power on, nilai PWM pada saat power on adalah 0 (nol) dan motor pada kondisi stop (LED indikator M2 berwarna jingga/oranye). Contoh dengan antarmuka UART untuk mengendalikan kecepatan putaran maju motor DC yang terhubung ke M2. Misalkan duty cycle yang diinginkan 10% (0,1 * 255 = 26) atau setara dengan bilangan desimal 26 dan bilangan hexadesimal 0x1A: User
:
0x34 0x1A
Berikut ini contoh pseudo code untuk menggunakan perintah ini dengan antarmuka I2C (misalkan alamat I2C = 0xE0): i2c_start(); i2c_write(0xE0); i2c_write(0x34); i2c_write(0x1A); i2c_stop();
// // // // //
Start Condition Tulis ke modul SPC Neo DC Motor Perintah “M2 Forward” nilai PWM Stop Condition
3.3.6. M2 REVERSE Fungsi Perintah Parameter
Mengendalikan putaran mundur motor DC 2 0x35 0 - 255 persentase duty cycle yang diberikan (0 = 0% ; 255 = 100%). Respon Keterangan ● Pada kondisi reverse, M22 akan mengeluarkan tegangan sebanding dengan nilai PWM sedangkan M21 akan terhubung dengan MGND. ● Pada kondisi reverse, LED indikator M2 berwarna merah. ● Arah motor dan nilai PWM tidak akan disimpan di EEPROM. Saat modul SPC baru power on, nilai PWM pada saat power on adalah 0 (nol) dan motor pada kondisi stop (LED indikator M2 berwarna jingga/oranye). Contoh dengan antarmuka UART untuk mengendalikan kecepatan putaran mundur motor DC yang terhubung ke M2. Misalkan duty cycle yang diinginkan 90% (0,9 * 255 = 230) atau setara dengan bilangan desimal 230 dan bilangan hexadesimal 0xE6: User
:
0x35 0xE6 8
Berikut ini contoh pseudo code untuk menggunakan perintah ini dengan antarmuka I2C (misalkan alamat I2C = 0xE0): i2c_start(); i2c_write(0xE0); i2c_write(0x35); i2c_write(0xE6); i2c_stop();
// // // // //
Start Condition Tulis ke modul SPC Neo DC Motor Perintah “M2 Reverse” nilai PWM Stop Condition
3.3.7. M2 STOP Fungsi Perintah Parameter Respon Keterangan
Menghentikan putaran motor DC 2 0x36 ● Pada kondisi stop, M21 dan M22 akan berada pada kondisi tri state / high impedance. ● Pada kondisi stop, LED indikator M2 berwarna jingga/oranye.
Contoh dengan antarmuka UART untuk menghentikan putaran motor DC yang terhubung ke M2: User
:
0x36
Berikut ini contoh pseudo code untuk menggunakan perintah ini dengan antarmuka I2C (misalkan alamat I2C = 0xE0): i2c_start(); i2c_write(0xE0); i2c_write(0x36); i2c_stop();
// // // //
Start Condition Tulis ke modul SPC Neo DC Motor Perintah “M2 Stop” Stop Condition
3.3.8. M2 BRAKE Fungsi Perintah Parameter Respon Keterangan
Menghentikan putaran motor DC 2 secara cepat 0x37 ● Pada kondisi brake, M21 dan M22 akan terhubung ke MGND. ● Pada kondisi brake, LED indikator M2 akan menyala berwarna hijau dan merah secara bergantian.
Contoh dengan antarmuka UART untuk menghentikan putaran motor DC yang terhubung ke M2 secara cepat: User
:
0x37
Berikut ini contoh pseudo code untuk menggunakan perintah ini dengan antarmuka I2C (misalkan alamat I2C = 0xE0): i2c_start(); i2c_write(0xE0); i2c_write(0x37); i2c_stop();
// // // //
9
Start Condition Tulis ke modul SPC Neo DC Motor Perintah “M2 Brake” Stop Condition
3.3.9. ALL STOP Fungsi Perintah Parameter Respon Keterangan
Menghentikan putaran motor DC 1 dan 2 secara bersamaan 0x38 ● Perintah ini menjalankan perintah M1 STOP dan M2 STOP secara bersamaan.
Contoh dengan antarmuka UART untuk menghentikan putaran motor DC yang terhubung ke M1 dan M2 secara bersamaan: User
:
0x38
Berikut ini contoh pseudo code untuk menggunakan perintah ini dengan antarmuka I2C (misalkan alamat I2C = 0xE0): i2c_start(); i2c_write(0xE0); i2c_write(0x38); i2c_stop();
// // // //
Start Condition Tulis ke modul SPC Neo DC Motor Perintah “All Stop” Stop Condition
3.3.10. ALL BRAKE Fungsi
Menghentikan putaran motor DC 1 dan 2 secara cepat dan bersamaan Perintah 0x39 Parameter Respon Keterangan ● Perintah ini menjalankan perintah M1 BRAKE dan M2 BRAKE secara bersamaan. Contoh dengan antarmuka UART untuk menghentikan putaran motor DC yang terhubung ke M1 dan M2 secara cepat dan bersamaan: User
:
0x39
Berikut ini contoh pseudo code untuk menggunakan perintah ini dengan antarmuka I2C (misalkan alamat I2C = 0xE0): i2c_start(); i2c_write(0xE0); i2c_write(0x39); i2c_stop();
// // // //
Start Condition Tulis ke modul SPC Neo DC Motor Perintah “All Brake” Stop Condition
3.3.11. ALL FORWARD Fungsi
Mengendalikan putaran maju motor DC 1 dan 2 secara bersamaan Perintah 0x3A Parameter 0 - 255 persentase duty cycle yang diberikan (0 = 0% ; 255 = 100%). Respon Keterangan ● Perintah ini menjalankan perintah M1 FORWARD dan M2 FORWARD secara bersamaan dengan nilai PWM yang sama. 10
Contoh dengan antarmuka UART untuk mengendalikan kecepatan putaran maju motor DC yang terhubung ke M1 dan M2. Misalkan duty cycle yang diinginkan 100% atau setara dengan bilangan desimal 255 dan bilangan hexadesimal 0xFF: User
:
0x3A 0xFF
Berikut ini contoh pseudo code untuk menggunakan perintah ini dengan antarmuka I2C (misalkan alamat I2C = 0xE0): i2c_start(); i2c_write(0xE0); i2c_write(0x3A); i2c_write(0xFF); i2c_stop();
// // // // //
Start Condition Tulis ke modul SPC Neo DC Motor Perintah “All Forward” nilai PWM Stop Condition
3.3.12. ALL REVERSE Fungsi
Mengendalikan putaran mundur motor DC 1 dan 2 secara bersamaan Perintah 0x3B Parameter 0 - 255 persentase duty cycle yang diberikan (0 = 0% ; 255 = 100%). Respon Keterangan ● Perintah ini menjalankan perintah M1 REVERSE dan M2 REVERSE secara bersamaan dengan nilai PWM yang sama. Contoh dengan antarmuka UART untuk mengendalikan kecepatan putaran mundur motor DC yang terhubung ke M1 dan M2. Misalkan duty cycle yang diinginkan 75% (0,75 * 255 = 191) atau setara dengan bilangan desimal 191 dan bilangan hexadesimal 0xBF: User
:
0x3B 0xBF
Berikut ini contoh pseudo code untuk menggunakan perintah ini dengan antarmuka I2C (misalkan alamat I2C = 0xE0): i2c_start(); i2c_write(0xE0); i2c_write(0x3B); i2c_write(0xBF); i2c_stop();
// // // // //
Start Condition Tulis ke modul SPC Neo DC Motor Perintah “All Reverse” nilai PWM Stop Condition
3.3.13. SET PWM FREQUENCY Fungsi Perintah Parameter
Mengatur frekuensi PWM 0x40 <select> 0 - 3 nilai 0 berarti frekuensi PWM = 21,68 kHz nilai 1 berarti frekuensi PWM = 2,71 kHz nilai 2 berarti frekuensi PWM = 338,8 Hz nilai 3 berarti frekuensi PWM = 84,7 Hz Respon Keterangan ● Frekuensi default yang digunakan adalah 2,71 kHz. 11
●
Pilihan frekuensi PWM akan disimpan di EEPROM. Pada saat modul SPC baru power on, frekuensi PWM yang digunakan adalah frekuensi yang terakhir tersimpan.
Contoh dengan antarmuka UART untuk mengatur agar frekuensi PWM yang digunakan adalah 338,8 Hz: User
:
0x40 0x02
Berikut ini contoh pseudo code untuk menggunakan perintah ini dengan antarmuka I2C (misalkan alamat I2C = 0xE0): i2c_start(); i2c_write(0xE0); i2c_write(0x40); i2c_write(0x02); i2c_stop();
// // // // //
Start Condition Tulis ke modul SPC Neo DC Motor Perintah “Set PWM Freq” pilihan frekuensi Stop Condition
3.3.14. SET I2C ADDRESS Fungsi Perintah Parameter Respon Keterangan
Mengubah alamat I2C 0x41 <0xAA> <0x55> ● Perintah ini hanya dapat dilakukan dengan menggunakan jalur komunikasi UART. 2 ● Modul SPC akan menggunakan alamat I C yang baru setelah melalui siklus power off. 2 ● Alamat I C yang diperbolehkan dapat dilihat pada tabel berikutnya. ● Jika alamat baru yang diberikan tidak sesuai, maka alamat I2C tidak akan diubah (tetap alamat sebelumnya). 2 ● Alamat I C default adalah 0xE0. 2 ● Data alamat I C disimpan di EEPROM sehingga tidak akan hilang saat power off. Alamat I2C Alamat Tulis I2C Alamat Baca I2C 0xE0 0xE1 0xE2 0xE3 0xE4 0xE5 0xE6 0xE7 0xE8 0xE9 0xEA 0xEB 0xEC 0xED 0xEE 0xEF
Contoh dengan antarmuka UART untuk mengganti alamat I 2C dari 0xE0 menjadi 0xE2: User
:
0x41 0xAA 0x55 0xE2
3.3.13. READ I2C ADDRESS Fungsi Perintah
Membaca alamat I2C sekarang 0x42 12
Parameter Respon Keterangan ● Perintah ini hanya dapat dilakukan dengan menggunakan jalur komunikasi UART. 2 ● Alamat I C modul SPC juga dapat diketahui melalui jumlah kedip warna hijau LED indikator saat modul SPC baru power on. 2 ● Jika alamat I C adalah 0xE0 maka LED indikator akan berkedip hijau 1 kali. Jika alamat I2C adalah 0xE2 maka LED indikator akan berkedip hijau 2 kali. Jika alamat I2C adalah 0xE4 maka LED indikator akan berkedip hijau 3 kali dan demikian seterusnya sampai alamat I 2C 0xEE maka LED indikator akan berkedip hijau 8 kali. Contoh dengan antarmuka UART: User Modul SPC
: :
0x42
4.
PROSEDUR PENGUJIAN 1. Hubungkan sumber catu daya 5 Volt ke VIN dan 9 - 12 Volt ke VM modul SPC NEO DC MOTOR 2.4A. 2. Setelah LED indikator berkedip hijau yang menandakan alamat I 2C, LED indikator M1 dan M2 akan berwarna jingga/oranye. 3. Kirimkan perintah “M1 Forward” dengan nilai PWM 255 melalui antarmuka UART TTL.. 4. LED indikator M1 akan berwarna hijau dan jika diukur tegangan antara pin M11 dan M12, maka hasil akan mendekati nilai tegangan catu daya motor yang diberikan pada pin VM. 5. Kirimkan perintah “M2 Reverse” dengan nilai PWM 255 melalui antarmuka UART TTL. 6. LED indikator M2 akan berwarna merah dan jika diukur tegangan antara pin M22 dan M21, maka hasil akan mendekati nilai tegangan catu daya motor yang diberikan pada pin VM.
5.
CONTOH APLIKASI DAN PROGRAM Sebagai contoh aplikasi, dimisalkan modul SPC NEO DC MOTOR 2.4A digunakan untuk menggerakkan 2 buah motor DC dengan antarmuka I2C atau antarmuka UART. Modul DT-AVR Low Cost Micro System (LCMS) dengan mikrokontroler ATmega8535 digunakan sebagai master. VM (8V – 36V ) VIN (+5 V )
M1
M11 M12 M21 M22
SPC NEO DC MOTOR 2.4A (alamat 0xE0)
SDA
SDA (PORTD.2)
SCL
SCL (PORTD.3)
M2 MGND (Ground Catu Daya Motor)
PGND (Ground Catu Daya Digital)
13
DT-AVR LCMS
VM (8V – 36V )
M1
M11 M12 M21 M22
VIN (+5 V )
SPC NEO DC MOTOR 2.4A (alamat 0xE0)
TXD
RX (PORTD.0)
RXD
TX (PORTD.1)
DT-AVR LCMS
M2 MGND (Ground Catu Daya Motor)
PGND (Ground Catu Daya Digital)
Sebagai contoh program untuk aplikasi di atas, pada DVD yang disertakan pada saat pembelian modul SPC NEO DC MOTOR 2.4A disertakan program contoh_i2c.c dan contoh_uart.c yang ditulis dengan menggunakan CodeVisionAVR 1.25.2 versi evaluasi. Pada program tersebut, DT-AVR LCMS akan mengirimkan perintah "M1 Forward" dan "M2 Forward" masing-masing dengan nilai PWM 255 ke modul SPC (untuk contoh I2C menggunakan alamat modul SPC 0xE0). Setelah perintah dikirim, DT-AVR LCMS akan menunggu selama 3000 ms sebelum mengirimkan perintah "All Brake" ke SPC. Setelah perintah dikirim, DT-AVR LCMS akan kembali menunggu selama 3000 ms. DT-AVR LCMS akan mengirimkan perintah "M1 Reverse" dan "M2 Reverse" masing-masing dengan nilai PWM 128 ke modul SPC dan kembali diikuti dengan jeda selama selama 3000 ms. Kemudian program diakhiri dengan DT-AVR LCMS mengirimkan perintah "Äll Stop" ke modul SPC.
♦ Terima Kasih atas kepercayaan Anda menggunakan produk kami, bila ada kesulitan, pertanyaan atau saran mengenai produk ini silahkan menghubungi technical support kami : [email protected] 14
LAMPIRAN A. Skematik SPC NEO DC MOTOR 2.4A
15