K210——PWM控制舵机

K210


在这里插入图片描述

一、PWM是什么?

PWM(脉冲宽度调制)就是一个特定信号输出,主要用于输出不同频率、占空比(一个周期内高电平出现时间占总时间比例)的方波。以实现固定频率或平均电压输出
在这里插入图片描述
PWM波形实例,右边为等效电压

二、相关函数

1.machine.PWM(tim, freq, duty, pin, enable=True)

machine.PWM(tim, freq, duty, pin, enable=True)

PWM 对象在 machine 模块下。
【tim】K210 的 PWM 依赖于定时器来产生波形
【freq】PWM 频率
【duty】PWM 占空比
【pin】PWM 输出引脚
【enable】是否在构建对象后立即产生波形,默认 True。

PWM.freq(freq)
设置频率。不传参数返回当前频率值。
PWM.duty(duty)
设置占空比。不传参数返回当前占空比值。[0-100]表示占空比百分比
PWM.enable()
使能 PWM 输出。
PWM.disable()
暂停 PWM 输出。 PWM.deinit()
注销 PWM。

在这里插入图片描述

2.完整代码

from machine import Timer,PWM
import time

#PWM通过定时器配置,接到IO17引脚
tim = Timer(Timer.TIMER0, Timer.CHANNEL0, mode=Timer.MODE_PWM)
S1 = PWM(tim, freq=50, duty=0, pin=17)

'''
说明:舵机控制函数
功能:180度舵机:angle:-9090 表示相应的角度
     360连续旋转度舵机:angle:-9090 旋转方向和速度值。
    【duty】占空比值:0-100
'''

def Servo(servo,angle):
    S1.duty((angle+90)/180*10+2.5)


while True:
    #-90Servo(S1,-90)
    time.sleep(1)

    #-45Servo(S1,-45)
    time.sleep(1)

    #0Servo(S1,0)
    time.sleep(1)

    #45Servo(S1,45)
    time.sleep(1)

    #90Servo(S1,90)
    time.sleep(1)

在这里插入图片描述
接的时候不要直接接板子上的5v,可能会击穿芯片

猜你喜欢

转载自blog.csdn.net/qq_51963216/article/details/123945993
今日推荐