Nah sekarang saya mau bermain- main dengan menggunakan remote sony Tv saya . dari pada nganggur saya akhirnya mencoba mengaksesnya .Dengan memakai atemega 32 dan TSOP sensor yang kalian bisa beli di toko-toko elektronik terdekat.Nah saya sekarang saya mau mengubah gelombang yang di pancarkan oleh remote sony ke angka decimal untuk memudahkan dalam mengontrol piranti-piranti elektronik yang ingin kalian otomasi.
Sony remote control menerapkan lebar pulsa skema pengkodean untuk protokol mereka. Kode ada dari 12 bit dikirim pada gelombang pembawa 40kHz. Kode dimulai dengan header 2,4ms atau 4 kali T dimana T adalah 600μS. Header diikuti oleh 7 bit perintah dan 5 adres bit. Alamat dan perintah membentuk logic 0 dan 1 ada . Satu logis dibentuk oleh lebar pulsa 600μS atau 1T dan pulsa dari 1.200 mikrodetik atau 2T. Sebuah nol logic dibentuk oleh lebar pulsa 600 mikrodetik dan pulsa 600μS. Ruang antara 2 kode keluar ketika tombol ditekan adalah 40mS dikirim bit paling signifikan pertama. Panjang total bitstream selalu 45ms. Rincian protokol ini digambarkan pada gambar di bawah.
Nah berikut ini adalah contoh semua listing programnya untuk mengcounter seven segment yang sudah saya pecah kedalam aritmatikanya.
$regfile = "8535def.dat"
$crystal = 12000000
Config Portd.7 = Output
Config Portd.6 = Output
Config Portd.5 = Output
Config Portd.4 = Output
Config Portd.3 = Output
Config Portd.2 = Output
'/////tombol//////////
'"segmen two"'
Config Portb.0 = Output
Config Portb.1 = Output
Config Portb.2 = Output
Config Portb.3 = Output
Config Portb.4 = Output
Config Portb.5 = Output
'''''/////segmen number one ''''/////
Segmen1 Alias Portd.3
Clock1 Alias Portd.4
Stb1 Alias Portd.2
Stb2 Alias Portd.7
'''/////segmen number two''''''//////
Segmen2 Alias Portb.0
Clock2 Alias Portb.1
Stb3 Alias Portb.2
Stb4 Alias Portb.3
Oe3 Alias Portb.4
Oe4 Alias Portb.5
Dim I As Byte , B As Byte , C As Byte , D As Byte , E As Byte , F As Byte
Dim Puluhan(2) As Byte , Puluhan1(2) As Byte , Satuan1(2) As Byte , Satuan(2) As Byte ,
Dim Nipul As Byte , Nilsat As Byte , Puluh(2) As Byte , Satuh(2) As Byte , Angka(2) As Byte
Dim Dat1 As Byte , Dat2 As Byte , Dat3 As Byte
Dim Tam As Byte
Config Timer0 = Timer , Prescale = 256
Stop Timer0
Config Pind.2 = Input
Set Portd.2
Pin_ir Alias Pind.2
Config Int1 = Falling
On Int0 Isr_int0
Dim Data_ir As Word
Dim Cnt_ir As Byte
Dim Flag_ir_start As Bit
Dim Flag_ir_ok As Bit
Dim Nilai_a As Word
Dim Nilai_b As Word
Dim Tombol(6) As Word
Cursor Off
Enable Interrupts
Enable Int0
'////// nilai IR ///////
Tombol1 Alias 188
Tombol2 Alias 182
Tombol3 Alias 147
Tombol4 Alias 146
Tombol5 Alias 144
Tombol6 Alias 145
'//////////////////////////////////////////////////////
'//////////ini remotnya ..////////////
Angka(1) = 99
Angka(2) = 0
Do
Cls
Lcd "semangat cah"
Locate 2 , 1
Lcd Angka(1)
Locate 2 , 5
Lcd Angka(2)
If Angka(1) >= 99 Then Angka(1) = 0
If Angka(2) <= 0 Then Angka(2) = 99
Incr Angka(1)
Decr Angka(2)
Gosub Tampil
Wait 1
Loop
Utama:
Cls
Locate 1 , 1
Lcd "ATUR MENU REMOT"
Locate 2 , 1
Lcd "set atur menu"
Waitms 100
Do
Loop
Data1:
If Flag_ir_ok = 1 Then
Reset Flag_ir_ok
Disable Int0
Locate 2 , 1
Lcd Data_ir
Reset Flag_ir_ok
Enable Int0
End If
Wait 1
Return
Isr_int0:
Disable Interrupts
Timer0 = 0
Start Timer0
Bitwait Pin_ir , Set
Stop Timer0
If Cnt_ir = 0 Then
If Timer0 > 110 And Timer0 < 130 Then
Set Flag_ir_start
Incr Cnt_ir
End If
End If
If Flag_ir_start = 1 And Cnt_ir > 0 Then
Decr Cnt_ir
If Timer0 < 35 Then
Data_ir.cnt_ir = 0
Else
Data_ir.cnt_ir = 1
End If
Cnt_ir = Cnt_ir + 2
If Cnt_ir > 13 Then
Shift Data_ir , Right , 1
Reset Flag_ir_start
Set Flag_ir_ok
Cnt_ir = 0
End If
End If
Enable Interrupts
Return
'Inisial_nilai:
'Select Case Data_ir
'Case 188 : Incr Nila
'Case 182 : Decr Nilai_a
'Case 146 : Incr Nilai_b
'Case 147 : Data_ir =
'Case 144 : Data_ir =
'Case 145 : Data_ir =
'End Select
'"""""""""""pemisah aritmaikanya""""""""""""""
''''nilai dipecah pecah untuk mencari nilai decimal terkecil pada bilangan
'Ratusan = Nilai / 100
'Ratusan = Ratusan * 100
'Puluhan = Nilai - ratusan
'Puluhan1 = Puluhan / 10
'Puluhan1 = Puluhan1 * 10
'Satuan = Puluhan - puluhan1
'Satuan = Satuan * 1
''''iki operasi aritmatikane diarai
Tampil:
For I = 1 To 2
Puluhan(i) = Angka(i) / 10
Puluhan1(i) = Puluhan(i) * 10
Satuan(i) = Angka(i) - Puluhan1(i)
Satuan(i) = Satuan(i) * 1
Puluh(i) = Lookup(puluhan(i) , Ambil)
Satuh(i) = Lookup(satuan(i) , Ambil)
Next
''''''''''""""'seven segmen1''''''''''''''"""""""""""
Shiftout Segmen1 , Clock1 , Puluh(1) , 1
Shiftout Segmen1 , Clock1 , Satuh(1) , 1
'''''''''''''''seven segmen2'''''''''''''""""""""""""
Shiftout Segmen2 , Clock2 , Puluh(2) , 1
Shiftout Segmen2 , Clock2 , Satuh(2) , 1
'''""" diset biar nyala ''''""""
Set Stb1
Set Stb2
'Set Oe1
'Set Oe2
'''''""""" yang kedua """""""'''''''
Set Stb3
Set Stb4
Set Oe3
Set Oe4
Return
Return
Ambil:
Data &B11110111
Data &B10110000
Data &B11101110
Data &B11111010
Data &B10111001
Data &B11011011
Data &B11011111
Data &B11110000
Data &B11111111
Data &B11111011
''''////////THE END////////''''''
untuk listing program lengkap kalian bisa dowload program disini
Download remote sony
halo gan mau tanya, itu dapet nilai IR nya dari mana yah?
ReplyDelete