舵机类型又分为两种,一种是模拟舵机,另一种是数字舵机,像SG90就是模拟舵机。
转动角度为360°的舵机与转动角度为90°/180°的舵机工作的方式又是不一样的,360°的舵机相当于是无极变速的减速电机,只能控制转动的速度和转动的方向,不能控制转动到想要的角度,但控制的方式和一般舵机的控制信号相同。

另外说明一下:如果舵机不是由树莓派供电的话,需要将该电源与树莓派共地,也就是说电源的负极必须与树莓派任意一个GND连接,否则会出现舵机控制失常等现象。

舵机三条线定义: 暗灰GND 、 红色VCC 4.8-7.2V 一般用5V、 橙黄线:脉冲输入
import RPi.GPIO as gpio
import time
#暗灰GND、红色VCC 4.8-7.2V 一般用5V、 橙黄线:脉冲输入
s90_io = 18
# gpio口的初始化
gpio.setmode(gpio.BCM)
gpio.setwarnings(False)
gpio.setup(s90_io, gpio.OUT)
# 初始化PWM
s90_pwm = gpio.PWM(s90_io, 50)
s90_pwm.start(0)
def s90(angle): # 定义函数,输入角度,即可自动转向,0-180度,如0、90、180
s90_pwm.ChangeDutyCycle(2.5+angle/360*20)
#开始角度测试:
s90(90)
time.sleep(2)
s90(180)
time.sleep(2)
s90(0)
time.sleep(2)
# 释放资源
s90_pwm.stop()
gpio.cleanup()
网友评论