ASSALAMUALAIKUM WBT & SALAM SEJAHTERA.
Seperti yang janjikan pada post sebelum ini, saya akan menerangkan tentang cara mengawal output menggunakan kaedah wireless. Kali ini, saya memilih alat / komponen asas dalam telekomunikasi iaitu Radio Frequency.
433MHz RF Transmitter - Receiver |
Transmitter (Tx):
Voltan Kendalian : 3V hingga 12V (untuk kuasa maksimum, guna 12V)
Arus Kendalian: 9mA hingga 40mA
Mod Resonan: Surface Acoustic Wave
Mod Modulasi: Amplitude Shift Keying
Frekuensi Kendalian: 433MHz
Kuasa Penghantaran: 25mW (433MHz pada 12V)
Ralat Frekuensi: +150kHz (maksima)
Halaju Gelombang : kurang dari 10Kbps
Receiver (Rx):
Voltan Kendalian: 5.0VDC +0.5V
Arus Kendalian: maksima 5.5mA
Mod Nyahmodulasi: On Off Keying / Amplitude Shift Keying
Frekuensi Kendalian: 315MHz hingga 433.92MHz
Lebar jalur: 2MHz
Halaju Penghantaran: <9.6Kbps (pada 315MHz dan -95dBm)
Jika di lihat pada spesifikasi di atas, kita boleh membuat kesimpulan yang dengan menggunakan RF Tx-Rx ini, jarak maksimum antara Tx dengan Rx boleh dikawal sejauh 100 meter!! What??!! Ya. 100 meter. Jarak 100 meter hanya boleh dicapai jika tiada halangan seperti dinding, pokok atau bangunan. Atau dalam kata lain, KAWASAN TERBUKA ler.. Jika ada halangan antara Tx dan Rx, maka jarak maksima 100 meter tidak mampu dicapai.
Untuk projek kali ini, saya akan menggunakan 2 Arduino (satu untuk transmit data dan satu lagi untuk receiver) untuk menyalakan LED. Jika bahagian Rx menerima isyarat yang dihantar oleh Rx, LED pada pin 13 (onboard) akan berkelip - kelip mengikut isyarat yang diterima.
Ayuh!! kita mula berhuhu~ ~
Komponen yang diperlukan.
- Arduino UNO - 2 set
- 433MHz Transmitter - Receiver - 1 set
- Jumper Wire - sesedap rasa
- Breadboard
- 9V Bateri (Petak) - 2 biji
Skematik Sambungan Litar
Sambungan pada Tx |
Sambungan pada Rx |
Aturcara Arduino
Sebelum menulis aturcara, anda perlu memuat turun Arduino library yang membolehkan pengguna menghantar data ringkas tanpa melalui proses addressing, re-transmit dan juga acknowlegdement. Klik link dibawah dan paste folder VirtualWire ini ke dalam libraries Arduino.Virtual Wire Arduino
Aturcara pada Tx
#include <VirtualWire.h> char *controller; void setup() { pinMode(13,OUTPUT); vw_set_ptt_inverted(true); vw_set_tx_pin(12); vw_setup(4000); } void loop() { controller="1" ; vw_send((uint8_t *)controller, strlen(controller)); vw_wait_tx(); digitalWrite(13,1); delay(2000); controller="0" ; vw_send((uint8_t *)controller, strlen(controller)); vw_wait_tx(); digitalWrite(13,0); delay(2000); }
Aturcara pada Rx
#include <VirtualWire.h> void setup() { vw_set_ptt_inverted(true); vw_set_rx_pin(12); vw_setup(4000); pinMode(13, OUTPUT); vw_rx_start(); } void loop() { uint8_t buf[VW_MAX_MESSAGE_LEN]; uint8_t buflen = VW_MAX_MESSAGE_LEN; if (vw_get_message(buf, &buflen)){ if(buf[0]=='1'){ digitalWrite(13,1); } if(buf[0]=='0'){ digitalWrite(13,0); } } }