เราสามารถควบคุมเซอร์โวอื่น ๆ ด้วยรหัสเซอร์โว Arduino ทั่วไปได้ไหม

Aug 17 2020

ฉันพยายามควบคุม MG996R โดยใช้รหัสสำหรับเซอร์โวทั่วไป (SG90)

ฉันใช้แหล่งจ่ายไฟภายนอก 5V, 2A
ฉันเชื่อมต่อสายสัญญาณเซอร์โวเข้ากับช่องเสียบ Arduino 7, เซอร์โวบวกกับแหล่งจ่ายไฟภายนอกเป็นบวก, เซอร์โวกราวด์ไปยังกราวด์ของแหล่งจ่ายไฟภายนอกในขณะที่ออกจากแหล่งจ่ายไฟ 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 เสมอ