Rangkaian yang akan
dibahas pada kesempatan ini masih sekedar permainan. Tapi bisa jadi bermanfaat
untuk aplikasi di rumah atau di mana saja. Aku menggunakan rangkaian ini untuk
di rumah sebagai pengatur lampu tetapi sudah dimodifikasi dengan menambahkan
memori AT93C46 tentu saja. Bahkan sudah dikembangkan dengan penambahan RTC
(real time clock) DS1302 sehingga hidup lebih praktis di rumah mungilku.
Ini hanya konsep
dasar yang dapat dikembangkan lebih jauh. Sobat bisa mengaplikasikan dengan
beragam fasilitas yang dapat dikombinasikan dengan berbagai perangkat yang
dapat dicari dalam tulisan-tulisan terdahulu pada situsku.
Perangkat pemancar
remot, biasanya sesuai pengalaman penulis menggunakan IR LED dengan frekuensi
36 kHz. Penulis juga sering menggunakan jenis TSAL6200 dan pada kondisi baik
dapat menjangkau hampir 35 meter. Untuk bagian penerimanya menggunakan sebuah
TSOP4836 di mana keluarannya sudah dapat langsung dihubungkan ke gerbang
mikrokontroler. Mengenai penerima IR TSOP4836 dapat dilihat pada gambar
berikut:
Kita perlu
menambahkan sebuah resistor senilai 100 ohm dan kapasitor 4,7 uF pada rangkaian
TSOP4836 untuk mereduksi riple tegangan dari catu daya.
Berikut aku
tampilkan gambar rangkaian berbasis mikrokontroler AT89C2051 yang akan menerima
sinyal IR di atas dan memprosesnya untuk mengendalikan ON dan OFF sebuah
keluaran relay. Data akan disimpan pada memori AT93C46 yang diorganisasikan ke
dalam 8 bit yang terhubung pada gerbang P1.2, P1.3 dan P1.4 untuk antarmukanya.
Saat pengujian
perangkat penulis menggunakan modul Kit MCS51 20 Pin yang berbasis AT89S2051
yang menggunakan pemrograman secara ISP menggunakan gerbang P1.5, P1.6 dan P1.7
maka pada gambar berikut pena-pena tersebut tidak digunakan pada rangkaian
karena penulis menghubungkannya ke modul programer yang sudah penulis
modifikasi dengan indikator LED untuk memudahkan saja.
Rangkaian di atas
juga dilengkapi dengan sebuah indikator LED yaitu LP1 yang terhubung
pada penyemat gerbang P1.1 dan pada gerbang ini juga dihubungkan pada sebuah
sakelar tekan S1 untuk tujuan programming. Keluaran penggerak relay
dihubungkan pada gerbang P1.0. Penulis menggunakan jenis relay dengan tegangan
kumparan 5 volt.
Sementara untuk
masukan IR digunakan gerbang P3.7.
Untuk aplikasi yang
harus dimasukkan pada mikrokontroler dapat dilihat berikut ini:
$mod51
PinRelay bit p1.0
PinProg bit p1.1
DIO bit p1.2
CLK bit p1.3
RST bit p1.4
IR_Sensor bit p3.7
BufferData data 08h
RegBit data 20h
Fail bit RegBit.0
RegStack data 30h
Seperti biasanya, pada penulisan di atas, diawali dengan
menetapkan konfigurasi penyemat dan alokasi memori RAM yang akan digunakan.
Setelah itu baru kita memulai penulisan perintah-perintah yang dimulai pada
alamat 0000H. Aplikasi pertama kali akan memeriksa kondisi S1 untuk PROGRAM.
Jika pada saat pertama dihidupkan atau setelah RESET S1 ditekan maka aplikasi
akan menunggu sampai kurang lebih 5 detik untuk memasuki pemrograman data remot
yang ditandai dengan aktifnya keluaran relay. Sobat bisa memasukan data remot
dengan menekan salah satu tombol yang ada pada perangkat remot. Namun apabila
S1 tidak ditekan atau ditekan kurang dari 5 detik maka aplikasi akan
dilanjutkan ke rutin bernama Masukan.
org 0h
mov sp, RegStack-1
mov r5, #18
Ini1: mov r6, #255
Ini2: mov r7, #255
Inisialisasi:
jb PinProg, Masukan
djnz r7, Inisialisasi
djnz r6, Ini2
djnz r5, Ini1
clr PinRelay
jnb PinProg, $
mov r0, #BufferData
jb IR_Sensor, $
acall IR_READ
acall AT93C46_EWEN
mov dptr, #0
mov r0, #BufferData
mov r7, #8
Setelah data remot diterima maka selanjutnya aplikasi akan
menyimpan data tersebut ke dalam memori AT93C46 pada alamat 00H.
SimpanRemot:
mov a, @r0
inc r0
acall AT93C46_WRITE
djnz r7, SimpanRemot
acall AT93C46_EWDS
setb PinRelay
Setelah data disimpan maka aplikasi kembali menon-aktifkan
relay. Di sini Sobat bisa menambahkan perintah untuk verifikasi data jika mau
yaitu memasukkan kembali data remot dan membandingkannya dengan data pada
memori. Penulis tidak memasukkan rutin ini dan langsung menuju ke rutin Masukan
seperti berikut ini:
Masukan:
mov r0, #BufferData
jb IR_Sensor, $
acall IR_READ
mov dptr, #0
mov r0, #BufferData
mov r7, #8
Pada rutin Masukan status masukan IR_Sensor diperiksa. Jika ada
data yang masuk maka data akan disimpan sementara pada BufferData kemudian akan
diperiksa dengan membandingkannya pada data dalam memori AT93C46. Jika data
sama maka keluaran relay maupun indikator akan berubah kondisi dengan perintah
CPL. Jika semula rendah akan menjadi tinggi atau sebaliknya.
PeriksaRemot:
mov b, @r0
inc r0
acall AT93C46_READ
inc dptr
xrl a, b
jnz Masukan
djnz r7, PeriksaRemot
cpl PinRelay
cpl PinProg
ajmp Masukan
Berikut adalah subrutin yang digunakan untuk mengambil data remot:
IR_READ:
jnb IR_Sensor, $
mov r5, #8
BacaByte_IR:
mov r6, #8
clr a
BacaSerial_IR:
jb IR_Sensor, BacaTinggi_IR
clr c
ajmp RotasiData_IR
BacaTinggi_IR:
setb c
RotasiData_IR:
rlc a
acall Pulsa
acall Pulsa
djnz r6, BacaSerial_IR
mov @r0, a
inc r0
djnz r5, BacaByte_IR
ret
Pulsa: mov r7,
#255
djnz r7, $
ret
$include (c:\tesasm\93C46_8.txt)
end
Program aplikasi
mikrokontroler di atas masih membutuhkan modul untuk antarmuka dengan AT93C46
yang bernama 93C46_8.TXT yang ada dan bisa Sobat lihat pada tulisanku
sebelumnya.
Setelah file di
atas dikompilasi dan diprogramkan ke mikrokontroler AT89C2051 maka perangkat
sudah dapat melaksanakan fungsinya. Penulis sudah mengkompilasi dan hasilnya
adalah 408 byte saja.
Desain rangkaian di
atas memang sederhana begitu pun dengan aplikasi program yang dibuat. Namun
meskipun sederhana yang penting hidup bisa lebih mudah, itu intinya. Bagaimanapun,
sebuah desain harus memiliki kegunaan untuk dapat diimplementasikan pada
kehidupan kita. Sesuai dengan tulisan pada paragraf awal, maka desain di atas
sudah aku implementasikan kebeberapa fungsi perangkat, antara lain:
- Remot lampu. Jika di antara sobat ada yang pernah bermain ke rumahku yang sederhana maka jangan pernah bertanya di mana letak sakelar lampu karena tidak ada. Bahkan sistem lampu di rumah menggunakan fasilitas pewaktu jadi urusan lampu hampir tidak pernah terpikirkan untuk menghidupkan atau mematikannya. Semua serba otomatis.
- Sakelar remot. Sobat bisa memanfaatkan rangkaian di atas sebagai pengganti perangkat apap pun yang menggunakan sakelar bukan saja untuk perangkat listrik di rumah bahkan juga untuk kendaraan.
- Implementasi lain silahkan Sobat cari. Pokoknya selama ada hal yang membutuhkan sakelar maka rangkaian kita bisa menggantikannya dan semua secara remot.
Udah ya, makasih
udah baca postingan aku. Semoga bisa bermanfaat dan jika mungkin bisa
diterapkan oleh sobat semua.
Salam....
untuk dana sendiri untuk alat ini menghabiskan berapa biaya . ?
BalasHapusthx atas postingannya.
Ada 2 perhitungan pembuatannya
BalasHapus1. Dgn modul yang ada dipasaran: kit MCS51 20 pin(100rb), IR receiver(35rb), relay dan transistor (6rb) serta remotnya (17rb) jadi total 148rb
2. Kalau bikin PCB sendiri ga sampai 100rb.