控制舵机原理:就是在两毫秒内控制高低电平的比例。
这里用微妙控制,比如0度就是500us:19500us总共是2ms。
180度就是2500us:17500us
from machine import Pin
import time
i=0
def getAnalgeVal(curOri, oriMin, oriMax, resultMin, resultMax):
return int((curOri-oriMin)*(resultMax-resultMin)/(oriMax-oriMin) + resultMin)
def servo(pin,x): #pin引脚,x舵机转动角度
pin1=Pin(pin,Pin.OUT)
time1=getAnalgeVal(x,0,180,500,2500)
time2=20000-time1
pin1.value(1)
time.sleep_us(time1)
pin1.value(0)
time.sleep_us(time2)
return
while 1:
time.sleep(1)
while i<181:
servo(23,i)
time.sleep(0.001)
i+=5
while i>=0:
servo(23,i)
time.sleep(0.001)
i-=5
time.sleep(1)