Membuat Alat Kendali Led dengan
Joystick PS 2
Pada
bab ini akan dibahas mengenai bagaimana cara membuat alat untuk mengendalikan
led on/off menggunakan Joystick PS2, alat yang akan dibuat ini menggunakan
mikrokontroller ATMega8 yang mana difungsikan sebagai otak dan pemberi perintah
ke output, sehingga output yang berupa led pada alat ini akan berjalan
sebagaimana mestinya.
Jadi
terdapat sebuah Joystick PS2 yang terhubung ke mikrokontroller, saat ditekan
tombol X atau silang pada Joystik maka akan menampilkan kata-kata pada LCD
berupa “Silang” dan led akan menyala, namun jika tombol pada Joystick tidak
ditekan maka akan bertuliskan “Diam” dan led akan mati begitu juga dengan
tombol segitiga , tombol bulat dan kotak, akan menampilkan karakter pada LCD
dan led akan menyala selama tombol masih ditekan.
Koneksi
Joystick PS2 ke mikrokontroller menggunakan Port SPI yaitu dihubungkan ke port
MOSI, MISO, dan SCK, sehingga sinyal masukan yang diberikan oleh Joystick dapat
diterjemahkan dengan baik oleh mikrokontroller ATMega8.
Joystick
PS2
Joystick PS2 yang digunakan
untuk pembuatan alat ini bisa berjenis dengan kabel artinya joystick yang
menggunakan kabel sebagai penghubungnya seperti Gambar 6.27b atau Joystick yang
menggunakan wireless / tanpa kabel sebagai media penghubungnya seperti pada
Gambar 6.27c. dan perlu diperhatikan bahwa Joystick yang digunakan menggunakan
port seperti Gambar 6.27d dan tidak menggunakan port USB, jika membeli Joystick
dengan port USB maka harus menggunakan converter dari USB ke port PS2 sehingga
port yang akan dihubungkan ke mikrokontroller jelas terlihat.
Nah,
jadi Joystick memiliki 9 buah Port yang bisa digunakan untuk koneksi ke
mikrokontroller, namun tidak semua port digunakan, dari 9 port yang ada, yang
dipakai untuk koneksi SPI ke mikrokontroller hanya 6 buah, yaitu Command ke
MOSI, Data ke MISO, Clock ke SCK, Attention ke PortB.0 dan VCC, GND, untuk
lebih jelasnya seperti pada gambar 6.27e berikut
Rangkaian Minimum Sistem
Program
Bascom AVR
$regfile = "m8def.dat"
$crystal = 8000000
Deflcdchar 0 , 32 , 4 , 14 , 27 , 17 , 31 ,
32 , 32 ' segitiga
Deflcdchar 1 , 32 , 31 , 17 , 17 , 17 , 17 ,
31 , 32 ' kotak
Deflcdchar 2 , 32 , 4 , 14 , 21 , 4 , 4 , 4 ,
32 ' up
Deflcdchar 3 , 32 , 4 , 4 , 4 , 21 , 14 , 4 ,
32 ' down
Deflcdchar 4 , 32 , 4 , 2 , 31 , 2 , 4 , 32 ,
32 ' kanan
Deflcdchar 5 , 32 , 4 , 8 , 31 , 8 , 4 , 32 ,
32 ' kiri
Config Lcdpin = Pin , Rs = Portc.4 , E =
Portc.5 , Db4 = Portc.0
Config Lcdpin = Pin , Db5 = Portc.1 , Db6 =
Portc.2 , Db7 = Portc.3
Config Lcd = 16 * 2
Config Spi = Hard , Interrupt = Off , Data
Order = Lsb , Master = Yes , Polarity = High , Phase = 1 , Clockrate = 128
Spiinit
Config Pinb.0 = Output
Pad_att_line Alias Portb.0
Config Pind.4 = Output
Led Alias Portd.4
Dim Cmdstart As Byte : Cmdstart = &H01
Dim Cmdstatus As Byte : Cmdstatus = &H42
Dim Joy_present As Byte , Joy_mode As Byte
Dim Joy_byte1 As Byte , Joy_byte2 As Byte
Dim Joy_kanan_x As Byte , Joy_kanan_y As Byte
Dim Joy_kiri_x As Byte , Joy_kiri_y As Byte
Key_select Alias Joy_byte1.0
Key_joyr Alias Joy_byte1.1
Key_joyl Alias Joy_byte1.2
Key_start Alias Joy_byte1.3
Key_up Alias Joy_byte1.4
Key_right Alias Joy_byte1.5
Key_down Alias Joy_byte1.6
Key_left Alias Joy_byte1.7
Key_l2 Alias Joy_byte2.0
Key_r2 Alias Joy_byte2.1
Key_l1 Alias Joy_byte2.2
Key_r1 Alias Joy_byte2.3
Key_triangle Alias Joy_byte2.4
Key_circle Alias Joy_byte2.5
Key_x Alias Joy_byte2.6
Key_square Alias Joy_byte2.7
Cls
Cursor Off
Do
Waitms 100
Reset Pad_att_line : Waitus 10
Spiout Cmdstart , 1
Joy_mode = Spimove(cmdstatus) '
Spiin Joy_present , 1
Spiin Joy_byte1 , 1
Spiin Joy_byte2 , 1
Spiin Joy_kanan_x , 1
Spiin Joy_kanan_y , 1
Spiin Joy_kiri_x , 1
Spiin Joy_kiri_y , 1
Set
Pad_att_line : Waitus 10
If
Key_x = 0 Then
Cls
Upperline
Lcd
"Silang"
Led
= 1
Elseif Key_circle = 0 Then
Cls
Upperline
Lcd
"Bulet"
Led
= 1
Elseif Key_triangle = 0 Then
Cls
Upperline
Lcd
"Segitiga"
Led
= 1
Elseif Key_square = 0 Then
Cls
Upperline
Lcd
"kotak"
Led
= 1
Elseif Key_up = 0 Then
Cls
Upperline
Lcd
"Atas"
Elseif Key_down = 0 Then
Cls
Upperline
Lcd
"Bawah"
Elseif Key_right = 0 Then
Cls
Upperline
Lcd
"kanan"
Elseif Key_left = 0 Then
Cls
Upperline
Lcd
"kiri"
Else
Cls
Upperline
Lcd
"Diam"
Led
= 0
End
If
Loop
Cara Penggunaan Alat
Untuk cara penggunaan alat ini
yaitu hubungkan alat dengan sumber tegangan dan arus misalnya power supply 12v,
setelah itu akan tampak LCD display menyala yang menandakan alat siap
digunakan. Cobalah untuk menekan tombol X, tombol kotak, tombol segitiga, tombol O, arrow up, arrow down, arrow
left, dan arrow right jika alatnya berhasil maka akan tampil seperti table berikut
Tombol
Yang Ditekan
|
Tampilan
LCD
|
Kondisi
Led
|
Tombol X
|
Silang
|
Menyala
|
Tombol segitiga
|
Segitiga
|
Menyala
|
Tombol kotak
|
Kotak
|
Menyala
|
Tombol O
|
Bulet
|
Menyala
|
Tombol
Arrow Up
|
Atas
|
Mati
|
Tombol Arrow
Down
|
Bawah
|
Mati
|
Tombol Arrow Left
|
Kiri
|
Mati
|
Tombol Arrow Right
|
Kanan
|
Mati
|
Tombol Tidak Ditekan
|
Diam
|
Mati
|
No comments:
Post a Comment