emrestro
Üye
- Katılım
- 29 Tem 2019
- Mesajlar
- 2
- Puanları
- 1
- Yaş
- 28
Merhaba arkadaşlar, bir problemle karşılaştım fakat ne olduğunu bir türlü bulamıyorum. Daha önceden yazdığım ve çalışan bir engelden kaçma kodu var. Çizgi izleme ile birleştirmek için tekrar açıp bakmam gerekti koda, denemek için arduinoya yüklediğimde tek motoru döndürdüğünü fark ettim. Pinlerinde veya motorlarda bir sıkıntı olup olmadığına bakmak için basit bi motor kodu yazdım ve 2 motor da dönüyor, hızları da ayarlanıyor. Ama engelden kaçma kodunu yükleyince yine 1 motor dönüyor diğer motor duruyor. Pinlerde çakışma mı var diye baktım fakat herhangi bi çakışma da yok.
Bu kodun orjinali değil fakat bunda da aynı sıkıntı oluyor, nerede hata yapıyorum? Programlamaya pek hakim değilim bölümümle alakalı olmadığı için, ama bitirme projesi olarak bunu verdiler hehe...
Bu kodun orjinali değil fakat bunda da aynı sıkıntı oluyor, nerede hata yapıyorum? Programlamaya pek hakim değilim bölümümle alakalı olmadığı için, ama bitirme projesi olarak bunu verdiler hehe...
Kod:
#include <NewPing.h>
#include <Servo.h>
int PWM1 = 11;
int DIR1 = A0;
int PWM2 = 10;
int DIR2 = A1;
#define TRIGGER_PIN A3
#define ECHO_PIN A2
#define MAX_DISTANCE 200
Servo myservo;
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
int distance = 100;
void setup() {
pinMode(DIR1, OUTPUT);
pinMode(DIR2, OUTPUT);
Serial.begin(9600);
myservo.attach(3);
myservo.write(75);
delay(10);
}
void loop() {
distance = readPing();
delay(50);
Serial.println(distance);
delay(500);
if(distance <= 10)
{
myservo.write(150);
delay(1000);
myservo.write(35);
delay(1000);
myservo.write(115);
delay(1000);
}else
{
ileriGit();
delay(5);
}
/*Serial.print("Ping: ");
Serial.print(sonar.ping_cm());
Serial.println("cm");*/
}
int readPing() {
delay(70);
int cm = sonar.ping_cm();
if(cm==0)
{
cm = 250;
}
return cm;
}
void ileriGit()
{
digitalWrite(DIR1, HIGH);
digitalWrite(DIR2, HIGH);
analogWrite(PWM1, 80);
analogWrite(PWM2, 80);
delay(10);
}
Moderatör tarafında düzenlendi: