Можем ли мы управлять другими сервоприводами с помощью общего сервокода Arduino

Aug 17 2020

Я пытаюсь управлять MG996R, используя код для типичного сервопривода (SG90)

Я использовал внешний источник питания, 5 В, 2 А.
Я подключил сигнальную линию сервопривода к слоту 7 Arduino, положительный полюс сервопривода к положительному положению внешнего источника питания, заземление сервопривода к заземлению внешнего источника питания, оставив источник питания и землю Arduino неподключенными.

Я попробовал приведенный ниже код.
он работает для SG90, а MG996R вообще не двигается.


#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 для сигнальной линии).

Я думаю, SG90 работал даже без подключения земли Arduino из-за разницы в конструкции.

Но вы всегда должны подключать землю сервопривода к земле Arduino.