Nrf24l01 modülü piyasada rahatlıkla bulabileceğiniz , aynı
anda çift yönlü olarak haberleştirebileceğiniz ,gerek haberleşme hızı gerekse
fiyatı yüzünden benim gibi öğrencilerin ilk tercihidir J
|  | 
| Arduino uno joystick bağlantıları "alinti çizim" | 
Bu yapmış olduğum uygulamayı adım adım anlatmam gerekirse ;
Arduino RF24 kütüphanesini buradan indirebilisiniz.
. Röle ile dc motor kontrolü
.Arduino ile joystick kullanımı
. Arduino ile nrf24l01 haberleşmesi
Röle ile dc motor kontrolünü daha önceki dersimizde anlatmıştık
, arduino ile joystick kullanımında dikkat etmemiz gerekenler ise joystick in
verdiği değerlerdir bu yüzden elinize bir kalem kağıt alarak y ekseninde
yönünde en yukarıda ve en aşağıda verdiği değerler ,  x ekseninde ise en sağda ve en solda verdiği
değerleri not alınız. 
Bağlantı şemaları aşağıdadır.
(Ufak bir hatırlatma , ben alıcı kısmında mega kullandığım için kodlarda ona göredir. Arduino uno kullanıcaksanız pin numaralarını değiştiriniz. )
|  | 
| Arduino mega nrf24l01 bağlantıları "alıntı çizim" | 
Robotun Alıcı Kodları :
#include <SPI.h>
#include "RF24.h"
 int msg[1];
 RF24 radio(6,7);
 const uint64_t pipe =
0xE8E8F0F0E1LL;
 int sagi=22;                                                    
// MOTOR PİNLERİ
 int sagg=24; 
 int solg=26;
 int soli=28;
void setup()
    {
   Serial.begin(9600);
   radio.begin();
  
radio.openReadingPipe(1,pipe);
  
radio.startListening();
   pinMode(sagi,
OUTPUT);
   pinMode(sagg,
OUTPUT);
   pinMode(solg,
OUTPUT);
   pinMode(soli,
OUTPUT);
   }
  void loop()
{
 if
(radio.available())
 {
   bool done =
false;    
   while (!done)
 {
     done =
radio.read(msg, 1);      
    
Serial.println(msg[0]);
   
/////////////////////////////////////////////////////başlangıç//////////////////////////////////////////////
     if (msg[0] ==
100)
 {
          
ileri();   
 }
      if (msg[0] ==
101)
 {
            dur();
 }
      if (msg[0] ==
102)
 {
             sol();
 }
      if (msg[0] ==
103)
 {
             sag();
 }
      if (msg[0] ==
104)
 {
             geri();
 }
  }
 }}
 // robotun yön
komutları
void ileri()
{
digitalWrite(solg, LOW);
digitalWrite(soli, HIGH);
digitalWrite(sagg, LOW);
digitalWrite(sagi, HIGH);
}
void geri()
{
digitalWrite(solg, HIGH);
digitalWrite(soli, LOW);
digitalWrite(sagg, HIGH);
digitalWrite(sagi, LOW);
}
 void sol()
{
digitalWrite(soli, LOW);
digitalWrite(solg, HIGH);
digitalWrite(sagg, LOW);
digitalWrite(sagi, HIGH);
 }
 void sag()
{
digitalWrite(solg, LOW);
digitalWrite(soli, HIGH);
digitalWrite(sagg, HIGH);
digitalWrite(sagi, LOW);
}
 void dur()
{
digitalWrite(solg, LOW);
digitalWrite(soli, LOW);
digitalWrite(sagg, LOW);
digitalWrite(sagi, LOW);
}
Robotun Verici Kodları :
#include <SPI.h>
#include "RF24.h"
#define X_AXIS   
0  // ARACIN KONTROLÜ 
#define Y_AXIS   
1  // ARACIN KONTROLÜ 
int mesaj[1];
RF24 radio(6,7);  //
arducom bağlantıları
const uint64_t pipe = 0xE8E8F0F0E1LL;  // paralel veri yolu adresleri
int  Xdeger; 
int  Ydeger;
void setup(void)
{
 Serial.begin(9600);
// seri ha
 radio.begin();   // rf24 haberleşmesi baş. 
 radio.openWritingPipe(pipe);
}
void loop(void)
{
  Xdeger = analogRead
(X_AXIS); 
 // Serial.print
(Xdeger );
  Ydeger = analogRead
(Y_AXIS);
 // Serial.print
(Ydeger);
 if(Ydeger>900)                                                               
   //  İLERİ 
 {
  mesaj[0] = 100;
  radio.write(mesaj,
1);
 }
 if(Ydeger>490
&& Ydeger <=510 && Xdeger>=520 &&
Xdeger<=540)                   
//DURDUR
 {
 mesaj[0] = 101;
 radio.write(mesaj,
1);
 }
   if(Xdeger>=0
&& Xdeger<30 && Ydeger>430 && Ydeger <=600
)                      //  sola dönme 
 {
  mesaj[0] = 102;
  radio.write(mesaj,
1);
 }
   if(Xdeger>=990
&&  Ydeger>430 &&
Ydeger <=600 )                     
//  sağa  dönme 
 {
  mesaj[0] = 103;
  radio.write(mesaj,
1);
 }
  if(Ydeger>=0
&& Ydeger<=200)                                                                  
//  geri
 {
  mesaj[0] = 104;
  radio.write(mesaj,
1);
 }
 }
 
Teşekkürler Furkan, aktardıgın bilgiler çok yararlı oldu
YanıtlaSil
YanıtlaSilArduino:1.6.11 (Windows 10), Kart:"Arduino Nano, ATmega328"
C:\Users\Dj\Desktop\Pictures\BAÅ?ARISIZLIK\eksik joystick\joystick_alici\joystick_alici.ino: In function 'void loop()':
joystick_alici:39: error: 'ileri' was not declared in this scope
joystick_alici:44: error: 'dur' was not declared in this scope
joystick_alici:49: error: 'sol' was not declared in this scope
joystick_alici:54: error: 'sag' was not declared in this scope
joystick_alici:59: error: 'geri' was not declared in this scope
exit status 1
'ileri' was not declared in this scope
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
BU HATA MESAJINI VERİYOR NEYAPMALIYIM ?