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 ?