在这里,我的电路连接的粗略草图:

8伺服电机是外部供电的直流电源。电源接地,伺服电机和Arduino是通用的。Arduino是用笔记本电脑供电的
#include <VarSpeedServo.h>
VarSpeedServo rot1;
VarSpeedServo rot2;
VarSpeedServo rot3;
VarSpeedServo rot4;
VarSpeedServo grip1;
VarSpeedServo grip2;
VarSpeedServo grip3;
VarSpeedServo grip4;
void setup() {
rot1.attach(11);
grip1.attach(10);
rot2.attach(1);
grip2.attach(2);
rot3.attach(8);
grip3.attach(9);
rot4.attach(5);
grip4.attach(7);
home1();
delay(1000);
home2();
delay(1000);
home3();
delay(1000);
home4();
}
void loop() {
}
void home1()
{
rot1.write(0, 30, true);
delay(2000);
rot1.detach();
grip1.write(40, 30, true);
delay(2000);
grip1.detach();
}
void home2()
{
rot2.write(0, 30, true);
delay(2000);
rot2.detach();
grip2.write(40, 30, true);
delay(2000);
grip2.detach();
}
void home3()
{
rot3.write(180, 30, true);
delay(2000);
rot3.detach();
grip3.write(160, 30, true);
delay(2000);
grip3.detach();
}
void home4()
{
rot4.write(180, 30, true);
delay(2000);
rot4.detach();
grip4.write(80, 30, true);
delay(2000);
grip4.detach();
}发布于 2018-09-11 09:05:35
我想你使用的是标准伺服电机,而不是“连续旋转”伺服电机?在基本水平上,你所面临的问题并不难解决。
当伺服电机关闭时,它将倾向于保持在默认情况下的最后命令位置(假设轮系上的任何类型的负载在不使用时不会移动它),并且无法首先找到伺服电机的启动位置,因为目前没有从伺服电机返回到arduino的位置反馈信号。
我可以建议的是,如果这是非常重要的,那么你必须机械地将某种罐子连接到伺服机构,并通过模拟输入引脚读取它的真实位置。
希望这能帮到你。
https://stackoverflow.com/questions/36622637
复制相似问题