เราสามารถควบคุมเซอร์โวอื่น ๆ ด้วยรหัสเซอร์โว Arduino ทั่วไปได้ไหม
ฉันพยายามควบคุม 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);
}
}
เป็นเพราะเซอร์โวที่แตกต่างกันต้องการรหัสที่แตกต่างกันหรือไม่?
คำตอบ
พวกเขาทำงานร่วมกับสัญญาณควบคุมเดียวกันดังนั้นรหัสเดียวกันควรใช้ได้กับทั้งคู่
คุณต้องตรวจสอบให้แน่ใจว่าทั้งกราวด์เซอร์โวเชื่อมต่อกับกราวด์ Arduino และกราวด์ของแหล่งจ่ายไฟ (กราวด์ของแหล่งจ่ายไฟสำหรับแหล่งจ่ายไฟบวก, กราวด์ Arduino สำหรับสายสัญญาณ)
ฉันคิดว่า SG90 ทำงานได้แม้ไม่ได้เชื่อมต่อกับกราวด์ Arduino เป็นเพราะความแตกต่างในการออกแบบ
แต่คุณควรเชื่อมต่อเซอร์โวกราวด์กับกราวด์ Arduino เสมอ