我使用的是香橙派3b
使用前安装wiringpi库
引脚映射关系:
所以代码18,连的是派的28号引脚
这个是软件控制pwm:
import wiringpi
#0-180度的代码,用软件pwm
SERVO_PIN = 18
ANGLE_MIN = 0
ANGLE_MAX = 180
SERVO_MIN_PWM = 5
SERVO_MAX_PWM = 25
def map_angle_to_pwm(angle):
return SERVO_MIN_PWM + (angle - ANGLE_MIN) * (SERVO_MAX_PWM - SERVO_MIN_PWM) // (ANGLE_MAX - ANGLE_MIN)
def main():
print("Servo Control Program")
if wiringpi.wiringPiSetup() == -1:
print("Failed to initialize wiringPi")
exit(1)
wiringpi.softPwmCreate(SERVO_PIN, 0, SERVO_MAX_PWM)
while True:
for angle in range(ANGLE_MIN, ANGLE_MAX + 1):
pwm_value = map_angle_to_pwm(angle)
wiringpi.softPwmWrite(SERVO_PIN, pwm_value)
wiringpi.delay(15)
for angle in range(ANGLE_MAX, ANGLE_MIN - 1, -1):
pwm_value = map_angle_to_pwm(angle)
wiringpi.softPwmWrite(SERVO_PIN, pwm_value)
wiringpi.delay(15)
if __name__ == "__main__":
main()