Ana Sayfa Arduino Arduino ile Uzaktan Kontrollü Tank

Arduino ile Uzaktan Kontrollü Tank

6 min read
3
4
18,540

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ı :

[php]
#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);
}
}
}

[/php]

Verici :

[php]
#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));
}
[/php]

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

  3. Ozan Gürlevik

    15 Aralık 2018 at 22:44

    Kusura Bakmayın da Arduino Kodlarınızda hata gösteriyor düzeltemiyorumda yardımcı olabilirmisiniz ??

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

    kısımlarında Hata Gösteriyor

    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…