> 文章列表 > 【硬件外设使用】——PWM

【硬件外设使用】——PWM

【硬件外设使用】——PWM

【硬件外设使用】——PWM

  • PWM基本概念
  • PWM使用方法
    • pyb.pwm
      • 方法
      • 属性
    • machine.pwm
      • 方法
      • 属性
  • PWM可用的传感器

PWM基本概念

PWM是脉冲宽度调制(Pulse Width Modulation)的缩写,是一种用数字信号控制模拟电路输出的技术。PWM通常被用来控制电压或电流的大小,通过改变脉冲的宽度来控制输出信号的平均值。
在这里插入图片描述

PWM信号由一系列周期性的脉冲组成,每个脉冲的宽度代表了输出电压或电流的大小。如果脉冲的宽度为100%,则输出电压或电流将保持最大值;
如果脉冲的宽度为0%,则输出电压或电流将为0。 通过改变脉冲的宽度和周期,我们可以调整输出电压或电流的平均值,从而实现对电路元件的控制。

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信号还可以用来控制一些传感器的输出,例如:

  1. 舵机角度传感器:舵机角度传感器可以通过接收PWM信号来确定舵机当前的位置和角度。通过改变PWM信号的占空比,可以改变舵机的位置,从而获得不同的角度测量值。
    在这里插入图片描述

  2. 温度传感器:一些温度传感器(如Thermistor)可以使用PWM信号来读取温度值。PWM信号的占空比可以控制传感器输出的电压,从而影响温度传感器的电阻值,通过对电阻值的读取可以得到温度值。(基本是最为器件放到开发板的,我们新手用不到)

  3. 光照传感器:PWM信号同样可以用于读取光照传感器的输出。PWM信号的频率和占空比可以影响光照传感器的输出电压,从而影响传感器的测量范围和分辨率。

需要根据具体的传感器和应用情况来确定PWM信号的参数,并结合传感器的特性进行调整。