0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎样用ESP8266WiFi模块生成将用于LED衰落的脉冲宽度调制信号

454398 来源:工程师吴畏 2019-07-29 14:33 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

概述

我们已经看过几个使用各种微控制器(或IC)的PWM教程,如8051,Arduino,Raspberry Pi和IC 555.使用PWM技术,我们控制了LED的强度(增加或减少了亮度),改变了直流电机的速度(增加或减少速度),还旋转了伺服电机

现在在ESP8266 PWM教程中,我将控制连接到ESP8266 WiFi模块的GPIO2引脚的LED的亮度,即使用ESP8266进行LED衰落。

ESP8266中的PWM

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

ESP8266EX中的PWM引脚

引脚名称Pin Number

MTDI10

MTDO13

MTMS9

GPIO416

如果您发现,我们的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();该引脚上的功能。

为了将该引脚用作数字引脚,您需要写入analogWrite(引脚号,0)以释放它。

用于LED衰落的ESP8266 PWM教程电路图

下图是使用Arduino作为USB转串口转换器编程ESP8266 WiFi模块的电路图以及使用PWM信号的LED衰落。

怎样用ESP8266WiFi模块生成将用于LED衰落的脉冲宽度调制信号

所需组件

ESP8266 WiFi模块(ESP-01)

Arduino UNO

按钮

SPDT开关(滑动开关)

电阻器(1KΩ和2.2KΩ)

小型LED(5mm或3mm)

连接线

面包板

电路设计

连接LED(我使用的是8mm LED,你可以使用5mm或3mm LED和限流电阻istor)到ESP8266 WiFi模块的GPIO2引脚。

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

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

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

代码

ESP8266的代码PWM LED衰落教程如下:

工作

正确连接所有连接后按照电路图,在ESP8266中启用编程模式,即将GPIO0开关滑动到GND位置并按下RST按钮。

使用Arduino IDE上传代码(首先选择Generic板上的ESP8266模块以及正确的端口号。)

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

此后,淡入淡出动作开始于LED褪色进出,即从低到高,从高到低是循环。

应用

ESP8266 PWM教程只是ESP8266 WiFi模块PWM功能的演示。

