0°

(四)ESPlorer系列:NodeMCU PWM使用

介绍

脉冲宽度调制(PWM)是一种在保持波的频率恒定的同时改变脉冲宽度的技术。

(四)ESPlorer系列:NodeMCU PWM使用

LED PWM

PWM生成

脉冲周期包括ON周期(VCC)和OFF周期(GND)。在一段时间内信号导通的分数称为占空比。

(四)ESPlorer系列:NodeMCU PWM使用

例如,周期为10ms的脉冲将保持ON(高电平)2ms。因此,占空比将为

D = 2ms / 10ms = 20

通过PWM技术,我们可以使用ON-OFF信号控制输送到负载的功率。PWM信号可用于控制直流电机的速度和改变LED的强度。此外,它还可用于生成正弦信号。脉冲宽度具有不同占空比的调制信号如下所示。

(四)ESPlorer系列:NodeMCU PWM使用

PWM占空比

基于NodeMCU的ESP8266通过软件编程具有PWM接口的功能。它是通过定时器中断方法实现的。ESP8266的PWM频率范围可调至1KHz。

(四)ESPlorer系列:NodeMCU PWM使用

NodeMCU PWM引脚

NodeMCU PWM功能

让我们看看用于在NodeMCU Dev Kit上设置PWM的PWM功能。请注意,PWM功能仅适用于NodeMCU Dev Kit上图所示的引脚。

pwm.close()

该功能用于退出/关闭指定GPIO引脚的PWM模式。

句法

pwm.close(pin)

参数

  • pin:引脚 1至12(9,10,11除外)

返回: null

pwm.getclock()

该功能用于在指定引脚上运行PWM时钟(频率)。

句法

pwm.getclock(pin)

参数

  • pin:引脚 1至12(9,10,11除外)

返回:返回引脚的PWM频率。

pwm.getduty()

该功能用于在指定引脚上获得PWM占空比。

句法

pwm.getduty(pin)

参数

  • pin:引脚1至12(9,10,11除外)

返回:返回引脚的占空比。最大值是1023

pwm.setclock()

该功能用于设定指定引脚的PWM频率。

请注意,任何引脚的PWM频率设置都适用于所有其他PWM引脚(如果这些引脚也用作PWM)。所有PWM引脚只允许一个PWM频率。

句法

pwm.setclock(pin, clock)

参数

  • pin:别针 1129,10,11除外)
  • clock: PWM频率在1~1000之间。

返回: null

pwm.setduty()

该功能用于设置指定引脚的占空比。

句法

pwm.setduty(pin, duty)

参数

  • pin:别针 1129,10,11除外)
  • duty: PWM占空比介于0~102310bit)之间。

返回: null

pwm.setup()

该功能用于将PWM模式设置为具有频率和占空比的指定引脚。

句法

pwm.setup(pin, clock, duty)

参数

pin:引脚 1至12(9,10,11除外)

duty: PWM占空比介于0~1023(10bit)之间。

clock: PWM频率在1~1000之间。

返回: null

pwm.start()

该功能用于在指定引脚上启动PWM。

句法

pwm.start(pin)

参数

  • pin:引脚1至12(9,10,11除外)

返回: null

pwm.stop()

该功能用于停止指定引脚的输出PWM波形。

句法

pwm.start(pin)

参数

  • pin引脚 1至12(9,10,11除外)

返回: null

让我们写一个Lua脚本,在NodeMCU的第6个引脚上设置PWM,并通过连接到NodeMCU的ADC引脚的电位器改变其占空比。在这里,我们连接PWM引脚上的LED,以显示PWM变化的效果(LED的亮度)。

(四)ESPlorer系列:NodeMCU PWM使用

通过PWM控制LED亮度

用于PWM的Lua脚本

限制以下用户组阅读此隐藏内容

请先登录

您的用户组:

本教程完整程序下载:

限制以下用户组阅读此隐藏内容

请先登录

您的用户组:
「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论