PWM基本概念
PWM是脉冲宽度调制(Pulse Width Modulation)的缩写,是一种用数字信号控制模拟电路输出的技术。PWM通常被用来控制电压或电流的大小,通过改变脉冲的宽度来控制输出信号的平均值。
PWM技术在实际应用中具有广泛的应用,例如电机控制电机控制、LED灯光调节、音频数字转换等。在MicroPython中,我们可以使用相应的PWM模块进行数字信号控制,从而实现各种控制和应用场景。
PWM使用方法
pyb.pwm
pyb.pwm
是MicroPython中用于控制PWM输出的模块。它提供了一些方法和属性,用于设置和控制PWM输出的频率、占空比等参数,从而实现对各种应用场景的控制。
以下是 pyb.pwm
常用的方法和属性:
方法
pulse_width(pulse_width)
: 设置脉冲的高电平持续时间,单位为毫秒。freq(freq)
: 设置PWM输出频率,单位为Hz。init(freq=1000, duty=50, timer=4, channel=1, pin=None)
: 初始化PWM输出,freq为频率,duty为占空比(默认为50%),timer和channel为定时器和通道号(默认为4和1)。
属性
pulse_width()
: 返回当前脉冲的高电平持续时间,单位为毫秒。freq()
: 返回当前PWM输出频率,单位为Hz。duty()
: 返回当前PWM输出的占空比,百分比表示。
示例代码:
import pyb
# 初始化PWM输出
pwm = pyb.PWM(pyb.Pin.board.X1)
# 设置PWM输出的频率为2000Hz,占空比为20%
pwm.freq(2000)
pwm.duty(20)
# 持续输出PWM信号
while True:
pass
以上代码初始化了一个PWM输出引脚,并设置了输出频率为2000Hz、占空比为20%。在while循环中持续输出PWM信号。
machine.pwm
machine.pwm
是MicroPython中用于控制PWM输出的模块之一,它提供了一些方法和属性,用于设置和控制PWM输出的频率、占空比等参数,从而实现对各种应用场景的控制。
以下是 machine.pwm
常用的方法和属性:
方法
freq(freq)
: 设置PWM输出频率,单位为Hz。duty(duty)
:设置PWM输出的占空比,范围在0到1之间。deinit()
:停止PWM输出。
属性
freq()
: 返回当前PWM输出频率,单位为Hz。duty()
: 返回当前PWM输出的占空比,百分比表示。
示例代码:
import machine
import time
# 初始化PWM输出
pwm = machine.PWM(machine.Pin(12))
# 设置PWM输出的频率和占空比
pwm.freq(1000)
pwm.duty(0.5)
# 持续输出PWM信号
while True:
time.sleep(1)
pwm.duty(0.2)
time.sleep(1)
pwm.duty(0.8)
以上代码初始化了一个PWM输出引脚,并设置了输出频率为1000Hz、占空比为50%。在while循环中不断改变占空比,以产生PWM信号的亮度变化。
PWM可用的传感器
PWM信号通常用于控制电机和舵机,在这些应用中,PWM信号的占空比决定了电机或舵机的速度和位置。
除了控制电机和舵机之外,PWM信号还可以用来控制一些传感器的输出,例如:
-
舵机角度传感器:舵机角度传感器可以通过接收PWM信号来确定舵机当前的位置和角度。通过改变PWM信号的占空比,可以改变舵机的位置,从而获得不同的角度测量值。
-
温度传感器:一些温度传感器(如Thermistor)可以使用PWM信号来读取温度值。PWM信号的占空比可以控制传感器输出的电压,从而影响温度传感器的电阻值,通过对电阻值的读取可以得到温度值。(基本是最为器件放到开发板的,我们新手用不到)
-
光照传感器:PWM信号同样可以用于读取光照传感器的输出。PWM信号的频率和占空比可以影响光照传感器的输出电压,从而影响传感器的测量范围和分辨率。
需要根据具体的传感器和应用情况来确定PWM信号的参数,并结合传感器的特性进行调整。