micropython入门(四)舵机应用之远红外感应实现舵机控制
远红外探头,无人时输出为0,人经过时输出为1。
控制方法,使用pyb库
import pyb
#from machine import Pin
from pyb import Pin
y1 = Pin('Y1', Pin.IN)
x3 = Pin('X3', Pin.OUT_PP)
while 1:
#高电平输入时(触摸)
if y1.value() == 1 :
# print(y1.value())
x3.value(1)
pyb.LED(2).on()
pyb.LED(3).off()
pyb.delay(1000)
s1 = pyb.Servo(1) #使用X1脚输出给舵机
s1.angle(90,100) #转90度
pyb.delay(3000)
s1.angle(0,1000) #复位0度
pyb.delay(3000)
#低电平输入时(无触摸)
else:
# print(y1.value())
x3.value(0)
pyb.LED(3).on()
pyb.LED(2).off()
pyb.delay(1000)
s2 = pyb.Servo(2) #使用X2脚输出给舵机
s2.angle(90,100) #转90度
pyb.delay(3000)
s2.angle(0,1000) #复位0度
关键点:
1 创建pyb.Servo(id)时。id取值1~4。
2 使用angle()方法指定旋转角度都会存在偏差。而且指定极限角度如-90°或90°时,舵机会发出咔哒声,说明指定的角度实际对应的参数值已经超出舵机的旋转的范围。