Ana Sayfa Arduino Arduino ile Uzaktan Kontrollü Tank

Arduino ile Uzaktan Kontrollü Tank

5 min read
3
0
2,415

Merhaba Dostlar ;

Bu gün çok beğenerek yaptığım NRF24L01 ile kumanda ettiğim tankın yapımına değineceğim. Tankta kumanda için NRF24L01 in antenli modelini kullandık. 3 adet 18650 pili seri bağlayarak gayet güçlü bir araç yapmış olduk.

Kullanılan Malzemeler

-Tank Robot Şasesi
-Arduino Uno R3 + USB Kablo
-NRF24L01 Adaptör
-NRF24L01 Antenli Modül
-9V Pil Başlığı
-Breadboard
-Jumber Kablo
-18650 3.7v Li-Ion Pil + Şarjer
-18650 3.7v Pil Yuvası
-Joystick Modül

Video 

Kod ve Şema 

Alıcı :

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

#define CE_PIN   9
#define CSN_PIN 10
const uint64_t pipe = 0xE8E8F0F0E1LL;
RF24 radio(CE_PIN, CSN_PIN); 
int data[2];
const int Motor1_Ileri = 4;//Sağ Motor
const int Motor1_Geri = 2;
const int Motor1_PWM = 3;

const int Motor2_Ileri = 7;//Sol Motor
const int Motor2_Geri = 6;
const int Motor2_PWM = 5; 
void setup()   
{
   pinMode(Motor1_Ileri,OUTPUT);
  pinMode(Motor1_Geri,OUTPUT);
  pinMode(Motor1_PWM,OUTPUT);
  pinMode(Motor2_Ileri,OUTPUT);
  pinMode(Motor2_Geri,OUTPUT);
  pinMode(Motor2_PWM,OUTPUT);
  Serial.begin(9600);
  radio.begin();
  radio.openReadingPipe(1,pipe);
  radio.startListening();;
}


void loop() {
  if ( radio.available() ) //Eğer sinyal algılarsan...
  {
    int y = data[1];
    int x = data[0];
    radio.read( data, sizeof(data) ); 
    if(y >= 400 && y <= 600) {
     digitalWrite(Motor1_Ileri,LOW);
    digitalWrite(Motor1_Geri,LOW);
    analogWrite(Motor1_PWM,0);
    digitalWrite(Motor2_Ileri,LOW);
    digitalWrite(Motor2_Geri,LOW);
    analogWrite(Motor2_PWM,0);
    }
     if(y >= 800 && y <= 1023) {
     digitalWrite(Motor1_Ileri,LOW);
    digitalWrite(Motor1_Geri,HIGH);
    analogWrite(Motor1_PWM,255);
    digitalWrite(Motor2_Ileri,LOW);
    digitalWrite(Motor2_Geri,HIGH);
    analogWrite(Motor2_PWM,255);
    }
    if(y >= 0 && y <= 450) {
     digitalWrite(Motor1_Ileri,HIGH);
    digitalWrite(Motor1_Geri,LOW);
    analogWrite(Motor1_PWM,255);
    digitalWrite(Motor2_Ileri,HIGH);
    digitalWrite(Motor2_Geri,LOW);
    analogWrite(Motor2_PWM,255);
    }
    if(x >= 0 && x <= 450) {
     digitalWrite(Motor1_Ileri,LOW);
    digitalWrite(Motor1_Geri,HIGH);
    analogWrite(Motor1_PWM,255);
    digitalWrite(Motor2_Ileri,HIGH);
    digitalWrite(Motor2_Geri,LOW);
    analogWrite(Motor2_PWM,255);
    }
    if(x >= 600 && x <= 1023) {
     digitalWrite(Motor1_Ileri,HIGH);
    digitalWrite(Motor1_Geri,LOW);
    analogWrite(Motor1_PWM,255);
    digitalWrite(Motor2_Ileri,LOW);
    digitalWrite(Motor2_Geri,HIGH);
    analogWrite(Motor2_PWM,255);
    }
  }
}


Verici :

#include <SPI.h> 
#include <nRF24L01.h>
#include <RF24.h>


#define CE_PIN   7
#define CSN_PIN 8
#define x_axis A0 // x axis
#define y_axis A1 //y axis




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

void setup() 
{
  Serial.begin(9600);
  radio.begin();
  radio.openWritingPipe(pipe);
}

void loop()   
{

  data[0] = analogRead(x_axis);
  data[1] = analogRead(y_axis);
  radio.write( data, sizeof(data) ); 
 
//HATA AYIKLAMA (DEBUG)
  Serial.print(analogRead(x_axis));
  Serial.print(" ");
  Serial.print(analogRead(A1));
  Serial.print(" ");
  //Serial.print(digitalRead(BUTON));
}

Hepinize İyi Çalışmalar diliyorum.

Buna Benzer Yazılar Göster !
Daha Fazlasını Yükle - Muhammed Ali Özen
Daha Fazla Göster -  Arduino

3 Yorumlar

  1. Hüseyin ÖZTÜRK

    30 Ocak 2018 at 10:41

    Gerçekten iyi bir çalışma teşekkürler roboturka ailesi..

    Reply

  2. Hasan Hüseyin Güven

    15 Şubat 2018 at 22:02

    acaba tankı sizinki gibi nasıl bulabilirim 🙂

    Reply

Bir Cevap Yazın

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

Bak Bakalım ?

Arduino ile Çizgi İzleyen Robot Yapımı

Merhaba arkadaşlar, Bu yazımızda 4 kanallı çizgi izleme sensörü ile çizgi izleyen robot ya…