Arduino
OKUDUĞUNUZ KONU
Arduino ve NRF24L01 ile Uzaktan Kontrol Uygulaması
3

Arduino ve NRF24L01 ile Uzaktan Kontrol Uygulaması

Yazar : Utkan Subaşı6 Temmuz 2018

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

Bağlantılar ve Devre Şeması

nRF24L01  Arduino Uno
VCC 3.3 V
GND GND
CS 7
CE 8
MOSI 11
MISO 12
SCK 13

pot=A0 servo=9

Kütüphaneleri  buradan indirebilirsiniz.

Kodlar

Potansiyometreli kod (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);
}

Servo kodu (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]);
 
 }
 }
 }
SİZCE NASIL OLMUŞ?
Beğendim
80%
İlginç
10%
Eh İşte
5%
Anlamadım
5%
Kötü
0%
Berbat
0%
YAZAR HAKKINDA
Utkan Subaşı
Utkan Subaşı
Arduino'ya 11 yaşında başladım. Çok sevdim. Devam ettim. Tübitak Ortaokullar Arası Yapılan Yarışmada 3. Oldum. ARDUİNO'YA DEVAMM...
3 YORUMLAR

YORUM YAP