Gambar 4.13 memperlihatkan program ini menggunakan 2 library yaitu library Servo.h dan library PS3USB.h. Servo.h berfungsi mengubah output digital dari
mikrokontroler dapat digunakan untuk mengatur motor servo yang mana membutuhkan output analog. Dengan library ini motor servo diatur sudutnya dari 0-180
˚. Sedangkan library PS3USB.h mengatur komunikasi perangkat Gamepad yang terhubung ke USB host
shield dengan mikrokontroler melalui ICSP bus. Pada Gambar 4.14 dan Gambar 4.15 yang ditunjuk no 1 merupakan variabel yang
berisi posisi sudut motor servo 0-180 ˚ sekaligus menentukan posisi awal ketika program
running. Pada no 2 merupakan variabel untuk membatasi sudut maksimal atau minimal yang dapat dicapai oleh motor servo. Pada no 3 adalah alamat pin output untuk motor
servo yang berjumlah 4 pin. Sedangkan no 4 adalah variabel untuk motor servo yang akan digunakan dan antara pin output dengan variabel motor servo dihubungkan oleh no 6.
Untuk bagian input dapat ditunjukkan pada no 5, dimana inputnya menggunakan Gamepad PS3 yang terhubung melalui USB.
4.3.2. Pembacaan Input dan Perintah ke Output
Gambar 4.16 Input dan Output pada Program Listing program pembacaan input dan perintah ke output dalam mikrokontroler
arduino dapat dilihat pada Gambar 4.16. Pembacaan input dari USB Gamepad menggunakan komunikasi ISCP memanfaatkan port MISO, MOSI, SCK, dan RESET
mikrokontroler. Menggunakan library USB host shield sehingga semua input dari Gamepad dapat terbaca TRIANGLE, CROSS, SQUARE, CIRCLE, UP, DOWN, LEFT, dan
RIGHT. Sedangkan listing program output untuk menggerakkan motor servo ditunjukkan pada Gambar 4.16 juga. Menggerakkan motor servo menggunakan pulsa-pulsa yang
dikeluarkan oleh mikrokontroler melalui port digital 4, 6, 7, dan 8. Motor servo digerakkan berdasarkan posisi sudut yang telah disimpan pada variabel pos1234 yang berisi sudut
dari 0-180 ˚.
Input Output
4.3.3. Kecepatan Motor
Kecepatan motor berkaitan dengan delay yang digunakan. Delay yang dimaksudkan adalah yang berada pada bagian void loop program, dengan semakin
besarnya nilai dalam satuan milisecons yang diberikan makan proses looping program juga akan semakin lama. Letak delay ini ada di baris paling akhir sub program void loop
yang dapat dilihat pada Gambar 4.17.
Gambar 4.17 Delay pada Void Loop
4.3.4. Pengiriman Data ke User Melalui Serial Monitor
Pada Gambar 4.18 adalah program inisialisasi untuk memulai pembacaaan komunikasi serial dengan baudrate 115200 Hz. Pembacaan serial ini berfungsi untuk
membaca data baik input atau output dari mikrokontroler. Hal ini berfungsi sebagai user interface untuk pengecekan input dan output. Contoh program untuk pembacaan data
serial input dan output ini ada pada Gambar 4.19 dimana input ada pada nomor 1 dan output pada nomor 2.
Gambar 4.18 Inisialisasi Pembacaan Serial
Gambar 4.19 Pembacaan Serial Input dan Output Selanjutnya untuk menampilkan hasil pembacaan serial yang dilakukan adalah
dengan menggunakan fitur serial monitor yang sudah ada pada monitor arduino. Tampilan serial monitor sebagai user interface dapat dilihat pada Gambar 4.20. Data yang
Input Output