1

コードは機能していないようですが、arduino のコーディング方法の学習も始めたばかりです。ロボットカーのステアリングとして、2 つの DC モーターと 1 つのサーボを実行しようとしています。動作するようにするにはどうすればよいですか。私がやろうとしているのは、2 つのモーターを使用して車を前進させ、サーボを使用して車に方向を与えることだけです。このコードを改善するにはどうすればよいですか?

    #include <Servo.h>


    int servoRightPin = 2;
    int servoLeftPin = 3;
    int servoDirPin = 4;
    Servo servoRight;
    Servo servoLeft;
    Servo servoDir;


    void turnLeft()
    {
    servoDir.write(0.6);
    delay(300000);
    servoLeft.write(180);
    servoRight.write(0);
    }

    void moveForward()
    {
    servoDir.write(0);
    delay(240000);
    servoLeft.write(180);
    servoRight(0);
    }

    void turnLeft()
    {
    servoDir.write(0.6);
    delay(300000);
    servoLeft.write(180);
    servoRight.write(0);
    }

    void moveForward()
    {
    servoDir.write(0);
    delay(240000);
    servoLeft.write(180);
    servoRight(0);
    }




    june_4_car.ino: In function 'void moveForward()':
    june_4_car.ino:25:15: error: no match for call to '(Servo) (int)'
    june_4_car.ino: In function 'void turnLeft()':
    june_4_car.ino:28:6: error: redefinition of 'void turnLeft()'
    june_4_car.ino:12:6: error: 'void turnLeft()' previously defined here
    june_4_car.ino: In function 'void moveForward()':
    june_4_car.ino:36:6: error: redefinition of 'void moveForward()'
    june_4_car.ino:20:6: error: 'void moveForward()' previously defined here
    june_4_car.ino:41:15: error: no match for call to '(Servo) (int)'
    Error compiling.
4

1 に答える 1

1

そこにはいくつかの問題があります。

コンパイルエラーから始めましょう:

  1. 2 つの関数turnLeftと 2 つの関数がありますmoveForward。2 番目のペアは と であるべきだと思いturnRightますmoveBackwards
  2. moveForward呼び出す関数では、servoRight(0)これはおそらくservoRight.write(0).

これを修正すると、コードをコンパイルできるようになりますが、それでも動作しません:

  1. ピンを定義しましたが、サーボに接続されていません ( への呼び出しがありませんattach)。
  2. 1 つのサーボと 2 つの DC モーターについて言及したのに、コードに 3 つのサーボがあるのはなぜですか? (サーボの 3 つのピンのうち 1 つだけがデジタル ポートに接続され、他の 2 つのピンは電源用です)。
  3. delayで何をしようwrite(180)としているのwrite(0)ですか?
  4. write(0.6) は角度を 0.6 度増加させません。現在の角度を追跡するか、 から追跡する必要がありread()ますservo

要するに、いくつかのチュートリアル (このようなもの) を読み、実験して楽しんでください。

于 2015-06-05T02:43:16.167 に答える