El ile uzaktan kontrollü araç yapıyorum. Ancak tüm bağlantıları kontrol ettiğimi düşünüyorum buna rağmen aracımda sadece sağ teker çalışıyor ve terse dönüyor. Neleri kontrol etmem gerekiyor
Merhaba. Kodlar, şemaları atabilir misiniz veya neyden kaynak alarak yaptınız? Motorları ne ile besliyorsunuz?
Olur hemen atarım. Hem bu sitenin yaptığı video hem de diğer videolardan yararlandım. L298N motor sürücü kullanıyorum.
El ile kontrol için burada gördüğünüz kodu kullanacağım.(Verici)
#include <SPI.h>
#include <RF24.h>
#include <Wire.h>
#include <MPU6050.h> //Mpu6050 kütüphanesi
MPU6050 ivme_sensor;
int x, y, z; //ivme tanımlama
RF24 radio(7, 8); // CE, CSN
int data[2]; // X ve Y düzlemi için dizi tanımlama
void setup()
{
Wire.begin();
ivme_sensor.initialize();
radio.begin();
radio.openWritingPipe(1234);
}
void loop()
{
ivme_sensor.getAcceleration(&x, &y, &z); // ivme ve gyro değerlerini okuma
data[0] = map(x, -17000, 17000, -255, 255 ); //X düzleminin verisi (ileri-geri)
data[1] = map(y, -17000, 17000, -255, 255); //Y düzeleminin verisi (sağ-sol)
radio.write(data, sizeof(data));
}
Alıcı için bu kodu kullanacağım.(Araçta)
#include <SPI.h>
#include <RF24.h>
RF24 radio(7, 8); // CE, CSN
int data[2];// X ve Y düzlemi için dizi tanımlama
int in1 = 5;
int in2 = 6;
int in3 = 9;
int in4 = 10;
void setup() {
radio.begin();
radio.openReadingPipe(1,1234);
radio.startListening();
}
void loop() {
if (radio.available()) {
radio.read(data, sizeof(data));
if(data[0] > 50)//ileri
{
analogWrite(in1,data[0]);
analogWrite(in2,0);
analogWrite(in3,data[0]);
analogWrite(in4,0);
}
if(data[0] < -50)//geri
{
analogWrite(in1,0);
analogWrite(in2,-data[0]);
analogWrite(in3,0);
analogWrite(in4,-data[0]);
}
if(data[1] > 50)//sol
{
analogWrite(in1,0);
analogWrite(in2,data[1]);
analogWrite(in3,data[1]);
analogWrite(in4,0);
}
if(data[1] < -50)//sag
{
analogWrite(in1,-data[1]);
analogWrite(in2,0);
analogWrite(in3,0);
analogWrite(in4,-data[1]);
}
if(data[0] > -50 && data[0] < 50 && data[1] > -50 && data[1] < 50)//dur
{
analogWrite(in1,0);
analogWrite(in2,0);
analogWrite(in3,0);
analogWrite(in4,0);
}
}
}
.