Her sürücü için bir pwm çıkışı yeterli. Sadece
yön seçmek için ayrıca iki pin gerekli.
Pwm çıkışlarınıda sağda sağı solda solu kullandımsadece . koduda bu şekilde yeniledim ama gene çalışmadı. pinlere gelen 5v değerleride ölçtüm sorum yok.
// Motor 1 için pin tanımlamaları
const int motor1EN = 3; // Motor 1 için hız kontrol pini (PWM)
const int motor1IN1 = 4; // Motor 1 için yön kontrol pini 1
const int motor1IN2 = 5; // Motor 1 için yön kontrol pini 2
// Motor 2 için pin tanımlamaları
const int motor2EN = 6; // Motor 2 için hız kontrol pini (PWM)
const int motor2IN1 = 7; // Motor 2 için yön kontrol pini 1
const int motor2IN2 = 8; // Motor 2 için yön kontrol pini 2
// Flysky FS-İA10B
const int receiverPin = 9; //
void setup() {
// Motor pinleri çıkış olarak ayarlanır
pinMode(motor1EN, OUTPUT);
pinMode(motor1IN1, OUTPUT);
pinMode(motor1IN2, OUTPUT);
pinMode(motor2EN, OUTPUT);
pinMode(motor2IN1, OUTPUT);
pinMode(motor2IN2, OUTPUT);
// Alıcı pinini giriş olarak ayarla
pinMode(receiverPin, INPUT);
}
void loop() {
// Alıcıdan veri okuma
int receiverValue = pulseIn(receiverPin, HIGH); // PWM sinyalini oku
// PWM sinyali değerlerine göre motor hızlarını ayarla
int motorSpeed1 = map(receiverValue, 1000, 2000, 0, 255); //
int motorSpeed2 = map(receiverValue, 1000, 2000, 0, 255); //
// Alıcıdan gelen sinyale göre motor yönlerini belirle
if (receiverValue < 1500) {
// Alıcı sinyali 1500 mikrosaniyeden küçükse, motorlar geriye döner
digitalWrite(motor1IN1, LOW);
digitalWrite(motor1IN2, HIGH);
digitalWrite(motor2IN1, LOW);
digitalWrite(motor2IN2, HIGH);
} else if (receiverValue > 1500) {
// Alıcı sinyali 1500 mikrosaniyeden büyükse, motorlar ileriye döner
digitalWrite(motor1IN1, HIGH);
digitalWrite(motor1IN2, LOW);
digitalWrite(motor2IN1, HIGH);
digitalWrite(motor2IN2, LOW);
} else {
// Alıcı sinyali 1500 mikrosaniyeye eşitse, motorlar durur
digitalWrite(motor1IN1, LOW);
digitalWrite(motor1IN2, LOW);
digitalWrite(motor2IN1, LOW);
digitalWrite(motor2IN2, LOW);
}
// Motor hızlarını ayarla
analogWrite(motor1EN, motorSpeed1); // Motor 1'in hızını ayarla
analogWrite(motor2EN, motorSpeed2); // Motor 2'nin hızını ayarla
}