首页

ESP8266 PWM教程| LED衰落使用ESP8266

脉冲宽度调制或PWM是一种技术,提供功率负载,如led和电机(PWM也可以用来编码消息)。在这篇ESP8266 PWM教程中,我将教你如何使用ESP8266 WiFi模块来产生用于LED衰落的脉宽调制(PWM)信号。

概述

我们已经看到了几个PWM教程使用各种微控制器(或IC的)像8051Arduino、树莓派和IC 555。使用PWM技术,我们控制了LED的亮度(增加或减少其亮度),改变了直流电机的速度(增加或减少速度),也旋转了伺服电机。

现在在这个ESP8266 PWM教程中,我将控制连接到ESP8266 WiFi模块GPIO2引脚的LED亮度,即使用ESP8266 LED褪色。

在PWM ESP8266

ESP8266EX微控制器即SoC,是所有ESP8266模块(如ESP-01、NodeMCU等)的核心,由四个专用的PWM输出接口组成。ESP8266EX中PWM对应的引脚如下:

ESP8266EX中的PWM引脚

销的名字

密码

MTDI

10

MTDO

13

mtm

9

GPIO4

16

如果你观察的话,你会发现我们的ESP8266 ESP-01 WiFi模块中没有这四个引脚。那么如何在ESP8266中实现PWM呢?

答案很简单:使用软件编程,也就是使用微控制器的定时器。

ESP8266 WiFi模块的PWM可以通过定时器中断实现。PWM信号的频率可以在1Hz到1KHz之间的任何地方(有人说,最小频率是100Hz!)

如何在ESP8266中实现PWM ?

ESP8266中PWM产生的软件实现与Arduino中非常相似。因为我们使用Arduino IDE来编程ESP8266,所以产生PWM信号的函数是analogWrite(与我们在Arduino中使用的函数相同)。

analogWrite函数有两个参数:引脚数和PWM值。代替引脚编号,输入你想要使用PWM输出的引脚编号。

来到PWM值,这里你需要输入一个基于PWM分辨率的值。对于Arduino,分辨率是8位,所以您必须输入0到255之间的值。

以ESP8266为例,ESP8266的PWM采用10位分辨率。因此,您必须输入一个介于0和1023之间的值。这里,PWM值“0”表示占空比为0%,PWM值“1023”表示占空比为100%。0到1023之间的任何值将构成占空比。

注意:

  • 如果ESP8266中的一个引脚被分配了analogWrite来产生PWM信号,那么它就不能被用作数字输出引脚,也就是说你不能使用digitalWrite();功能在那个针上。
  • 为了使用pin作为数字pin,你需要写analogWrite(pin number, 0)来释放它。

ESP8266 LED衰落PWM教程电路图

下图是使用Arduino作为USB-to-Serial Converter编程ESP8266 WiFi模块,并使用PWM信号进行LED衰落的电路图。

ESP8266 PWM教程电路图

组件的要求

  • ESP8266 WiFi模块(ESP-01)
  • Arduino UNO
  • 按钮
  • SPDT开关(滑动开关)
  • 电阻(1 KΩ和2.2 KΩ)
  • 小LED (5mm或3mm)
  • 连接电线
  • 电路试验板

电路设计

连接一个LED(我已经使用了8mm的LED,你可以使用5mm或3mm的LED带限流电阻)到ESP8266 WiFi模块的GPIO2引脚。

VCC和CH_PD接3.3V电源,GND接GND。ESP8266 WiFi模块的RST (Reset)引脚通过按键连接到地。

现在ESP8266的RX和TX引脚连接到Arduino UNO的RX和TX。电路图中请注意,ESP8266的RX引脚并不是直接连接到Arduino的RX引脚,而是通过电平转换器(由1KΩ和2.2KΩ电阻组成)。

最后,GPIO0引脚。该引脚负责启用ESP8266的编程模式。将GPIO0引脚连接到SPDT滑动开关,即其中心端子,并将两个端子中的一个连接到GND。另一端作为GPIO脚。

代码

ESP8266 PWM LED渐隐教程的代码如下所示。

工作

按照电路图正确接线后,开启ESP8266的“编程模式”,即将GPIO0开关滑动到GND位置,并按下RST按钮。

使用Arduino IDE上传代码(首先,选择板中的通用ESP8266模块和正确的端口号)。

上传程序后,将GPIO0引脚滑动到GPIO Position并按RST按钮一次。现在,代码将开始运行,最初你可以看到LED通过5个步骤慢慢增加亮度到最大强度。

在这之后,褪色动作开始于LED淡入和淡出,即从低到高,从高到低是一个循环。

应用程序

  • ESP8266的PWM教程仅仅是一个关于ESP8266 WiFi模块PWM功能的演示。
  • 在ESP8266中使用PWM技术,可以实现伺服电机控制、Web控制伺服、直流电机速度控制等多个项目。

一个回应

留下一个回复

您的电子邮件地址将不会被公布。必需字段被标记

Electronicshub图标
<\/i>","library":""}}" data-widget_type="nav-menu.default">
Baidu