Bağlantılardan hiç bir şey anlamadım. Foto zaten anlasilmiyor. Yakından atar misn?
Kod:#define enA 10 // Motor A hız kontrol pini
#define enB 5 // Motor B hız kontrol pini
#define in1 9 // Motor A yön kontrol pini 1
#define in2 8 // Motor A yön kontrol pini 2
#define in3 7 // Motor B yön kontrol pini 1
#define in4 6 // Motor B yön kontrol pini 2
#define trigPin 11 // Mesafe sensörünün trig pini
#define echoPin 12 // Mesafe sensörünün eko pini
long duration; // Süre
int distance; // Mesafe
int obstacleCount = 0; // Engel sayısını takip etmek için
void setup() {
// Motor pinlerini çıkış olarak ayarlayın
pinMode(enA, OUTPUT);10
;pinMode(enB, OUTPUT);5
;pinMode(in1, OUTPUT);9
;pinMode(in2, OUTPUT);8
;pinMode(in3, OUTPUT);7
;pinMode(in4, OUTPUT);6
// Mesafe sensörü pinlerini ayarlayın
;pinMode(trigPin, OUTPUT);11
;pinMode(echoPin, INPUT);12
;Serial.begin(9600); // Seri iletişim başlat
}
void loop() {
// Mesafe ölçümü yap
measureDistance();
// Mesafe güvenli mi kontrol et
if (distance < 20) { // Mesafe 20 cm’den az ise
obstacleCount++; // Engel sayısını artır
makeTurn(); // Dönüş yap
} else {
obstacleCount = 0; // Engel yoksa sayacı sıfırla
moveForward(); // İleri git
}
// Engel sayısı 30’a ulaştıysa durdur
if (obstacleCount >= 30) {
stopMotors(); // Motorları durdur
while (distance < 20) {
measureDistance(); // Güvenli mesafe sağlanana kadar mesafe ölç
}
}
}
// Mesafeyi ölçen fonksiyon
void measureDistance() {
digitalWrite(trigPin, LOW);11
;delayMicroseconds(2);
digitalWrite(trigPin, HIGH);11
;delayMicroseconds(10);
digitalWrite(trigPin, LOW);11
;duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2; // cm cinsinden mesafe
Serial.print("Mesafe: ");
Serial.println(distance);
}
// İleri hareket eden fonksiyon (motor yönü ters)
void moveForward() {
digitalWrite(in1, LOW);9
;digitalWrite(in2, HIGH);8 // Motor A’yı geriye hareket ettir
;digitalWrite(in3, LOW);7
;digitalWrite(in4, HIGH);6 // Motor B’yi geriye hareket ettir
;analogWrite(enA, 250);10 // Hız ayarı
;analogWrite(enB, 250);5
;}
// Dönüş yapan fonksiyon
void makeTurn() {
digitalWrite(in1, LOW);9
;digitalWrite(in2, HIGH);8 // Motor A’yı geriye hareket ettir
;digitalWrite(in3, HIGH);7
;digitalWrite(in4, LOW);6 // Motor B’yi ileri hareket ettir
;analogWrite(enA, 150);10 // Dönüş hızı ayarı
;analogWrite(enB, 150);5
;delay(300); // Kısa bir süre döner
}
// Motorları durduran fonksiyon
void stopMotors() {
digitalWrite(in1, LOW);9
;digitalWrite(in2, LOW);8
;digitalWrite(in3, LOW);7
;digitalWrite(in4, LOW);6
;}
Ya hocam bütün bağlantıların nereye gitti göründüğü bir foto atar misiniz
Motorlar çalıştıda uygun kod bulamadım kod önerisi verebilirmisin