mirror of
https://github.com/tinygo-org/drivers.git
synced 2026-07-26 10:38:41 +00:00
servo: Add function SetAngleWithMicroseconds (#695)
servo: Add function `SetAngleWithMicroseconds`,Adjust the angle by customizing the control pulse width
This commit is contained in:
@@ -102,3 +102,16 @@ func (s Servo) SetAngle(angle int) error {
|
|||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SetAngleWithMicroseconds sets the angle of the servo in degrees. The angle should be between
|
||||||
|
// 0 and 180, where 0 is the minimum angle and 180 is the maximum angle.
|
||||||
|
// The high duration can be customized
|
||||||
|
// 0° is lowMicroseconds(us), 180° is highMicroseconds(us)
|
||||||
|
func (s Servo) SetAngleWithMicroseconds(angle int, lowMicroseconds, highMicroseconds int) error {
|
||||||
|
if angle < 0 || angle > 180 {
|
||||||
|
return ErrInvalidAngle
|
||||||
|
}
|
||||||
|
microseconds := lowMicroseconds + (highMicroseconds-lowMicroseconds)*angle/180
|
||||||
|
s.SetMicroseconds(int16(microseconds))
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user