penggunaan LCD untuk menampilkan Bar graph atau bar sinyal pada berbagai produk bebasis elektronik semakin populer, misalnya bar sinyal pada perangkat komunikasi untuk mengetahui seberapa besar sinyal Radio diterima. bar sinyal pada perangkat Audio untuk mengetahui level Audio.
pada kesempatan ini saya ingin berbagi sedikit pengalaman bagaimana pemrograman Bargraph pada LCD 16x2. seperti biasanya saya mengandalkan Mikrokontroler Atmega8A. mikrokontroler yang murah dengan kecepatan 16MIPS (16 juta instruksi perdetik). dengan jumlah masukan Analog sebanyak 8 buah untuk model SMD.
Atmega8A model SMD adalah favorit saya. lebih kebal dalam berbagai situasi. sedang Atmega8A model DIL hampir 85% rusak dalam berbagai situasi. terutama selama pengembangan Software Aplikasi (Firmware). meskipun kita harus bersabar dalam penyolderan karena memang penyolderan SMD sedikit memerlukan perlakuan khusus.
periperal Mikrokontroler yang sangat berperan dalam pengolahan sinyal analog adalah ADC (Analog to Digital Converter). ADC pada Atmega8A memiliki lebar data 10 bit ( 0 - 1023), ini sudah cukup untuk aplikasi sederhana semacam Signal Bar. akan tetapi jika digunakan untuk mengubah suara setidaknya diperlukan ADC dengan kedalman minimal 24 bit.
baiklah langsung kita masuk ke bagian penulisan kode-kode untuk MEMBUAT BAR SINYAL METER
seperti biasanya kita gunakan IDE dari Bascom-AVR untuk menuliskan Kode dan Proteus untuk mensimulasikan hasil Kodingan yang kita buat.
pertama-tama silahkan masuk lcd_disigner, lalu set all, terus kamu buang semua blok paling bawah, lalu OK.
Deflcdchar [x],31,31,31,31,31,31,31,32' replace [x] with number (0-7)
silahkan ganti [x] dengan angka dari 0 - 7. selanjutnya jika kita mau menampilkan bentuk yang telah kita buat tadi ke LCD 16x2 cukup menggunakan perintah
locate 2,1:lcd chr(0) 'tampilkan bentuk ld disigner ke lcd baris kedua kolom pertama
selengkapnya silahkan copas kode Bar Graph Lcd Display berikut ini. masukkan ke Bascom-AVR, Compilasi dan jalankan di Proteus.
'bargraph meter
'fauzi hp
'atmega8a 32 pin
'aktifkan ADC
Config Adc = Single , Prescaler = Auto , Reference = Avcc
'bentuk sinyal bar
Deflcdchar 0 , 31 , 31 , 31 , 31 , 31 , 31 , 31 , 32 ' replace [x] with number (0-7)
'membuat tempat penampungan nilai ADC yg merepresentasikan nilai signal
Dim Signal As Word
'bersihkan LCD dulu, dan matikan kursor LCD
Cls
Cursor Off
'looping utama program (Do..........Loop)
Do
'mengambil nilai adc dan di simpan di Variabel signal
Signal = Getadc(6)
'nilai ini ditampilkan hanya untuk analisa. jika maping selesai hapus saja
'nilai antara 0 - 1023, silahkan disesuaikan dengan rentang tegangan yang
'mau dihubungkan dengan alat ini
Locate 1 , 1 : Lcd Signal
'area pembentukan signal meter. isikan nilai adc dan sesuaikan sesuai keinginan
'dalam contoh ini dibentuk sebanyak 8 bar sinyal. jika mau lebih silahkan
'tambahkan kode2 berikutnya dengan mengau kode sebelumnya
If Signal = 0 Then
Locate 2 , 1 : Lcd " "
End If
If Signal > 0 And Signal < 100 Then
Locate 2 , 1 : Lcd Chr(0)
Locate 2 , 2 : Lcd " "
End If
If Signal > 100 And Signal < 200 Then
Locate 2 , 1 : Lcd Chr(0)
Locate 2 , 2 : Lcd Chr(0)
Locate 2 , 3 : Lcd " "
End If
If Signal > 200 And Signal < 300 Then
Locate 2 , 1 : Lcd Chr(0)
Locate 2 , 2 : Lcd Chr(0)
Locate 2 , 3 : Lcd Chr(0)
Locate 2 , 4 : Lcd " "
End If
If Signal > 300 And Signal < 400 Then
Locate 2 , 1 : Lcd Chr(0)
Locate 2 , 2 : Lcd Chr(0)
Locate 2 , 3 : Lcd Chr(0)
Locate 2 , 4 : Lcd Chr(0)
Locate 2 , 5 : Lcd " "
End If
If Signal > 400 And Signal < 500 Then
Locate 2 , 1 : Lcd Chr(0)
Locate 2 , 2 : Lcd Chr(0)
Locate 2 , 3 : Lcd Chr(0)
Locate 2 , 4 : Lcd Chr(0)
Locate 2 , 5 : Lcd Chr(0)
Locate 2 , 6 : Lcd " "
End If
If Signal > 500 And Signal < 600 Then
Locate 2 , 1 : Lcd Chr(0)
Locate 2 , 2 : Lcd Chr(0)
Locate 2 , 3 : Lcd Chr(0)
Locate 2 , 4 : Lcd Chr(0)
Locate 2 , 5 : Lcd Chr(0)
Locate 2 , 6 : Lcd Chr(0)
Locate 2 , 7 : Lcd " "
End If
If Signal > 600 And Signal < 700 Then
Locate 2 , 1 : Lcd Chr(0)
Locate 2 , 2 : Lcd Chr(0)
Locate 2 , 3 : Lcd Chr(0)
Locate 2 , 4 : Lcd Chr(0)
Locate 2 , 5 : Lcd Chr(0)
Locate 2 , 6 : Lcd Chr(0)
Locate 2 , 7 : Lcd Chr(0)
Locate 2 , 8 : Lcd " "
End If
If Signal > 700 And Signal < 1023 Then
Locate 2 , 1 : Lcd Chr(0)
Locate 2 , 2 : Lcd Chr(0)
Locate 2 , 3 : Lcd Chr(0)
Locate 2 , 4 : Lcd Chr(0)
Locate 2 , 5 : Lcd Chr(0)
Locate 2 , 6 : Lcd Chr(0)
Locate 2 , 7 : Lcd Chr(0)
Locate 2 , 8 : Lcd Chr(0)
End If
'pembentukan sinyal selesai
Loop
End
jika tidak ada error silahkan simulasikan di proteus. ubah-ubahlah nilai dari Potensiometer dan lihat sinyal Bar. apakah sudah ada perubahan sebanding dengan perubahan Potensio.
mudah sekali bukan Cara Membuat Bar Graph Lcd Display. karena kolom LCD hanya berjumlah 16, maka hanya bisa dibentuk maksimal 16 bar signal. jika kita menggunakan LCD Graphic maka bisa dibuat sampai 1023 Bar signal.
jika kamu sudah benar-benar memahami cara diatas, maka tidak akan sulit untuk mengembangkan untuk berbagai keperluan, misalnya
pada kesempatan ini saya ingin berbagi sedikit pengalaman bagaimana pemrograman Bargraph pada LCD 16x2. seperti biasanya saya mengandalkan Mikrokontroler Atmega8A. mikrokontroler yang murah dengan kecepatan 16MIPS (16 juta instruksi perdetik). dengan jumlah masukan Analog sebanyak 8 buah untuk model SMD.
Atmega8A model SMD adalah favorit saya. lebih kebal dalam berbagai situasi. sedang Atmega8A model DIL hampir 85% rusak dalam berbagai situasi. terutama selama pengembangan Software Aplikasi (Firmware). meskipun kita harus bersabar dalam penyolderan karena memang penyolderan SMD sedikit memerlukan perlakuan khusus.
periperal Mikrokontroler yang sangat berperan dalam pengolahan sinyal analog adalah ADC (Analog to Digital Converter). ADC pada Atmega8A memiliki lebar data 10 bit ( 0 - 1023), ini sudah cukup untuk aplikasi sederhana semacam Signal Bar. akan tetapi jika digunakan untuk mengubah suara setidaknya diperlukan ADC dengan kedalman minimal 24 bit.
sebelum kita masuk ke Pemrograman Signal Bar buatlah diagram skema seperti gambar dibawah ini menggunakan Proteus.
seperti biasanya kita gunakan IDE dari Bascom-AVR untuk menuliskan Kode dan Proteus untuk mensimulasikan hasil Kodingan yang kita buat.
ini akan menghasilkan file chr seperti dibawah ini
Deflcdchar [x],31,31,31,31,31,31,31,32' replace [x] with number (0-7)
silahkan ganti [x] dengan angka dari 0 - 7. selanjutnya jika kita mau menampilkan bentuk yang telah kita buat tadi ke LCD 16x2 cukup menggunakan perintah
locate 2,1:lcd chr(0) 'tampilkan bentuk ld disigner ke lcd baris kedua kolom pertama
selengkapnya silahkan copas kode Bar Graph Lcd Display berikut ini. masukkan ke Bascom-AVR, Compilasi dan jalankan di Proteus.
'bargraph meter
'fauzi hp
'atmega8a 32 pin
'aktifkan ADC
Config Adc = Single , Prescaler = Auto , Reference = Avcc
'bentuk sinyal bar
Deflcdchar 0 , 31 , 31 , 31 , 31 , 31 , 31 , 31 , 32 ' replace [x] with number (0-7)
'membuat tempat penampungan nilai ADC yg merepresentasikan nilai signal
Dim Signal As Word
'bersihkan LCD dulu, dan matikan kursor LCD
Cls
Cursor Off
'looping utama program (Do..........Loop)
Do
'mengambil nilai adc dan di simpan di Variabel signal
Signal = Getadc(6)
'nilai ini ditampilkan hanya untuk analisa. jika maping selesai hapus saja
'nilai antara 0 - 1023, silahkan disesuaikan dengan rentang tegangan yang
'mau dihubungkan dengan alat ini
Locate 1 , 1 : Lcd Signal
'area pembentukan signal meter. isikan nilai adc dan sesuaikan sesuai keinginan
'dalam contoh ini dibentuk sebanyak 8 bar sinyal. jika mau lebih silahkan
'tambahkan kode2 berikutnya dengan mengau kode sebelumnya
If Signal = 0 Then
Locate 2 , 1 : Lcd " "
End If
If Signal > 0 And Signal < 100 Then
Locate 2 , 1 : Lcd Chr(0)
Locate 2 , 2 : Lcd " "
End If
If Signal > 100 And Signal < 200 Then
Locate 2 , 1 : Lcd Chr(0)
Locate 2 , 2 : Lcd Chr(0)
Locate 2 , 3 : Lcd " "
End If
If Signal > 200 And Signal < 300 Then
Locate 2 , 1 : Lcd Chr(0)
Locate 2 , 2 : Lcd Chr(0)
Locate 2 , 3 : Lcd Chr(0)
Locate 2 , 4 : Lcd " "
End If
If Signal > 300 And Signal < 400 Then
Locate 2 , 1 : Lcd Chr(0)
Locate 2 , 2 : Lcd Chr(0)
Locate 2 , 3 : Lcd Chr(0)
Locate 2 , 4 : Lcd Chr(0)
Locate 2 , 5 : Lcd " "
End If
If Signal > 400 And Signal < 500 Then
Locate 2 , 1 : Lcd Chr(0)
Locate 2 , 2 : Lcd Chr(0)
Locate 2 , 3 : Lcd Chr(0)
Locate 2 , 4 : Lcd Chr(0)
Locate 2 , 5 : Lcd Chr(0)
Locate 2 , 6 : Lcd " "
End If
If Signal > 500 And Signal < 600 Then
Locate 2 , 1 : Lcd Chr(0)
Locate 2 , 2 : Lcd Chr(0)
Locate 2 , 3 : Lcd Chr(0)
Locate 2 , 4 : Lcd Chr(0)
Locate 2 , 5 : Lcd Chr(0)
Locate 2 , 6 : Lcd Chr(0)
Locate 2 , 7 : Lcd " "
End If
If Signal > 600 And Signal < 700 Then
Locate 2 , 1 : Lcd Chr(0)
Locate 2 , 2 : Lcd Chr(0)
Locate 2 , 3 : Lcd Chr(0)
Locate 2 , 4 : Lcd Chr(0)
Locate 2 , 5 : Lcd Chr(0)
Locate 2 , 6 : Lcd Chr(0)
Locate 2 , 7 : Lcd Chr(0)
Locate 2 , 8 : Lcd " "
End If
If Signal > 700 And Signal < 1023 Then
Locate 2 , 1 : Lcd Chr(0)
Locate 2 , 2 : Lcd Chr(0)
Locate 2 , 3 : Lcd Chr(0)
Locate 2 , 4 : Lcd Chr(0)
Locate 2 , 5 : Lcd Chr(0)
Locate 2 , 6 : Lcd Chr(0)
Locate 2 , 7 : Lcd Chr(0)
Locate 2 , 8 : Lcd Chr(0)
End If
'pembentukan sinyal selesai
Loop
End
jika tidak ada error silahkan simulasikan di proteus. ubah-ubahlah nilai dari Potensiometer dan lihat sinyal Bar. apakah sudah ada perubahan sebanding dengan perubahan Potensio.
mudah sekali bukan Cara Membuat Bar Graph Lcd Display. karena kolom LCD hanya berjumlah 16, maka hanya bisa dibentuk maksimal 16 bar signal. jika kita menggunakan LCD Graphic maka bisa dibuat sampai 1023 Bar signal.
jika kamu sudah benar-benar memahami cara diatas, maka tidak akan sulit untuk mengembangkan untuk berbagai keperluan, misalnya
- membuat sinyal bar Radio HomeBrew anda
- menambahkan sinyal meter pada Radio Komunikasi anda
- membuat bar SWR/Antena Analyzer
- indikator Gas pada speda/motor/ mobil listrik
- membuat spectrum/audio analyzer
- membuat termometer bar
- ataupun signal-signal indikator yang lainya
Artikel Terkait
Cara Membuat Bar Graph Lcd Display
4/
5
Fauzi hp