Skip to content

Commit

Permalink
servo: Add function SetAngleWithMicroseconds (#695)
Browse files Browse the repository at this point in the history
servo: Add function `SetAngleWithMicroseconds`,Adjust the angle by customizing the control pulse width
  • Loading branch information
PWND0U authored Oct 23, 2024
1 parent ce80e75 commit 1c2b802
Showing 1 changed file with 13 additions and 0 deletions.
13 changes: 13 additions & 0 deletions servo/servo.go
Original file line number Diff line number Diff line change
Expand Up @@ -102,3 +102,16 @@ func (s Servo) SetAngle(angle int) error {

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
}

0 comments on commit 1c2b802

Please sign in to comment.