Program Utama Mikrokontroler A

Tabel 4.13. Perbandingan program utama dengan pengukuran IO IO Kondisi Program Hasil Pengukuran Volt PinB.7 PinB.7 1 4,89 PinB.6 PinB.6 1 4,89 PinB.5 PinB.5 1 4,89 Berdasarkan tabel 4.13, kondisi program tersebut terdapat pada mikrokontroler B. Pengukuran dilakukan pada pinB.7, pinB.6 dan pinB.5 yang digunakan sebagai penentu pergerakan tangan dan kepala robot. Pada saat sensor ultrasonik mendeteksi jarak antara robot dengan manusia kurang dari 200cm, mikrokontroler A akan memberikan logika high pada pinB7, pinB6 dan pinB.5 yang terdapat pada mikrokontroler B sesuai dengan posisi manusia terdeteksi. Pada saat sensor ultrasonik tidak mendeteksi jarak antara robot dengan manusia kurang dari 200cm, kondisi pinB.7, pinB.6 dan pinB.5 pada mikrokontroler B berlogika low.

4.9.4. Program Pengendali Motor Servo

Listing program pengendali motor servo ditunjukkan pada gambar 4.27. Program pengendali motor servo menggunakan interrupt timer0 sebagai pembangkit pulsa untuk menggerakkan motor servo. Gambar 4.27. Listing program pengendali motor servo Listing program di atas adalah pengaturan port-port yang digunakan untuk mengontrol motor servo. Kondisi nilai x++ artinya adalah timer mulai mencacah dari 0 hingga 255. Jika lebih dari itu, maka timer akan overflow dan mulai mengaktifkan PWM. Nilai 937 adalah nilai overflow selama perioda motor servo yaitu 20ms. Jika kondisi nilai x lebih kecil dari pada nilai variabel dataservo1, dataservo2, dataservo3, dataservo4, dataservo5, dataservo6 dan dataservo7, maka mikrokontroler akan memberikan pulsa high agar motor servo bergerak. Jika kondisinya tidak terpenuhi, maka port-port yang digunakan motor servo akan di beri logika low sehingga motor servo tidak bergerak.

4.9.5. Program Tangan Kanan dan Kepala

Listing program tangan kanan dan kepala ditunjukkan pada gambar 4.28. Pada saat fungsi ini dieksekusi, mikrokontroler akan memberikan logika high pada relay untuk mengaktifkan relay dimana relay akan mengaktifkan modul mp3. Gambar 4.28. Listing program tangan kanan dan kepala Proses selanjutnya mikrokontroler memberikan nilai OCR 45 pada motor servo 1 agar kepala robot bergerak 90 atau menghadap ke kanan. Setelah itu mikrokontroler memberikan nilai OCR 70 pada motor servo 4 agar telapak tangan kanan berada pada posisi tegak lurus, selanjutnya mikrokontroler memberikan nilai OCR pada motor servo 2 dan 3 sebesar 94 agar tangan kanan robot terangkat 90 . Selanjutnya mikrokontroler memberikan nilai OCR sebesar 45 dan 94 pada motor servo 4 agar telapak tangan kanan bergerak 90 , proses ini akan dilakukan selama 5 detik. Jika timer sama dengan 5 detik, maka mikrokontroler akan memberikan logika low pada relay. Kemudian mikrokontroler memberikan nilai OCR sebesar 70 pada motor servo 1 agar kepala robot kembali menghadap ke depan. Proses selanjutnya mikrokontroler memberikan nilai OCR sebesar 70 pada motor servo 4, nilai OCR 45 pada motor servo 2 dan 3 agar tangan kanan robot kembali ke posisi awal.

4.9.6. Program Tangan Kiri dan Kepala

Listing program tangan kiri dan kepala ditunjukkan pada gambar 4.29. Pada saat fungsi ini dieksekusi, mikrokontroler akan memberikan logika high pada relay untuk mengaktifkan relay dimana relay akan mengaktifkan modul mp3. Gambar 4.29. Listing program tangan kiri dan kepala Proses selanjutnya mikrokontroler memberikan nilai OCR 94 pada motor servo 1 agar kepala robot bergerak 90 atau menghadap ke kiri. Setelah itu mikrokontroler memberikan nilai OCR pada motor servo 7 agar telapak tangan kiri tegak lurus, selanjutnya mikrokontroler memberikan nilai OCR pada motor servo 5 dan 6 sebesar 45 agar tangan kiri robot terangkat 90 . Kemudian mikrokontroler memberikan nilai OCR sebesar 45 dan 94 pada motor servo 1 agar telapak tangan kiri bergerak 90 , proses ini akan dilakukan selama 5 detik. Jika timer sama dengan 5 detik, maka mikrokontroler akan memberikan logika low pada relay. Setelah itu mikrokontroler memberikan nilai OCR sebesar 70 pada motor servo 1 agar kepala robot kembali menghadap ke depan. Proses selanjutnya mikrokontroler memberikan nilai OCR sebesar 70 pada motor servo 7, nilai OCR 94 pada motor servo 2 dan 3 agar tangan kiri robot kembali ke posisi awal.

4.9.7. Program Tangan Kanan dan Kiri

Listing program tangan kanan dan kiri ditunjukkan pada gambar 4.30. Pada saat fungsi ini dieksekusi, mikrokontroler akan memberikan logika high pada relay untuk mengaktifkan relay dimana relay akan mengaktifkan modul mp3. Gambar 4.30. Listing program tangan kanan dan kiri Proses selanjutnya mikrokontroler memberikan nilai OCR 70 pada motor servo 4 dan 7 agar telapak tangan kanan dan kiri tegak lurus, selanjutnya mikrokontroler memberikan nilai OCR pada motor servo 3 dan 2 sebesar 94 dan pada motor servo 6 dan 5 sebesar 45 agar tangan kanan dan kiri robot terangkat 90 . Selanjutnya mikrokontroler memberikan nilai OCR sebesar 45 dan 94 pada motor servo 4 dan 7 agar telapak tangan kanan dan kiri bergerak 90 , proses ini akan dilakukan selama 5 detik. Jika timer sama dengan 5 detik, maka mikrokontroler akan memberikan logika low pada relay. Proses selanjutnya mikrokontroler memberikan nilai OCR sebesar 70 pada motor servo 7 dan 4, nilai OCR 94 pada motor servo 5 dan 6 dan 45 pada motor servo 2 dan 3 agar tangan kanan dan kiri robot kembali ke posisi awal.

4.9.8. Program Pengaturan Timer

Listing program pengaturan timer ditunjukkan pada gambar 4.31. Program timer pada perancangan ini berfungsi untuk menentukan lama waktu untuk mengaktifkan modul mp3. Pada pembuatan tugas akhir ini modul mp3 akan diaktifkan selama 5 detik. Untuk mendapatkan waktu 5 detik digunakan fasilitas timer 1 yang terdapat pada mikrokontroler.