Baca dulu H-Bridge IC.
Rangkaian Schematic
Mobil robot yang akan dibuat menggunakan driver motor DC H-Bridge menggunakan IC L298. Rangkaian schematik yang saya gunakan seperti di bawah ini

Pengujian Pin-pin PORTD

Gambar 2 adalah listing program pengujian pergerakan motor DC pada mobil robot. Pengujian ini bertujuan untuk mengetahui apakah driver motor DC berfungsi sehingga tidak menggunakan PWM. Pengujian yaitu dengan menggerakkan salah satu motor DC agar bergerak maju atau mundur selama selang waktu 3 detik, oleh sebab itu mobil robot dibuat tidak menyentuh lantai dan tetap terkoneksi dengan komputer sambil diprogram. Agar motor DC bergerak maka Pin enable harus berlogika 1, yaitu PD.4 dan PD.5 berlogika 1 dan tidak boleh diubah logikanya.
Langkah-langkah pada program Gambar 2 sebagai berikut :
1. Motor DC di buat berhenti selama 2 detik tujuannya agar mengetahui awal program dimana sehingga jika Motor DC bergerak, dapat diketahui baris mana pada listing yang sedang dieksekusi.
2. PD.0 PD.4 dan PD.5 berlogika 1 yang lain berlogika 0.
3. PD.1 PD.4 dan PD.5 berlogika 1 yang lain berlogika 0.
4. PD.6 PD.4 dan PD.5 berlogika 1 yang lain berlogika 0.
5. PD.7 PD.4 dan PD.5 berlogika 1 yang lain berlogika 0.
6. PD.2 dan PD.3 tidak diuji karena port ini tidak digunakan pada driver motor DC.
Pada langkah 2 - 6 Lihat motor mana yang bergerak dan apakah maju atau mundur.
Beri catatan disamping baris listing program yang sedang dieksekusi.
Pengujian Pergerakan Mobil Robot

Langkah-langkah pada program Gambar 3 sebagai berikut :
1. Menggunakan informasi dari pengujian Gambar 2.
2. Mobil Robot dibuat berhenti selama 2 detik, tujuannya sama.
3. Mobil Robot dibuat bergerak Maju 3 detik. Yaitu motor kanan dan motor kiri maju.
4. Mobil Robot dibuat bergerak Mundur 3 detik. Yaitu Motor Kanan dan motor kiri mundur.
5. Mobil Robot dibuat bergerak Belok Kanan 3 detik. Yaitu motor kanan stop dan motor kiri maju.
6. Mobil Robot dibuat bergerak Belok Kiri 3 detik. Yaitu motor kanan maju dan motor kiri stop.
7. Mobil Robot dibuat bergerak Rotasi Kanan 3 detik. Yaitu motor kanan mundur dan motor kiri maju.
8. Mobil Robot dibuat bergerak Rotasi Kiri 3 detik. Yaitu motor kanan maju dan motor kiri mundur.
Pengujian dengan PWM
Setelah pengujian 3 berhasil, selanjutnya menggunakan PWM.

Mengapa unsigned char ?
signed char memiliki nilai -128 hingga 127
Unsigned char memiliki nilai 0 hingga 255
signed int memiliki nilai -32768 hingga 32767
Unsigned int memiliki nilai 0 hingga 65535
lebih jelas lihat help -> C Compiler Reference -> Data Type
Data yang dibutuhkan hanya :
- Stop dengan nilai 0
- Maju dengan nilai 1
- Mundur dengan nilai 2
- Bkanan dengan nilai 3
- Bkiri dengan nilai 4
- Rkanan dengan nilai 5
- Rkiri dengan nilai 6
Berarti data yang diperlukan hanya 7 data, jika unsigned char bahkan tersisa 256 - 7 = 249 data yang berarti lebih dari cukup. Pada mikrokontroler nilai 0 - 255 berarti menggunakan 1 buah register saja (1 byte memori).
.... Lanjut ....
Buat project baru dan lakukan konfigurasi seperti gambar 4 pada Code WizardAVR yaitu menggunakan timer 1, dan atur konfigurasi Port D seperti pada Gambar 2. Berdasarkan schematik Gambar 1 serta pengujian 2 dan pengujian 3 maka PD.4 atau OC1B adalah pin PWM yang akan mengatur kecepatan motor kanan sedangkan PD.5 atau OC1A adalah pin yang mengatur kecepatan motor kiri.
Lihat kembali Gambar 4.
Saat ROBOT(Stop) tidak diberikan nilai PWM karena berapapun nilai PWM yang diberikan tetap saja kedua motor DC akan berhenti. Mobil robot akan berhenti selama 2 detik kemudian maju 3 detik dengan PWM 255 (kecepatan penuh) lalu maju pelan 3 detik dengan nilai PWM 150. Tanpa berhenti mobil Robot akan mundur pelan 3 detik dangan nilai PWM 150 yang kemudian menjadi mudur cepat dengan nilai PWM 255 selama 3 detik. Untuk ROBOT(Bkanan) atau robot belok kanan berapapun nilai PWM yang diberikan pada motor kanan tidak berpengaruh karena motor kanan berhenti dan motor kiri yang bergerak begitu pula sebaliknya pada ROBOT(Bkiri) atau robot belok kiri . Untuk ROBOT(Rkanan) dan ROBOT(Rkiri) nilai PWM saya buat berbeda antara kanan dan kiri agar terlihat pergeseran karena perbedaan nilai PWM.
Jika anda ingin menguji 2 buah motor DC yang bertipe sama yaitu apakah motor DC memiliki RPM yang sama dan simetris, begini caranya :
(dengan catatan poros atau as pada kedua roda mobil robot sejajar dan segaris).
- Ukur jarak maksimum antar roda kanan dan roda kiri pada mobil robot.
- Gunakan alas atau lantai yang tidak kasar (lantai keramik) atau kertas karton putih.
- Gambar lingkaran dengan diameter jarak maksimum antar roda.
- Program mobil robot untuk berotasi ke kanan (atau kekiri) dengan kedua PWM bernilai 255.
- Tempatkan mobil robot hingga kedua roda tepat berada didalam lingkaran dan jalankan.
Jika semakin lama mobil robot keluar dari lingkaran maka kedua motor DC tidak simetris.
Apabila anda kesulitan mendapatkan motor DC yang simetris maka usahakan agar perbedaannya tidak besar karena bisa disesuaikan pada algoritma pemrogramannya.
Pada pengujian 4 mungkin anda mengalami hal seperti ini :
Mobil robot berjalan-jalan Maju...Maju...Mundur...Mundur...Stop.... atau Maju...Maju...Stop... atau Maju...Stop... atau Maju...Maju...Mundur...Stop... atau banyak variasi lain.
Mengapa begitu ??
Mungkin anda akan berpikir jika logika pemrogramannya yang salah, kemudian diutak-atik masih sama dan terus-menerus. Coba anda lihat listingnya lagi, perintah stop kemudian maju adalah perintah awal yang diberikan pada mobil robot. Hal ini berarti program tidak sampai selesai dieksekusi, jalan sedikit kemudian kembali ke awal yang berarti mikrokontroler selalu Reset.
Penyebabnya adalah Mikrokontroler kekurangan tegangan atau arus karena digunakan motor DC, apalagi jika motor DC berubah kondisi dari berputar ke kanan kemudian berputar ke kiri dengan nilai PWM 255 (kecepatan maksimum). Oleh sebab itu Power Supply yang diberikan untuk mikrokontroler harus berbeda dengan yang diberikan untuk motor DC.
Misal mikrokontroler baterai kotak 9 Vdc dan motor DC aki kering 24 Vdc atau mikrokontroler baterai kotak 9 Vdc 1 buah dan motor DC baterai kotak 9 Vdc 3 buah jadi ada 4 baterai kotak.