Membuat Menu di AVR mengunakan tampilan LCD dan serial interface

Posted on
Tampilan menu dengan avr

Setelah membuat proses pengiriman data melalui GPRS, pada postingan ini akan dilanjutkan untuk membuat Membuat Menu di AVR mengunakan tampilan LCD dan serial interface. Disini menu difunakan untuk menjalan beberapa fungsi program yang berbeda. Pada menu yang saya buat ini berisi 4 menu. Isi dati menu tersebut seperti berikut

[1] : Start >>>>>> (karakter “Kirim Data”)
[2] : Kalibrasi >>>>>> (Data Parsing GPS )
[3] : N/A >>>>> (karakter “PB3 Ditekan”)
[4] : N/A  >>>>> (karakter “PB4 Ditekan”)

Untuk membuat tampilan tersebut cukup sederhana dengan menyiapkan hal berikut

  1. Minimum System yang sudah ada port I/O, komunikasi serial, dan Push Button(disini saya menggunakan minimum system ATmega 128
  2. LCD (disini digunakan LCD 20×4)
  3. Kabel untuk komunikasi serial dan downloader
Fungsi program yang digunakan  untuk membuat menu seperti berikut

void cekinput (void){
poutput=USART1;
bouncing1 = (bouncing1 << 1) | PB1;
if(bouncing1==0b00001111)
{
statuspb=1;
}

bouncing2 = (bouncing2 << 1) | PB2;
if(bouncing2==0b00001111)
{
statuspb=2;
}

bouncing3 = (bouncing3 << 1) | PB3;
if(bouncing3==0b00001111)
{
statuspb=3;
}

bouncing4 = (bouncing4 << 1) | PB4;
if(bouncing4==0b00001111)
{
statuspb=4;
}

bouncing5 = (bouncing5 << 1) | PB5;
if(bouncing5==0b00001111)
{
statuspb=5;
}

if(statuspb==1){
lcd_clear();
lcd_gotoxy(4,2);
lcd_putsf(“Kirim Data”);
printf(“Kirim Data”);
}
if(statuspb==2){
lcd_clear();
sprintf(lcd_buff,”%s”,jam);
lcd_gotoxy(0,0);
lcd_putsf(“Jam :”);
lcd_puts(lcd_buff);

sprintf(lcd_buff1,”-%f”,lintGMAPS);
lcd_gotoxy(0,1);
lcd_putsf(“Lat :”);
lcd_puts(lcd_buff1);

sprintf(lcd_buff2,”%f”,bujurGMAPS);
lcd_gotoxy(0,2);
lcd_putsf(“Lon :”);
lcd_puts(lcd_buff2);

sprintf(lcd_buff3,”%s”,ind);
lcd_gotoxy(0,3);
lcd_putsf(“Fix :”);
lcd_puts(lcd_buff3);

sprintf(lcd_buff4,”%s”,satelite);
lcd_gotoxy(10,3);
lcd_putsf(“Sat :”);
lcd_puts(lcd_buff4);
printf(“#%s#-%f#%f#%s#%sr”,jam,lintGMAPS,bujurGMAPS,ind,satelite);
}
if(statuspb==3){
lcd_clear();
lcd_gotoxy(5,1);
lcd_putsf(“PB3 Ditekan”);
printf(“PB3 Ditekan”);
}

if(statuspb==4){
lcd_clear();
lcd_gotoxy(5,0);
lcd_putsf(“PB4 Ditekan”);
lcd_gotoxy(2,2);
lcd_putsf(“Bakhtiyar Sieard”);
lcd_gotoxy(2,3);
lcd_putsf(“www.nunutjoe.com”);
printf(“PB4 Ditekan”);
}
if(statuspb==5){
lcd_clear();
/*Menu1*/
lcd_gotoxy(0,0);
lcd_putsf(“[1]: Start”);
/*Menu2*/
lcd_gotoxy(0,1);
lcd_putsf(“[2]: Kalibrasi”);
/*Menu3*/
lcd_gotoxy(0,2);
lcd_putsf(“[3]: N/A”);
/*Menu4*/
lcd_gotoxy(0,3);
lcd_putsf(“[4]: N/A”);
printf(“Main Menu”);
}
}

Fungsi cekinput disini digunakan untuk mengecek apakah ada penekanan pada push button atau tidak. jika ada penekanan, misalkan push button 5 ditekan. Maka program yang ada di push button akan aktif. Disini isi dari push button 5 adalah statuspb=5. statuspb disini digunakan untuk memanggil program yang telah kita tentukan sebelumnya. Jadi, ketika nilai statuspb==1 maka program yang ada indek statuspb=1 akan dieksekusi oleh mikrokontroler. Untuk lebih jelasnya bisa lihat video demo hasil Membuat Menu di AVR mengunakan tampilan LCD dan serial interface



Untuk program lebih lengkapnya bisa di download disini. Untuk melihat project elektronika lainnya silahkan kunjungi link berikut. Semoga informasi ini bisa membantu teman teman.

5 thoughts on “Membuat Menu di AVR mengunakan tampilan LCD dan serial interface

  1. Hi! I'm at work surfing around your blog from my new apple iphone!
    Just wanted to say I love reading your blog and look forward to all your posts!
    Carry on the fantastic work!

    My web blog; the fat loss factor tips (star4joan.wikidot.com)

  2. Hello, Neat post. There's a problem with yoսr web sitre in web explorer, would test this?

    IE stіll is the market lеader and a good component to other peορle will pass over your great ѡriting becauѕe of
    thіs pгoblem.

    Feel free to surf to my blօg post – sac chanel pas cher femme

Leave a Reply

Your email address will not be published. Required fields are marked *