Bu dersimizde nRF24L01 Kablosuz iletişim modülü ve arduino kullanarak uzakta bulunan bir lambayı arada kablo bağlantısı olmadan yakıp söndürmeyi öğreneceğiz.
Devremizin verici kısmında 2 adet buton var. Birinci butona basılınca alıcı devredeki lamba ikinci butona basılana dek yanacak.
İkinci butona basıldığında ise alıcı kısımdaki lamba birinci butona basılana dek sönecektir.
Devremiz alıcı ve verici kısım olmak üzere 2 kısımdan oluşmaktadır. Her iki devrede de birer arduino ve nRF24L01 kablosuz iletişim modülü bulunmaktadır.
Wireless NRF24L01 2.4GHz Transceiver Modül - 2.4GHz Alıcı Verici Modül
Nordic firmasınca geliştirilen NRF24L01 kablosuz modül, 2.4GHz frekansında kablosuz haberleşme yapmanıza imkan sağlayan düşük güç tüketimine sahip modüldür.
Çeşitli hobi, robotik ve endüstriyel projelerde sıklıkla kullanılabilecek 2MBps haberleşme hızına sahip olup, SPI arabirimini destekler.
Özellikleri:
2.4GHz bandında yayın yapabilir.
250KBps, 1MBps ve 2MBps gibi hızlarda haberleşme hızı seçilebilir.
Gelişmiş ShockBurst™ hızlandırma protokolünü desteklemektedir.
Ultra düşük güç tüketimi
Çalışma Voltajı: 1.9-3.6V
IO Portları Çalışma Voltajı:0-3.3V/5V
Verici Sinyal Gücü: +7 dB
Alıcı Hassasiyeti ≤ 90dB
Haberleşme Mesafesi: Açık Alanda 250m
Boyutları: 15x29mm
Devre şeması:
Verici devre kodları:
Alıcı devre kodları:
Devremizin verici kısmında 2 adet buton var. Birinci butona basılınca alıcı devredeki lamba ikinci butona basılana dek yanacak.
İkinci butona basıldığında ise alıcı kısımdaki lamba birinci butona basılana dek sönecektir.
Devremiz alıcı ve verici kısım olmak üzere 2 kısımdan oluşmaktadır. Her iki devrede de birer arduino ve nRF24L01 kablosuz iletişim modülü bulunmaktadır.
Wireless NRF24L01 2.4GHz Transceiver Modül - 2.4GHz Alıcı Verici Modül
Nordic firmasınca geliştirilen NRF24L01 kablosuz modül, 2.4GHz frekansında kablosuz haberleşme yapmanıza imkan sağlayan düşük güç tüketimine sahip modüldür.
Çeşitli hobi, robotik ve endüstriyel projelerde sıklıkla kullanılabilecek 2MBps haberleşme hızına sahip olup, SPI arabirimini destekler.
Özellikleri:
2.4GHz bandında yayın yapabilir.
250KBps, 1MBps ve 2MBps gibi hızlarda haberleşme hızı seçilebilir.
Gelişmiş ShockBurst™ hızlandırma protokolünü desteklemektedir.
Ultra düşük güç tüketimi
Çalışma Voltajı: 1.9-3.6V
IO Portları Çalışma Voltajı:0-3.3V/5V
Verici Sinyal Gücü: +7 dB
Alıcı Hassasiyeti ≤ 90dB
Haberleşme Mesafesi: Açık Alanda 250m
Boyutları: 15x29mm
Devre şeması:
Verici devre kodları:
Kod:
#include <SPI.h> // SPI Arayüzünü dahil ettik.
#include "nRF24L01.h" // RF24 kütüpanelerini dahil ettik.
#include "RF24.h" // RF24 kütüpanelerini dahil ettik.
int bilgi[1]; //Göndereceğimiz mesaj değişkenini oluşturduk.
RF24 radio(9,10); //RF24 kütüphanesi tarafından kullanılacak olan 2 pinin 9. ve 10. pinlerin olduğunu belirttik.
const uint64_t pipe = 0xE8E8F0F0E1LL; // Pipe (kanal) tanımlamasını yaptık.
int buton=3; // butonun bağlı olduğu pin
int buton2=4; // butonun bağlı olduğu pin
void setup()
{
radio.begin(); // Kablosuz iletişimi başlattık.
radio.openWritingPipe(pipe); // Gönderim yapacağımız kanalın ID'sini tanımladık.
pinMode(buton, INPUT);
pinMode(buton2, INPUT);
}
void loop()
{
if (digitalRead(buton) == HIGH)
{
bilgi[0] = 111; // bilgi değişkenine "1" yazılsın
radio.write(bilgi, 1); //Sonra da bu bilgi gönderilsin.
}
if (digitalRead(buton2) == HIGH)
{
bilgi[0] = 000; // bilgi değişkenine "0" yazılsın
radio.write(bilgi, 1); //Sonra da bu bilgi gönderilsin.
}
}
Alıcı devre kodları:
Kod:
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
int bilgi[1];
RF24 radio(9,10);
const uint64_t pipe = 0xE8E8F0F0E1LL;
int lamba = 3;
void setup()
{
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(1,pipe);
radio.startListening();
pinMode(lamba, OUTPUT);
}
void loop()
{
if (radio.available())
{
bool done = false;
done = radio.read(bilgi, 1);
if (bilgi[0] == 111)
{
digitalWrite(lamba, HIGH);
}
if (bilgi[0] == 000)
{
digitalWrite(lamba, LOW);
}
}
}