Projelerimiz

Arduino ve NRF24L01 ile Uzaktan Kontrol Uygulaması

Merhaba.Bu gün kablosuz haberleşmede sıkça kullanılan modüllerden NRF24L01 RF modülünün kullanımı hakkında bahsedeceğim.Bu modülün kullanımı kolay ve menzili (1km) gayet iyi olduğundan projelerinizde rahatlıkla kullanabilirsiniz.Ayrıca fiyatı da gayet uygundur.Düşük güç tüketimi ayrıca 2.4GHz frekans da çalışması bize kolaylık ve kullanış sağlamaktadır.

Arduino ile ilgilenmeye başlayan neredeyse herkes, bir döneminde uzaktan kontrollü araba, uzaktan kontrollü bot veya menzili yüksek olan bir quadrocopter yapmak istemiştir. Bu makalemizde yüksek menzilli uzaktan kontrollü projeler yapmak isteyen arkadaşlar için servoya  uzak olan potansiyometre ile servoyu nasıl kontrol edebileceğimizi  anlatacağım.

Yani bu makalede iki Arduino’yu NRF24L01 modülü aracılığı ile haberleştireceğiz ve bahsettiğim gibi potansiyometre ile servoyu uzaktan kontrol edeceğiz. Bizim yaptığımız işin basit kısmı fakat RC Car yaparsanız yine aynı mantıkta kalacaksınız ve potansiyometre joystick, servo ise dc motor olacak. Biz burada sadece bir Arduino’dan diğerine veri yollamayı anlatacağız. Veriyi aldıktan sonra işlemek size kalmış.

İki Arduino’yu kablosuz haberleştirmenin bir çok yolu var. Bunlar, gerçekten çok uzak mesafede haberleşebilen fakat fiyatı biraz yüksek olan X-bee modülleri, fiyatları daha da pahalı olan GPS veya GSM modülleri olabilir. Ancak  bence bu projede kalite, para ve kullanım olarak güncel zamanlarda çıkmış  ve kısa sürede internet üzerinde birçok proje ve alışverişi olan NRF24L01 isimli kablosuz modülü kullanacağım.

  • NRF24L01 2.4GHz Transceiver Modül
  • Modülün değişik (harici ve pcb) ve de (harici )antenli versiyonu bulunmaktadır.Pcb olanlarda menzil  250 m  ,harici  modelinde ise menzil 1000 m’ye  kadar  çıkabiliyor.
  • Modülü alıcı ve verici olarak kullanabilirsiniz.
  • Ben projemde 1000 m menzili olan harici antenli Radyo Frekans modülünü kullandım.
  • Siz isterseniz 250 m menzilli pcb versiyonunu da tercih edebilirsiniz.

KULLANILACAK MALZEMELER

  • 2 ADET NRF24L01
  • JUMPER KABLO
  • 2 ADET KONDANSATÖR (HER İKİ BACAĞINDA V+ PİNİ İLE(BİRLEŞİK) 3V3’E)
  • 2 ADET ARDUİNO UNO
  • 1 ADET SERVO
  • 1 ADET POTANSİYOMETRE

nRF24L01 Arduino Uno
VCC3.3 V
GNDGND
CS7
CE8
MOSI11
MISO12
SCK13

pot=A0 servo=9

Kütüphaneleri  buradan indirebilirsiniz.

Kodlar

Verici Kodu

#include <SPI.h>
#include "RF24.h"
int msg[1];
//SCK -> 13//MISO -> 12//MOSI -> 11//CSN -> 7//CE -> 8
RF24 radio(8,7);
const uint64_t pipe = 0xE8E8F0F0E1LL;
int potpin = 0;
int val;
void setup(void){
 radio.begin();
 radio.openWritingPipe(pipe);
}
void loop(void){
 val = analogRead(potpin);
 val = map(val, 0, 1023, 0, 179);
 msg[0] = val;
 radio.write(msg, 1);
}

Alıcı Kodu

#include <Servo.h>
 #include <SPI.h>
 #include "RF24.h"
 Servo myservo;
 //SCK -> 13//MISO -> 12//MOSI -> 11//CSN -> 7//CE -> 8
RF24 radio(8,7);
 const uint64_t pipe = 0xE8E8F0F0E1LL;
 int msg[1];
 void setup()
 {
 myservo.attach(9);
 radio.begin();
 radio.openReadingPipe(1,pipe);
 radio.startListening();
 }
 void loop()
 {
 if (radio.available()){
 bool done = false;
 while (!done){
 done = radio.read(msg, 1);
 myservo.write (msg[0]);
  
 }
 }
 }

İlgili Mesajlar

Bir düşünce “Arduino ve NRF24L01 ile Uzaktan Kontrol Uygulaması” ;

  1. Ertuğrul dedi ki:

    done = radio.read(msg, 1);

    hata veriyor

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir