0°

(四)Arduino系列:NodeMCU PWM占空比学习

介绍

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

(四)Arduino系列:NodeMCU PWM占空比学习

 

PWM生成

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

 

(四)Arduino系列:NodeMCU PWM占空比学习

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

D = 2ms / 10ms = 20%

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

(四)Arduino系列:NodeMCU PWM占空比学习

PWM占空比

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

NodeMCU上的PWM引脚

(四)Arduino系列:NodeMCU PWM占空比学习

NodeMCU PWM引脚

NodePU PWM的Arduino功能

analogWrite(pin, dutycycle)在指定引脚上启用软件PWM。占空比范围为0到PWM最大范围,默认为1023。

analogWrite(pin, 0)禁用指定引脚上的PWM。

analogWriteRange(new_range)该功能用于改变PWM范围(占空比)。

analogWriteFreq(new_frequency) PWM频率默认为1kHz。调用此功能可以用新频率更改它.PWM频率在1 – 1000Khz范围内。

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

NodeMCU PWM LED亮度控制

使用NodeMCU PWM进行LED亮度控制

 

用于PWM的Arduino程序

uint8_t LEDpin = D6;

/* By default PWM frequency is 1000Hz and we are using same 
   for this application hence no need to set */

void setup(){
  Serial.begin(9600);
  analogWrite(LEDpin, 512);  /* set initial 50% duty cycle */
}

余下程序:

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

请先登录

您的用户组:

完整程序下载

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

请先登录

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

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