brontoseno electric

6:28 AM
1
Remot sony IR send bascom AVR 

       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








1 komentar:

  1. halo gan mau tanya, itu dapet nilai IR nya dari mana yah?

    ReplyDelete