Kaydol
Giriş Yap
Parolanızı mı unuttunuz

Şifreni mi unuttun? Lütfen e-mail adresinizi giriniz. Bir bağlantı alacaksınız ve e-posta yoluyla yeni bir şifre oluşturacaksınız.

Üzgünüz, gönderi ekleme izniniz yok.

Arduino ile Nrf24l01 Kullanarak Joystick ile Servo Kontrolü


Merhaba arkadaşlar arduino ile projelerde olabildiğince hızlı ilerlemeye çalışıyoruz… Bugün ki konumuz Arduino ile Nrf24l01 kullanarak Joystick ile servo motor kontrolü nasıl yapılır bunu öğreneceğiz 🙂

Bu proje ile rc araç yada robot kol yapımına bir adım daha yaklaştık arkadaşlar. 🙂

yapay zeka destekli haber sitesi

Çalışma mantığı basit Joystickten aldığımız analog değerleri Nrf24l01 aracılığıyla servonun bağlı olduğu arduinoya göndererek direkt servo motora yazdırıyoruz. 🙂

Kısa bilgilendirmenin ardından isterseniz zaman kaybetmeden yazımıza geçelim 🙂

Her şeyden önce bir kaç malzeme lazım bunlar;

Malzeme Listesi

1- Herhangi bir Arduino Modeli 2 Adet

2- Nr24l01 Modül 2 Adet

3- Joystick Modülü

4- Servo Motor

5- Breadboard ve Jumper Kablolar

Not: Tüm bu malzemeleri elektronik parça satan yerlerde bulabilirsiniz yada şu ve bu adreslerden internet üzerinden güvenle sipariş edebilirsiniz 

Ayrıca eğer zamanım bol diyorsanız Çin’den de Aliexpress vasıtasıyla getirtebilirsiniz. Daha uygun fiyata gelecektir. 🙂

Devre Şeması

Alt tarafta çizdiğimiz devre şemasına bakarak uygun arduino modeline göre devremizi breadboard’umuza kuralım.

Alıcı Devresi

Ben bu projede tek servo motor kontrolünü sağladım ancak siz isterseniz bu sayıyı yazılımda yapacağınız basit değişikliklerle çok kolay bir şekilde artıra bilirsiniz. 🙂

Verici Devresi

Dikkat: Bütün bağlantıları yapıp arduino kodlarını da yükledikten sonra modüller arasında iletişim sağlanmaz ise her iki modülün de VCC ve GND pinleri arasına 10 uF değerinde kondansatör yerleştirerek tekrar deneyiniz.  Yada daha önceki yazımda anlattığım gibi adaptör alınız

Yazılım

Bu modülle çalışabilmek için bir kütüphaneye ihtiyaç duyuyoruz öncelikle kütüphanemizi aşağıdan indirip aşağıda belirtilen yoldaki klasöre rar dosyasından dan çıkarıp atın.

Rar Şifresi: donanimplus.com

Belgeler >  Arduino > libraries

Bu projede 2 farklı kod kullanacağız biri alıcı haliyle biride verici

Verici Kodu

//DONAIM PLUS ELEKTRONİK
// MODİFİKASYON TOLGA SOYTEPE
// İNSTAGRAM TOLGASYTP
// TWİTTER TSytpp
// Arduino, Nrf24l01 ile uzaktan joystick ile servo kontrolü
// 2019
// VERİCİ YAZILIMI
#include <SPI.h> 
#include <nRF24L01.h>
#include <RF24.h>

//Pins....
#define CE_PIN   9
#define CSN_PIN 10
#define JOYSTICKX A0 
#define JOYSTICKY A1 
#define BUTTON 8 


const uint64_t pipe = 0xE8E8F0F0E1LL;  
RF24 radio(CE_PIN, CSN_PIN); 
int joystick[3]; 

void setup() 
{
 
  radio.begin();
  radio.openWritingPipe(pipe);
  pinMode(BUTTON, INPUT);
}

void loop()   
{

  joystick[0] = analogRead(JOYSTICKX);
  joystick[1] = analogRead(JOYSTICKY);
  joystick[2] = digitalRead(BUTTON);
  radio.write( joystick, sizeof(joystick) ); 
}

Kodu aşağıdan indirebilirsiniz 🙂

Alıcı Kodu

//DONAIM PLUS ELEKTRONİK
// MODİFİKASYON TOLGA SOYTEPE
// İNSTAGRAM TOLGASYTP
// TWİTTER TSytpp
// Arduino, Nrf24l01 ile uzaktan joystick ile servo kontrolü
// 2019
// ALICI YAZILIMI
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include<Servo.h>
Servo servo; 
#define CE_PIN   9 
#define CSN_PIN 10
#define led 4
const uint64_t pipe = 0xE8E8F0F0E1LL;
RF24 radio(CE_PIN, CSN_PIN);
int joystickData[3];
void setup() {
  pinMode(4, OUTPUT);
  radio.begin(); 
  radio.openReadingPipe(1, pipe);
  radio.startListening();;
  servo.attach(6);  
  Serial.begin(9600);
}

void loop() {

  if ( radio.available() )
  {
    radio.read( joystickData, sizeof(joystickData) ); 

    int  xpos = joystickData[1];  
    int button = joystickData[2];
    int xpos1 = map(xpos, 0, 1023, 0, 180);
    bool done = false;  
    while (!done) { 
      done = radio.read(joystickData, 1);
      servo.write (xpos1);
      delay(10);
    }
    if (button == 0) { //led
      digitalWrite(4, HIGH);

    }
    else {
      digitalWrite(4, LOW);
    }
  }
}

Kodu aşağıdan indirebilirsiniz 🙂

Bir yazının daha sonuna geldik umarım faydalı olmuştur arkadaşlar anlamadığınız yada kafanıza takılan yerler olursa lütfen yorumda yada kişisel sosyal medya hesaplarımdan ulaşmayı ihmal etmeyin.. Kolay Gelsin.. 🙂

2 Yorum

  1. Alıcı kod da hata var.
    C:\Users\tsivm\Downloads\Arduino_ile_Nrf24l01_Joystick_ile_Servo_Kontrol__al_c_\Arduino_ile_Nrf24l01_Joystick_ile_Servo_Kontrol__al_c_.ino: In function ‘void loop()’:
    C:\Users\tsivm\Downloads\Arduino_ile_Nrf24l01_Joystick_ile_Servo_Kontrol__al_c_\Arduino_ile_Nrf24l01_Joystick_ile_Servo_Kontrol__al_c_.ino:39:39: error: void value not ignored as it ought to be
    done = radio.read(joystickData,1);
    ^

    exit status 1

    Compilation error: void value not ignored as it ought to be

Yorum Yap

İlginizi Çekebilecek Diğer Yazılar