使用ESP8266中的PWM技术,可以实现多个项目,如伺服电机控制,网络控制伺服,直流电机速度控制等

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led
    led
    +关注

    关注

    243

    文章

    24434

    浏览量

    687363
  • PWM
    PWM
    +关注

    关注

    116

    文章

    5847

    浏览量

    223777
  • ESP8266
    +关注

    关注

    51

    文章

    966

    浏览量

    48998
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    晶科鑫 | 国产26MHz晶振匹配Espressif(乐鑫) ESP8285/ESP8266芯片案例

    【应用】国产26MHz频率晶振应用于物联网WIFI物联网模块(串口转WiFi模块),Espressif(乐鑫)
    的头像 发表于 11-21 15:37 4043次阅读
    晶科鑫 | 国产26MHz晶振匹配Espressif(乐鑫) <b class='flag-5'>ESP</b>8285/<b class='flag-5'>ESP8266</b>芯片案例

    ESP8266ESP32开发板常见的2种下载方式

    至240MHz CPU,而ESP8266是单核处理器,主频支持80MHz至160MHZ。 这些WiFi模块都带有GPIO,支持SPI,I2C,UART等各种协议。这两款芯片都有STA/AP/STA+AP的工作模式。E...
    的头像 发表于 11-10 20:30 323次阅读
    <b class='flag-5'>ESP8266</b>和<b class='flag-5'>ESP</b>32开发板常见的2种下载方式

    在蜂鸟处理器上进行RT-Thread+ESP8266 wifi模块开发

    本队伍编号CICC3042,本文介绍在蜂鸟处理器上运行RT-Thread实时操作系统,并进行ESP8266wifi模块开发。 在蜂鸟配套的sdk中提供了RT-Thread的移植 https
    发表于 10-31 09:02

    ESP8266ESP32开发板常见的2种下载方式

    协议,完整的 TCP/IP 协议栈以及蓝牙协议栈。用户可以使用这两款模块为现有的设备添加WIFI联网功能或蓝牙(ESP32),轻松的构建独立的网络控制器和远程控制监控设备。 ESP8266
    发表于 10-24 18:04

    集成了多功能数字音频信号处理功能的单芯片全数字音频放大器

    全数字音频放大器的工作原理基于脉冲宽度调制(PWM)技术,通过数字信号处理实现音频信号的放大与还原。
    的头像 发表于 10-21 09:40 193次阅读
    集成了多功能数字音频<b class='flag-5'>信号</b>处理功能的单芯片全数字音频放大器

    舵机PWM信号介绍!

    舵机 PWM 信号介绍 PWM(Pulse Width Modulation,脉冲宽度调制信号是舵机的核心控制方式,其通过脉冲宽度变化来
    的头像 发表于 08-22 10:59 1441次阅读

    TCA6507EVM评估模块技术解析与应用指南

    使用脉冲宽度调制强度控制。TI TCA6507EVM配有RGB LED和四个绿色LED。此外,该器件还设有板载电平转换器,用于在主机和TCA6507的不同逻辑电平之间进行转换。
    的头像 发表于 08-20 14:35 574次阅读
    TCA6507EVM评估<b class='flag-5'>模块</b>技术解析与应用指南

    KA7500B脉冲宽度调制方式的开关稳压器控制器电路

    ICF KA7500B是脉冲宽度调制方式的开关稳压器控制器电路,由5V基准电压、振荡器、误差放大器、比较器、FF (触发器) 、输出控制电路、输出晶体管和死区时间比较器等电路构成,输出晶体管能够
    发表于 08-18 17:10 0次下载

    STM32+esp8266连接机智云,上传温湿度数据并控制继电器开关(平台配置、代码生成、代码移植)

    本教程将详细介绍如何将STM32微控制器与ESP8266Wi-Fi模块连接到机智云平台,实现温湿度数据的上传与继电器的远程控制。通过此过程,您将学会如何配置机智云平台,烧录ESP8266固件,移植
    的头像 发表于 07-15 18:54 742次阅读
    STM32+<b class='flag-5'>esp8266</b>连接机智云,上传温湿度数据并控制继电器开关(平台配置、代码<b class='flag-5'>生成</b>、代码移植)

    开关电源三种控制模式:PWM/PFM/PSM

    摘要 本文详细介绍了开关电源的三种主要调制方式:PWM(脉冲宽度调制)、PFM(脉冲频率调制)和PSM(脉冲跨周期
    发表于 06-09 16:11

    单片机实例项目:ESP8266串口WIFI

    单片机实例项目:ESP8266串口WIFI,推荐下载!
    发表于 06-03 21:01

    ESP8266烧录与机智云一键配网教程

    ESP8266模块因其低成本和高性能,广泛应用于智能家居和工业自动化等领域。机智云平台提供了一键配网功能,简化了设备的联网过程。本教程将详细介绍如何使用ESP8266进行烧录,并通过机
    的头像 发表于 05-24 11:04 1549次阅读
    <b class='flag-5'>ESP8266</b>烧录与机智云一键配网教程

    【瑞萨RA2L1入门学习】+PWM呼吸灯

    电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字信号对模拟电路进行控制的一种非常有效的技术。脉冲宽度调制是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量
    发表于 03-30 22:28

    请问DLP4500触发器脉冲宽度可以调整吗?

    DLP4500触发器脉冲宽度可以调整吗?使用DLP LightCrafter 4500 EVM GUI似乎不能对这一参数进行调整。需要将DLP投影仪的触发信号输给Point Grey相机进行同步,但由于脉冲宽度太小无法触发成功
    发表于 02-28 08:13

    CW32模块使用 ESP01S WIFI模块

    为现有的设备添加联网功能,也可以构建独立的网络控制器。即使在不了解其原理的情况下,只要有一定的串口知识理解,那么就可以轻松上手该模块,进而实现手机WiFi操作。功能特点:基于ESP8266芯片开发,模组集成了透传功能,即买即用,
    的头像 发表于 01-23 13:08 1169次阅读
    CW32<b class='flag-5'>模块</b>使用 <b class='flag-5'>ESP</b>01S <b class='flag-5'>WIFI</b><b class='flag-5'>模块</b>