有没有办法用 Adafruit 1411 Servo shield 以角度写入伺服位置?
Is there a way to write the servo position in angles with Adafruit 1411 Servo shield?
我正在尝试通过 Adafruit 1411 Servo shield 控制我的 180 度伺服电机。然而,我觉得像没有屏蔽的普通伺服库那样以角度写伺服的位置不够简单。
据我所知,使用 Adafruit 1411 Servo shield 和 Adafruit_PWMServoDriver-library 可以让您通过修改其脉冲长度来控制伺服电机。对于我的问题..
有没有办法让我使用伺服屏蔽的输出并仍然以度为单位写入或以某种方式将这些脉冲长度转换为角度?
差异示例:
Adafruit_PWMServoDriver-library:
pwm.setPWM(伺服,0,脉冲长度);
伺服库:
Servo.write(45); //以这样的角度书写对我的项目来说是最佳的。
非常感谢任何正确方向的帮助!
使用 Arduino map
函数。以下内容来自 Adafruit instructions:
pulselength = map(degrees, 0, 180, SERVOMIN, SERVOMAX);
其中SERVOMIN和SERVOMAX是您根据舵机的行程范围设置的值。这会将 0 到 180 之间的值线性映射到 SERVOMIN 和 SERVOMAX 之间的范围。
由于到目前为止您一直在使用脉冲宽度进行此操作,因此您可能已经知道需要使用的值。
我正在尝试通过 Adafruit 1411 Servo shield 控制我的 180 度伺服电机。然而,我觉得像没有屏蔽的普通伺服库那样以角度写伺服的位置不够简单。
据我所知,使用 Adafruit 1411 Servo shield 和 Adafruit_PWMServoDriver-library 可以让您通过修改其脉冲长度来控制伺服电机。对于我的问题..
有没有办法让我使用伺服屏蔽的输出并仍然以度为单位写入或以某种方式将这些脉冲长度转换为角度?
差异示例:
Adafruit_PWMServoDriver-library:
pwm.setPWM(伺服,0,脉冲长度);
伺服库:
Servo.write(45); //以这样的角度书写对我的项目来说是最佳的。
非常感谢任何正确方向的帮助!
使用 Arduino map
函数。以下内容来自 Adafruit instructions:
pulselength = map(degrees, 0, 180, SERVOMIN, SERVOMAX);
其中SERVOMIN和SERVOMAX是您根据舵机的行程范围设置的值。这会将 0 到 180 之间的值线性映射到 SERVOMIN 和 SERVOMAX 之间的范围。
由于到目前为止您一直在使用脉冲宽度进行此操作,因此您可能已经知道需要使用的值。