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.
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
No comments:
Post a Comment