S2 dan S3 caranya sama dengan S1, yang membedakan hanya pada penggunaan port dan variabel yang digunakan.
4.9.3. Program Utama Mikrokontroler B
Listing program utama mikrokontroler B ditunjukkan pada gambar 4.26. Program utama akan dieksekusi pada saat user menekan tombol ON pada robot. Jika pinB.7 berlogika
high , maka mikrokontroler akan mengerjakan fungsi “Kanan_Kepala” atau melakukan
pergerakan pada tangan kanan dan kepala robot. Jika pinB.6 berlogika high, maka mikrokontroler akan mengerjakan fungsi
“Kanan_Kiri” atau melakukan pergerakan pada kedua tangan robot. Sedangkan jika pinB.5 berlogika high, maka mikrokontroler akan
mengerjakan fungsi “Kiri_Kepala” atau melakukan pergerakan pada tangan kiri dan kepala robot. Jika pinB.7, pinB.6 dan pinB.5 berlogika low, maka robot tidak akan melakukan
pergerakan.
Gambar 4.26. Listing program utama B
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