Translate

Membuat Robot dengan Kendali Remote TV SONY (BASCOM AVR)

Membuat Robot dengan Kendali Remote TV SONY (BASCOM AVR)

              Malam ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat atau tepatnya sebuah robot dengan menggunakan kendali remote TV, project ini sangatlah bagus sekali bagi para pecinta mikrokontroller, disamping kecanggihannya, juga fungsi wirelessnya yang bisa mengendalikan benda hingga jarak 5 meter kurang lebih. Banyak sekali aplikasi yang bisa dibuat dari project ini, misal kendali lampu rumah atau kipas angin, kendali buka tutup pintu dan lainnya. untuk lebih jelasnya berikut penjelasannya.




a. Minimum System




b. Remote Sony





c. Sensor TSOP




d. Motor Driver L293




e. Program Bascom AVR

$regfile = "m32def.dat"
$crystal = 12000000
'--------------------------

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

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
$baud = 9600

Ddrb = &B11111111

Dim Data_ir As Word
Dim Cnt_ir As Byte
Dim Flag_ir_start As Bit
Dim Flag_ir_ok As Bit
Dim Suhu_ref As Word
Dim Suhu As Word
Cls
Cursor Off
Locate 1 , 3
Lcd "SONY 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
If Data_ir = 128 Then
   Portb.0 = 1
   Else
   Portb.0 = 0
End If
If Data_ir = 129 Then
   Portb.3 = 1
   Else
   Portb.3 = 0
End If
If Data_ir = 130 Then
   Portb.5 = 1
   Else
   Portb.5 = 0
End If
If Data_ir = 131 Then
   Portb.6 = 1
   Else
   Portb.6 = 0
End If
If Data_ir = 132 Then
   Portb.7 = 1
   Else
   Portb.7 = 0
End If
If Data_ir = 244 Then
   Cls
Lcd "MOTOR MAJU"
   Portb.1 = 1
   Portb.2 = 1
   End If
   If Data_ir = 179 Then
   Cls
Lcd "MOTOR KIRI"
   Portb.1 = 0
   Portb.2 = 1
   End If
    If Data_ir = 180 Then
    Cls
Lcd "MOTOR KANAN"
   Portb.1 = 1
   Portb.2 = 0
   End If
    If Data_ir = 149 Then
    Cls
Lcd "STOP"
   Portb.1 = 0
   Portb.2 = 0
End If
If Data_ir = 229 Then
    Cls
Lcd "STOP"
   Portb.1 = 0
   Portb.2 = 0
End If

   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 > 110 And Timer0 < 120 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





f. VIDEO HASILNYA











1 comment:

  1. mas, kalau boleh nanya, saya pakai crystal 16 MHz, ada pengaruhnya g?
    Thanks

    ReplyDelete