Senin, 30 Mei 2011

Tutorial Sony Remote Control Decoding using Bascom AVR

Sekarang waktunya bermain remote heheee.... Remote yang digunakan adalah Sony, kenapa remote Sony? karena lebih mudah dicari dan encoder sinyalnya lebih khusus, tidak seperti remote lain yang rata-rata hampir sama, sehingga jarang mengalami gangguan walopun ada sinyal infra red lain yang masuk.
Protokol remote Sony dapat dilihat disini. Gambarnya seperti dibawah ini:
Lalu bagaimana cara membacanya? Untuk program ini saya menggunakan Bascom AVR dan tampilan pada LCD serta port serial atau Hyperterminal. Jangan lupa gunakan sensor TSOP untuk membaca data infra red remote, atau bahasa kerennya sensor TV. Bentuknya seperti ini:
Lalu buat rangkaian seperti ini:


Dan listing programnya seperti ini:

'=======================================================
'Programmer: Wahyu Rahmaniar
'Company   : Technologination
'
'SONY REMOTE DECODER
'=======================================================

$regfile = "m32def.dat"
$crystal = 11059200
$baud = 9600

Config Lcdpin = Pin , Rs = Portc.2 , E = Portc.3 , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7
Config Lcd = 16 * 2

Config Timer0 = Timer , Prescale = 256
Stop Timer0

Config Pind.3 = Input
Set Portd.3
Pin_ir Alias Pind.3

Config Int1 = Falling
On Int1 Isr_int1

Dim Data_ir As Word
Dim Cnt_ir As Byte
Dim Flag_ir_start As Bit
Dim Flag_ir_ok As Bit

Cls
Cursor Off
Locate 1 , 3
Lcd "SONY DECODER"


Print "SONY REMOTE DECODER"
Wait 1

Enable Interrupts
Enable Int1

Do
 If Flag_ir_ok = 1 Then
   Reset Flag_ir_ok
   Disable Int1
   Gosub Isr_int1
   Print "Data= " ; Data_ir
   Cls
   Cursor Off
   Locate 1 , 3
   Lcd "Data= " ; Data_ir

   Reset Flag_ir_ok

   Enable Int1
 End If
 Wait 1
Loop


Isr_int1:

 Timer0 = 0

 Start Timer0
 Bitwait Pin_ir , Set
 Stop Timer0

 If Cnt_ir = 0 Then
 If Timer0 > 90 And Timer0 < 114 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 < 32 Then
 Data_ir.cnt_ir = 0
 Else
 Data_ir.cnt_ir = 1
 End If

 Cnt_ir = Cnt_ir + 2
 If Cnt_ir > 11 Then
 Shift Data_ir , Right , 1
 Reset Flag_ir_start
 Set Flag_ir_ok
 Cnt_ir = 0
 End If

 End If

Return


atau download source code remote Sony.

Lalu kalau sudah berhasil mendapatkan data decodernya untuk apa?
Kita bisa menggunakan remote sebagai pengganti keypad, atau sebagai remote control untuk penggerak mobil-mobilan atau mungkin robot beroda, robot lengan, dsb.

Tempat Jual Komponen dan Elektronik.
-ayuchan-