Herkese Merhabalar; Arduino Mega 2560 ,Adafruit L293D motor sürücü shield ve 3 lü çizgi izleyen sensör devresi kullanarak çizgi izleyen robot yapmaya çalışıyorum.Büyük oranda yol katetdim fakat bir sorunla karşılaştım. Motor sürücü shield üstündeki M3 ve M4 e birer motor bağladım ; M3 teki motor normal bir şekilde sensörü okuyup hareket ederken ,M4 teki motor sadece titriyo motorun ucunu elimle çevirdiğimde normal bir şekilde dönmeye başlıyo yalnız durduğunda dönmesi için tekrar el ile çevirmek gerekiyor. USB den gelen az olacağı için 9V pilde bağladım yalnız yine aynı sorunla karşılaştım M4 e gelen akım az. Acaba neyden kaynaklanıyor olabilir. Kod ve devrenin foroğrafı aşağıdaki gibidir (jumper ım olmadığı için görüntü biraz karmaşık görülebilir elimden geldiğince açıklamaya çalıştım kusura bakmayın) yardımcı olabilecek arkadaş varsa çok memnun olurum. Şimdiden çok teşekkür ederim… http://r1309.hizliresim.com/1f/w/t2sgq.jpg http://r1309.hizliresim.com/1f/w/t2shw.jpg #include <afmotor.h>
AF_DCMotor motor4(4);
AF_DCMotor motor3(3);
int sensor = 30;
int sensor2 = 32;
int sensor3 = 34;
int sensorstate1 = 0;
int sensorstate2 = 0;
int sensorstate3 = 0;
void setup() {
Serial.begin(9600); // set up Serial library at 9600 bps
pinMode (sensor, INPUT);
pinMode (sensor2, INPUT);
pinMode (sensor3, INPUT);
// turn on motor
motor3.setSpeed(200);
motor4.setSpeed(200);
motor3.run(RELEASE);
motor4.run(RELEASE);
}
void loop() {
uint8_t i;
sensorstate1= digitalRead(sensor);
sensorstate2= digitalRead(sensor3);
sensorstate3= digitalRead(sensor2);
Serial.print(“tick”);
if(sensorstate1 == HIGH)
{
motor3.run(FORWARD);
motor3.setSpeed(255);
motor4.run(RELEASE);
}
Serial.print(“tick”);
if(sensorstate2 == HIGH)
{
motor4.run(FORWARD);
motor4.setSpeed(255);
motor3.run(RELEASE);
}
Serial.print(“tick”);
if(sensorstate3 == HIGH)
{
motor3.run(FORWARD);
motor4.run(FORWARD);
motor3.setSpeed(255);
motor4.setSpeed(255);
}
if(sensorstate3 == LOW && sensorstate2 == LOW && sensorstate1 == LOW)
motor3.run(RELEASE);
motor4.run(RELEASE);
}
</afmotor.h>