Program Motor Pompa dan Komunikasi USART

3. Modul relay 4. LCD 5. Minimum sistem ATmega 8535 6. Modul USB to TTL Minimum sistem akan digunakan sebagai pengambil keputusan untuk mengaktifkan relay tertentu agar motor pompa dapat aktif sesuai dengan data yang diterima melalui modul USB to TTL.

4.2.2 Program Mesin Pembuat Minuman

Mesin pembuat minuman akan bekerja sesuai dengan perintah dari mikrokontroler berdasarkan data yang diterima. Untuk menentukan pekerjaan yang dilakukan mikrokontroler, maka ditanamkan sebuah program yang mengendalikan keputusan- keputusan yang akan dieksekusi. Pembuatan program berdasarkan diagram alur yang telah dirancang dan mengacu pada gambar 3.26. Berdasarkan diagram alur, maka diperlukan pengaturan port yang akan digunakan dalam program dan percobaan untuk menentukan lama waktu motor pompa aktif untuk mengeluarkan air sebanyak 150 ml yang dapat dilihat pada lampiran L8. Pengaturan port serta lama waktu aktif motor dapat dilihat pada tabel 4.1. Tabel 4.1. Tabel Pengaturan Port Mikrokontroler Terdapat 2 bagian utama dalam program mesin pembuat minuman yaitu pengendalian komunikasi USART dan pengendalian motor pompa. Pengendalian komunikasi USART dilakukan agar komputer yang digunakan untuk mengenali ucapan dapat mengirimkan data hasil pengenalan yang telah direpresentasikan dalam karakter tertentu kepada mikrokontroler untuk diolah menjadi perintah yang dapat menggerakan motor pompa.

4.2.2.1 Program Motor Pompa dan Komunikasi USART

Komunikasi dilakukan antara komputer dan mikrokontroler ATmega 8535. Komputer mengirimkan karakter sesuai yang telah ditentukan seperti pada perancangan, dan mikrokontroler akan mengeksekusi perintah sesuai dengan karakter yang diterima. Port Mikrokontroler Kegunaan Waktu Aktif ms PORTB.0 Mengaktifkan motor 1 membuat kopi 6000 PORTB.1 Mengaktifkan motor 2 membuat susu 6250 PORTB.2 Mengaktifkan motor 3 membuat kopi susu 6000 PORTB.3 Mengaktifkan motor 4 membuat cokelat 5750 PORTC Mengaktifkan LCD 16x2 - Program komunikasi USART ditulis sebagai berikut: int b; void komserial { b=getchar; } Pada tahap komunikasi serial, baudrate yang digunakan bernilai 9600bps. Fungsi “getchar” adalah perintah untuk mikrokontroler agar dapat menerima karakter yang dikirimkan oleh komputer melalui port penerima komunikasi mikrokontroler PORTD.0. Setelah data diterima mikrokontroler, maka akan dilakukan eksekusi perintah selanjutnya, yang dituliskan sebagai berikut: while 1 { lcd_gotoxy0,0;lcd_putsfBEVERAGE MACHINE; lcd_gotoxy0,1;lcd_putsfSIAGA; komserial; ifb==1 { lcd_clear; lcd_gotoxy0,1;lcd_putsfMembuat Kopi;delay_ms2500; PORTB.0=1;delay_ms6000; PORTB.0=0; lcd_clear; lcd_gotoxy0,0;lcd_putsfSelesai..Selamat; lcd_gotoxy7,1;lcd_putsfMenikmati;delay_ms2000; lcd_clear; } else if b==2 { lcd_clear; lcd_gotoxy0,1;lcd_putsfMembuat Susu;delay_ms2500; PORTB.1=1;delay_ms6250; PORTB.1=0; lcd_clear; lcd_gotoxy0,0;lcd_putsfSelesai..Selamat; lcd_gotoxy7,1;lcd_putsfMenikmati;delay_ms2000; lcd_clear; } else if b==3 { lcd_clear; lcd_gotoxy0,1;lcd_putsfMembuat KopiSusu; delay_ms2500; PORTB.2=1;delay_ms6000; PORTB.2=0; lcd_clear; lcd_gotoxy0,0;lcd_putsfSelesai..Selamat; lcd_gotoxy7,1;lcd_putsfMenikmati;delay_ms2000; lcd_clear; } else if b==4 { lcd_clear; lcd_gotoxy0,1;lcd_putsfMembuat Coklat;delay_ms2500; PORTB.3=1;delay_ms5750; PORTB.3=0; lcd_clear; lcd_gotoxy0,0;lcd_putsfSelesai..Selamat; lcd_gotoxy7,1;lcd_putsfMenikmati;delay_ms2000; lcd_clear; } else if b==5 { lcd_clear; lcd_gotoxy0,0;lcd_putsfERROR...; lcd_gotoxy0,1;lcd_putsfCoba Lagi;delay_ms3000; lcd_clear; } }; } Program di atas adalah program pengendalian waktu aktif untuk masing-masing motor pompa berdasarkan masukan yang diterima komunikasi USART. Pada saat kondisi siaga, mikrokontroler memerintahkan LCD untuk menampilkan indikasi siaga. Logika if- else digunakan untuk memindai data yang diterima, lalu masing-masing data akan direpresentasikan sebagai perintah sesuai perancangan pada tabel 3.1. Saat data komunikasi diterima, motor pompa akan aktif sesuai waktu aktif yang telah ditentukan mengggunakan delay untuk menunda eksekusi perintah selanjutnya. Apabila pada saat dilakukan pemindaian tidak ditemukan adanya komunikasi, maka mikrokontroler akan terus menampilkan indikasi siaga.

4.3 Pengujian Tingkat Pengenalan Ucapan