Arduino Arduino ile Uzaktan Kontrollü Tank By Konuk Yazar Posted on 29 Ocak 2018 5 min read 5 5 21,997 Paylaş ! Facebook Paylaş ! Twitter Paylaş ! Google+ Paylaş ! Reddit Paylaş ! Pinterest Paylaş ! Linkedin Paylaş ! Tumblr 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.