Arduino - Kablosuz İletişim
Kablosuz verici ve alıcı modülleri 315 Mhz'de çalışır. Bir devre tahtasına kolayca sığabilir ve çok basit bir kablosuz veri bağlantısı oluşturmak için mikrodenetleyicilerle iyi çalışabilirler. Bir çift verici ve alıcıyla, modüller yalnızca tek yönlü veri iletişimi için çalışır, ancak bir verici / alıcı çifti olarak hareket etmek için iki çifte (farklı frekanslarda) ihtiyacınız olacaktır.
Note- Bu modüller gelişigüzeldir ve makul miktarda gürültü alır. Hem verici hem de alıcı ortak frekanslarda çalışır ve kimlikleri yoktur.
Alıcı Modül Özellikleri
- Ürün Modeli - MX-05V
- Çalışma gerilimi - DC5V
- Sakin Akım - 4mA
- Alma frekansı - 315Mhz
- Alıcı hassasiyeti - -105DB
- Boyut - 30 * 14 * 7mm
Verici Modül Özellikleri
- Ürün Modeli - MX-FS-03V
- Başlatma mesafesi - 20-200 metre (farklı voltaj, farklı sonuçlar)
- Çalışma voltajı - 3.5-12V
- Boyutlar - 19 * 19mm
- Çalışma modu - AM
- Aktarım hızı - 4KB / S
- İletim gücü - 10mW
- İletim frekansı - 315Mhz
- Harici bir anten - 25 cm normal çok çekirdekli veya tek çekirdekli hat
- Soldan → sağdan pin çıkışı - (DATA; V CC ; GND)
Gerekli Bileşenler
Aşağıdaki bileşenlere ihtiyacınız olacak -
- 2 × Arduino UNO kartı
- 1 × Rf bağlantı vericisi
- 1 × Rf bağlantı alıcısı
Prosedür
Devre şemasını takip edin ve aşağıdaki resimde gösterildiği gibi bağlantıları yapın.
Eskiz
Bilgisayarınızda Arduino IDE yazılımını açın. Arduino dilinde kodlama devrenizi kontrol edecektir. Yeni'ye tıklayarak yeni bir çizim Dosyası açın.
Note- Tuş takımı kitaplığını Arduino kitaplık dosyanıza eklemelisiniz. VirtualWire.lib dosyasını, aşağıda verilen ekran görüntüsünde vurgulandığı gibi kütüphaneler klasörüne kopyalayıp yapıştırın.
Verici için Arduino Kodu
//simple Tx on pin D12
#include <VirtualWire.h>
char *controller;
void setup() {
pinMode(13,OUTPUT);
vw_set_ptt_inverted(true);
vw_set_tx_pin(12);
vw_setup(4000);// speed of data transfer Kbps
}
void loop() {
controller="1" ;
vw_send((uint8_t *)controller, strlen(controller));
vw_wait_tx(); // Wait until the whole message is gone
digitalWrite(13,1);
delay(2000);
controller="0" ;
vw_send((uint8_t *)controller, strlen(controller));
vw_wait_tx(); // Wait until the whole message is gone
digitalWrite(13,0);
delay(2000);
}
Dikkat Edilecek Kod
Bu basit bir koddur. İlk önce '1' karakterini gönderecek ve iki saniye sonra '0' karakterini gönderecektir vb.
Alıcı için Arduino Kodu
//simple Rx on pin D12
#include <VirtualWire.h>
void setup() {
vw_set_ptt_inverted(true); // Required for DR3100
vw_set_rx_pin(12);
vw_setup(4000); // Bits per sec
pinMode(5, OUTPUT);
vw_rx_start(); // Start the receiver PLL running
}
void loop() {
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message(buf, &buflen)) // Non-blocking {
if(buf[0]=='1') {
digitalWrite(5,1);
}
if(buf[0]=='0') {
digitalWrite(5,0);
}
}
}
Dikkat Edilecek Kod
Arduino kartında 5 numaralı pime bağlı olan LED, karakter '1' alındığında AÇIK hale gelir ve '0' karakteri alındığında KAPALI hale gelir.