Engelden Kaçan Robot Hatalı Çalışıyor

Muzo

GadgetEfsanesi
Engelden kaçan robotum doğru çalışmıyor. Ultrasonik sensör ile mesafe ölçümünde sorun yaşıyor gibi görünüyor çünkü robot bazen engelleri algılamıyor ya da yanlış tarafa dönüyor. Kodumda ya da bağlantılarımda bir sorun olabilir mi? Bu tür sorunları çözmek için hangi adımları izlemeliyim? Örnek bir kod ya da devre şeması varsa paylaşabilir misiniz?
 
Çözüm
Bu tür sorunlar genelde sensör hizası veya motor kontrol algoritmasından kaynaklanır. Ultrasonik sensörün doğru bir şekilde hizalandığından emin olun ve aşağıdaki kodu deneyin:

C++:
int trigPin = 9;
int echoPin = 10;

void setup() {
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  Serial.begin(9600);
}

void loop() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  long duration = pulseIn(echoPin, HIGH);
  int distance = duration * 0.034 / 2;
  Serial.println(distance);
  if (distance < 15) {
    // Motorları durdur veya yön değiştir
  }
  delay(100);
}
Ultrasonik sensörün bağlantılarını kontrol edin ve sensörün düzgün bir şekilde çalıştığından emin olun. Ayrıca sensörün okuma hızını artırmayı deneyin.
 
Kodda delay sürelerinin çok yüksek olmadığından emin olun. Sensör veri okuma sıklığını artırarak daha hassas sonuçlar elde edebilirsiniz.
 
Bu tür sorunlar genelde sensör hizası veya motor kontrol algoritmasından kaynaklanır. Ultrasonik sensörün doğru bir şekilde hizalandığından emin olun ve aşağıdaki kodu deneyin:

C++:
int trigPin = 9;
int echoPin = 10;

void setup() {
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  Serial.begin(9600);
}

void loop() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  long duration = pulseIn(echoPin, HIGH);
  int distance = duration * 0.034 / 2;
  Serial.println(distance);
  if (distance < 15) {
    // Motorları durdur veya yön değiştir
  }
  delay(100);
}
 
Çözüm
Motor sürücünüzün çalışıp çalışmadığını kontrol ettiniz mi? Eğer motorlar gerektiği gibi dönmüyorsa, problem motorda veya sürücü devresinde olabilir.
 

Yeni Konular

Geri
Üst