Mendrive Banyak Motor Servo dengan PCA9685

0 522

9d19310763171b0d958d23a18b3d7e1c_400x400Ketika kita ingin membangun robot berkaki yang memiliki banyak motor servo tentu kita kebingungan bagaimana caranya mengendalikan sekian banyak motor servo yang ada, dengan sejumlah terbatas port PWM yang dimiliki sebuah mikrokontroler. Lalu bagaimana solusinya? Salah satu solusinya kita bisa manfaatkan modul PCA9685 yang memiliki fitur 16 kanal PWM dengan hanya menggunakan 2 pin  port i2c/twi. Tidak hanya itu, jika 16 kanal PWM masih dinilai kurang, kita masih bisa menggandakan jumlah kanal PWM dengan mengekspansi modul PCA9685 hingga 62 modul (atau setara dengan 992 kanal PWM). Semua hanya dengan masukan 2 pin!!  Berikut penampakan dari modul PCA9685 tersebut

1058543_c0c50e16-bbb9-4fd5-871c-1f30dabc8774

Catatan: untuk mendapatkan modul ini, anda bisa membelinya di Toko BEY via platform Tokopedia klik disini.

Modul PCA9685 ini adalah modul opensource yang dikembangkan oleh adafruit industries. Karena sifatnya yang opensource anda bisa membuat sendiri modul ini. Adafruit telah berbaik hati membagikan skematik pcb nya di github. Jika anda tidak ingin repot, anda bisa langsung membeli jadi, salah satunya yang dijual oleh TOKO BEY yang ada di tokopedia. Datasheet dari PCA9685 bisa anda unduh di link berikut.

Library

Oke setelah selesei membaca datasheet, kini saatnya  untuk mulai belajar  menggunakan modul keren ini. Tulisan ini dibuat dari tutorial Adafruit yang telah saya tes sendiri dan berhasil. Adafruit telah menyediakan library untuk modul ini agar bisa langsung digunakan oleh Arduino IDE. Silahkan unduh di link ini, lalu ekstrak  dan letakkan pada direktori libraries tempat Arduino IDE anda terinstal. Pada komputer saya terletak di C:Program Files (x86)Arduinolibraries. Silahkan sesuaikan dengan milik anda.

Pengalamatan

Sebagaimana perangkat i2c lainnya, modul ini memiliki alamat perangkat, untuk bisa diakses menggunakan protokol i2c oleh arduino anda. Alamat defaultnya adalah 0x40, namun untuk keperluan tingkat lanjut seperti saat dibutuhkan lebih dari  1 modul, maka anda perlu mengeset alamat modul anda (agar tidak terjadi konflik dengan device pertama) dengan men-jumper pin alamat yang tersedia pada modul, seperti tampak pada gambar.

pca9865

Berikut pengaturan pengalamatannya

Board 0:  Address = 0x40  Offset = binary 00000 (default tidak diperlukan jumper)
Board 1:  Address = 0x41  Offset = binary 00001 (jumper A0, seperti gambar)
Board 2:  Address = 0x42  Offset = binary 00010 (jumper A1)
Board 3:  Address = 0x43  Offset = binary 00011 (jumper A0 & A1)
Board 4:  Address = 0x44  Offset = binary 00100 (jumper A2)

dan seterusnya.





Pengkabelan

Pengkabelan modul PCA9685 dengan Arduino sangat sederhana, berikut konfigurasinya

Arduino       PCA9685
+5v                   VCC
GND                GND
SDA                  SDA
SCL                  SCL

pca9865 supply

Yang perlu diperhatikan adalah tegangan di pin VCC pada modul PCA9685 hanya digunakan untuk mencatu komponen – komponen pada modul, dan bukan untuk motor servo. Untuk mencatu motor servo, gunakanlah pin V+. Nilai V+ yang diberikan aman hingga tegangan 6V meskipun VCC yang dicatu hanya sebesar 3.3V (pada mikrokontroler 3.3V, misalnya). Sebaiknya jangan gunakan modul arduino untuk mencatu V+,karena dapat menyebabkan arduino anda bermasalah seperti overheating. Gunakanlah catu daya tersendiri (yang bisa mensupply arus hingga 2A), pasang pada holder berwarna biru untuk menghubungkan dengan V+ pada modul.

Ekspansi Modul

Untuk mengekspansi modul PCA9685 (untuk memperbanyak jumlah kanal PWM), anda bisa menggunakan pin yang disediakan di sisi yang bersebrangan dengan yang anda hubungkan pada Arduino. Gambar berikut mengilustrasikannya.

 cascade

Setelah pengkabelan sudah oke, lalu pasang motor servo pada pin – pin yang  berjajar – jajar pada modul. Sebagian besar servo memiliki 3 pin konektor female standar yang dicolokkan  ke header modul driver (seperti ke modul PCA9685 ini). Pastikan telah memasang dengan benar kabel ground (biasanya berwarna coklat atau hitam) dengan pin baris bawah (bertulis GND) dan kabel sinyal/PWM (biasanya berwarna kuning atau putih) di baris atas.





Program.

Untuk memulai pemrograman, pertama kita bisa menggunakan kode contoh servo yang disertakan pada library yang telah kita tambahkan pada tahap sebelumnya. Buka arduino IDE lalu pilih ExamplesAdafruit PWM Servo Driver Library > Servo

servo

Dalam tulisan ini saya tidak akan membeda program baris per baris, itu bisa anda lakukan nanti 😉 . Yang perlu diketahui bahwa program sampel ini hanya berfungsi sebagai program hello world yang akan mengakses tiap pin PWM dari kanal 0 hingga 15 secara bergantian. Jadi langsung saja kita compile dan upload ke arduino, lalu buka serial monitor dan amati yang terjadi. Jika semuanya berjalan lancar maka motor servo anda akan berjalan seperti video berikut. Dalam video tersebut saya hanya menggunakan 2 motor servo yang saya pasang pada kanal 0 dan kanal 2.

Selamat, mulai sekarang dengan mempelajari program  contoh tersebut, kalian bisa meneruskan sendiri bereksplorasi lebih lanjut dari kemampuan yang dimiliki PCA9685 ini. Lalu tunggu apa lagi?

Salam Elektronika!

%d blogger menyukai ini: