共通のサーボコードArduinoで他のサーボを制御できますか

Aug 17 2020

典型的なサーボ(SG90)のコードを使用してMG996Rを制御しようとしています

私は外部電源5V、2Aを使用しました。
サーボ信号ラインをArduinoスロット7に接続し、サーボプラスを外部電源プラスに、サーボアースを外部電源アースに接続しましたが、Arduino電源とアースは接続していません。

以下のコードを試してみました。
MG996Rはまったく動いていませんが、SG90では機能します。


#include <Servo.h>  
Servo myservo;


void setup()
{ 
  myservo.attach(7);  //pin 7 is the one control servo
 
} 

void loop() 
{  

  for (int pos=0; pos<=60; pos++)
  {
    myservo.write(pos);
    delay(15);
  }

}

サーボが異なれば必要なコードも異なるからですか?

回答

1 Kevin Aug 26 2020 at 07:11

それらは同じ制御信号で動作するため、同じコードが両方で動作するはずです

サーボのアースがArduinoのアースと電源のアースの両方に接続されていることを確認する必要があります(電源のプラスの場合は電源のアース、信号線の場合はArduinoのアース)

Arduinoのアースを接続しなくてもSG90が機能したのは、デザインの違いによるものだと思います。

ただし、常にサーボグランドをArduinoグランドに接続する必要があります。