树莓派Pico搭配CircuitPython时舵机无法完成180°旋转的解决方法
解决CircuitPython下SG90舵机无法旋转180°的问题
问题核心是Adafruit ServoKit库的默认脉冲宽度范围与TowerPro SG90的实际需求不匹配:
- SG90标准脉冲范围为500μs(对应0°)到2500μs(对应180°)
ServoKit默认使用700μs-2300μs的范围,这导致舵机无法走到极限位置,只能实现约150°的旋转
修改步骤:
在初始化舵机控制器后,手动为目标舵机通道设置正确的脉冲宽度范围即可解决问题。
修改后的完整代码:
import time import board import busio from adafruit_servokit import ServoKit kit = ServoKit(channels=16, i2c=(busio.I2C(board.GP1, board.GP0))) # 为0号舵机设置SG90对应的脉冲宽度范围 kit.servo[0].set_pulse_width_range(500, 2500) while True: kit.servo[0].angle = 180 time.sleep(1) kit.servo[0].angle = 0 time.sleep(1)
额外说明:
如果设置后仍未达到完整180°,可以微调脉冲范围的数值(比如480-2520),因为不同批次的SG90可能存在微小的参数差异,根据实际旋转效果调整即可。
内容的提问来源于stack exchange,提问作者Monty Swanson
相关产品推荐
相关产品推荐

