Disini saya akan menjelaskan bagaimana cara membuat bargraph menggunakan bascom avr dengan media yang digunakan adalah LCD 16x2, Bargraph adalah sebuah grafik yang tersusun dari gambar kotak atau garis, sehingga jika kotak dan garis tersebut disusun akan membentuk seperti grafik, pada penjelasan kali ini bargraph difungsikan untuk visualisasi dari tegangan yang terukur. supaya lebih jelas dan lebih mudah dimengerti oleh orang awam maka bargraph ini bisa digunakan, baik itu untuk visualisasi tegangan maupun visualisasi yang lainnya, berikut adalah penjelasan skematik dan programnya.
a. Skematik Minimum System
b. Potensiometer
c. Program Bascom AVR
$regfile = "m16def.dat"
$crystal = 12000000
$baud = 9600
Config Lcdpin = Pin , Rs = Portc.0 , E = Portc.1 , Db4 = Portc.2
Config Lcdpin = Pin , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5
Config Lcd = 16 * 2
Cursor Off Noblink
Cls
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
'--------Symbols for bargraph-------------
Deflcdchar 0 , 32 , 32 , 32 , 21 , 21 , 21 , 32 , 32 ' empty symbol
Deflcdchar 1 , 32 , 31 , 31 , 31 , 31 , 31 , 31 , 31 ' 5/5, filled symbol
Deflcdchar 2 , 32 , 16 , 16 , 21 , 21 , 21 , 16 , 16 ' replace [x] with number (0-7)
Deflcdchar 3 , 32 , 24 , 24 , 29 , 29 , 29 , 24 , 24 ' replace [x] with number (0-7)
Deflcdchar 4 , 32 , 28 , 28 , 29 , 29 , 29 , 28 , 28 ' replace [x] with number (0-7)
Deflcdchar 5 , 32 , 30 , 30 , 31 , 31 , 31 , 30 , 30 ' replace [x] with number (0-7)
Dim L As Byte , R As Byte , Cols As Byte , J As Integer , M As Byte
Dim N As Byte , O As Byte , T As Byte , I As Byte
Dim Adc_val As Word , Adc_sin As Single
Dim Adc1 As Single , Adc2 As Single , Volt As String * 5
Declare Sub Bargraph()
Do
Adc_val = Getadc(7)
Call Bargraph
Adc1 = Adc_val * 5
Adc2 = Adc1 / 1023
Volt = Fusing(adc2 , "#.##")
Upperline
Lcd "Volt = " ; Volt
Loop
'----------------Bar graph------
Sub Bargraph()
Adc_sin = Adc_val / 4
L = Adc_sin
Cols = L / 17
J = Cols - 1
T = Cols + 1
M = 255 - L
N = Cols * 17
O = L - N
Locate 2 , 1
For I = 1 To Cols
Lcd Chr(1) 'filled symbol
Next I
If L > N Then
Locate 2 , T
If O > 0 And O <= 3 Then
Lcd Chr(2) '1/5
Elseif O > 3 And O <= 7 Then
Lcd Chr(3) '2/5
Elseif O > 7 And O <= 10 Then
Lcd Chr(4) '3/5
Elseif O > 10 And O <= 14 Then
Lcd Chr(5) '4/5
Elseif O > 14 And O <= 17 Then
Lcd Chr(1) '5/5
End If
End If
For I = Cols To 13
Lcd Chr(0) 'empty symbol
Next I
End Sub
d. VIDEO HASILNYA
No comments:
Post a Comment