Dc motor sürme
  • Ladyada tip motor sürücü kullanıyorum . Projem gereği sağ ve sol olmak üzere 2 adet dc motor sürmem gerekiyor .2 teker ve bir adet sarhoş tekerim mevcut dönüş esnasında sağ motor FORWARD iken sol motor BACKWARD konumunda olmalı dönüş esnasında . ama kodlama yaparken 2motoru nasıl tanımlamalıyım ? yazdığım kodun çalışmama sebebi nedir ? yardımcı olursanız çok sevinirim . Şimdiden yardım eden herkese teşekkür ederim iyi çalışmalar . Yazdığım kodlar ;
    #include AFMotor.h>
    #include Servo.h>

    Servo myservo;
    int pos = 90;

    AF_DCMotor motor(1, MOTOR12_64KHZ);
    AF_DCMotor motor(2, MOTOR12_64KHZ);
    int trigPin = A0;
    int echoPin = A5;

    float uzaklik(int trigPin, int echoPin){
    float olcum;
    float cm;
    digitalWrite(trigPin, LOW);
    delayMicroseconds(5);
    digitalWrite(trigPin, HIGH);
    delayMicroseconds(10);
    digitalWrite(trigPin, LOW);
    olcum = pulseIn(echoPin, HIGH);
    cm= olcum /29.1/2;
    return cm;
    }
    void setup() {
    myservo.attach(10);

    Serial.begin(9600);
    motor.setSpeed(200);
    pinMode(trigPin, OUTPUT);
    pinMode(echoPin, INPUT);

    // put your setup code here, to run once:

    }

    void loop() {
    while( uzaklik(trigPin, echoPin) > 10 )
    {
    motor1.run(FORWARD);
    motor2.run(FORWARD);
    }
    motor1.run(RELEASE);
    motor2.run(RELEASE);
    delay(500);
    myservo.write(45);
    delay(500);
    if( uzaklik(trigPin, echoPin) > 10 )
    {
    motor1.run(FORWARD);
    motor2.run(BACKWARD);
    delay(500);
    }
    else myservo.write(135);
    delay(500);
    if( uzaklik(trigPin, echoPin) > 10 )
    {
    motor1.run(BACKWARD);
    motor2.run(FORWARD);
    delay(500);
    }
    else myservo.write(0);
    delay(500);
    if( uzaklik(trigPin, echoPin) > 10 )
    {
    motor1.run(FORWARD);
    motor2.run(BACKWARD);
    delay(500);
    } else myservo.write(180);
    delay(500);
    if( uzaklik(trigPin, echoPin) > 10 )
    {
    motor1.run(BACKWARD);
    motor2.run(FORWARD);
    delay(500);
    }
  • Bunu dene:
    #include
    AF_DCMotor motor3(3);
    AF_DCMotor motor4(4);
    void setup() {
    Serial.begin(9600);
    Serial.println("Motor Kontrolu Basladi,Komut Bekleniyor...");
    motor3.setSpeed(200);
    motor4.setSpeed(200);
    motor3.run(RELEASE);
    motor4.run(RELEASE);
    }
    void loop() {
    uint8_t i;
    char val;
    while(1)
    {
    val=Serial.read();
    if(val!=-1)
    {
    switch(val)
    {
    case 'w':// W - Motor 4 - Ileri
    Serial.println("Ileri");
    motor4.run(FORWARD);
    break;
    case 'r':// R - Motor 3&4 - Hareketsiz
    Serial.println("----Serbest----");
    motor3.run(RELEASE);
    motor4.run(RELEASE);
    break;
    case 'a':// A - Motor 3 - Sol
    Serial.println("Sol");
    motor3.run(FORWARD);
    break;
    case 'd':// D - Motor 3 - Sag
    Serial.println("Sag");
    motor3.run(BACKWARD);
    break;
    case 's':// S - Motor 4 - Geri
    Serial.println("Geri");
    motor4.run(BACKWARD);
    break;
    }
    }
    }
    }

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Login with Facebook

Tagged

Açık kaynak kültürü gereği, çözdüğünüz problemlerin çözümlerini paylaşmayı lütfen unutmayın.