mirror of
https://github.com/tinygo-org/drivers.git
synced 2026-07-26 02:28: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
|
||||
}
|
||||
|
||||
// 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