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
    +关注

    关注

    237

    文章

    22421

    浏览量

    645791
  • PWM
    PWM
    +关注

    关注

    114

    文章

    4885

    浏览量

    209820
  • ESP8266
    +关注

    关注

    50

    文章

    946

    浏览量

    43870
收藏 人收藏

    评论

    相关推荐

    负输出反激脉冲宽度调制器UC3572数据表

    电子发烧友网站提供《负输出反激脉冲宽度调制器UC3572数据表.pdf》资料免费下载
    发表于 04-11 10:42 0次下载
    负输出反激<b class='flag-5'>脉冲宽度调制</b>器UC3572数据表

    先进的调节脉冲宽度调制器UC1524A系列数据表

    电子发烧友网站提供《先进的调节脉冲宽度调制器UC1524A系列数据表.pdf》资料免费下载
    发表于 04-07 15:40 0次下载
    先进的调节<b class='flag-5'>脉冲宽度调制</b>器UC1524A系列数据表

    调节脉冲宽度调制器UCx52xA数据表

    电子发烧友网站提供《调节脉冲宽度调制器UCx52xA数据表.pdf》资料免费下载
    发表于 04-01 15:34 0次下载
    调节<b class='flag-5'>脉冲宽度调制</b>器UCx52xA数据表

    脉冲宽度调制(PWM):工程机械控制器的常见技术

    在电子领域中,脉冲宽度调制(PWM)是一项广泛应用的技术。通过改变信号脉冲宽度来调整输出信号的平均功率,实现对电压或电流的有效控制。在工程机械控制器中,PWM功能更是发挥着至关重要的
    的头像 发表于 03-06 13:58 358次阅读
    <b class='flag-5'>脉冲宽度调制</b>(PWM):工程机械控制器的常见技术

    为什么工程机械控制器需要脉冲宽度调制功能

    在电子领域中,脉冲宽度调制(PWM)是一项广泛应用的技术。通过改变信号脉冲宽度来调整输出信号的平均功率,实现对电压或电流的有效控制。在工程机械控制器中,PWM功能更是发挥着至关重要的
    的头像 发表于 02-23 10:17 163次阅读

    PWM脉冲宽度调制原理

    我们已经可以用GPIO控制LED灯一闪一闪亮晶晶了,这样只有亮和灭的状态似乎还是太简单了,能不能对LED的亮度进行调整呢? 当然没问题,这就要用到接下来学习的PWM脉冲宽度调制了。 PWM
    的头像 发表于 11-27 11:37 483次阅读
    PWM<b class='flag-5'>脉冲宽度调制</b>原理

    ESP8266 WiFi库文件资料

    ESP8266WiFi库文件
    发表于 09-25 07:37

    关于PWM脉冲宽度调制,你懂多少?

    其实关于PWM脉冲宽度调制讲的最详细的应该在电力电子里面,然而平时用的最多的就是在一些的程序控制里面。
    的头像 发表于 07-19 16:49 1638次阅读
    关于PWM<b class='flag-5'>脉冲宽度调制</b>,你懂多少?

    使用PWM或脉冲宽度调制管理LED亮度和RGB LED颜色

    电子发烧友网站提供《使用PWM或脉冲宽度调制管理LED亮度和RGB LED颜色.zip》资料免费下载
    发表于 07-12 09:13 0次下载
    使用PWM或<b class='flag-5'>脉冲宽度调制</b>管理<b class='flag-5'>LED</b>亮度和RGB <b class='flag-5'>LED</b>颜色

    认知里的PWM脉冲宽度调制

    针对PWM,官方的解释是这样:PWM,也称脉冲宽度调制,它是一种模拟控制方式
    的头像 发表于 07-07 14:37 1100次阅读
    认知里的PWM<b class='flag-5'>脉冲宽度调制</b>

    什么是脉冲宽度调制?使用按键来控制PWM的占空比

    那先搬出一段概念:脉冲宽度调制(英语:Pulse Width Modulation,缩写:PWM),简称脉宽调制,是将模拟信号变换为脉冲的一种技术,一般变换后
    的头像 发表于 06-28 17:37 1776次阅读
    什么是<b class='flag-5'>脉冲宽度调制</b>?使用按键来控制PWM的占空比

    使用Arduino进行脉冲宽度调制(PWM)并观察示波器信号

    电子发烧友网站提供《使用Arduino进行脉冲宽度调制(PWM)并观察示波器信号.zip》资料免费下载
    发表于 06-27 09:15 0次下载
    使用Arduino进行<b class='flag-5'>脉冲宽度调制</b>(PWM)并观察示波器<b class='flag-5'>信号</b>

    ESP8266ESP32上的WiFi Webradio

    电子发烧友网站提供《ESP8266ESP32上的WiFi Webradio.zip》资料免费下载
    发表于 06-13 11:38 0次下载
    <b class='flag-5'>ESP8266</b>或<b class='flag-5'>ESP</b>32上的<b class='flag-5'>WiFi</b> Webradio

    ESP8266如何在没有模拟输入的情况下处理模拟信号

    一些模块没有它。我需要 ADC 处理。 好吧,这是完全可能的,这里是如何做到的。 有 4 件基本事情需要完成: 将模拟信号转换为脉冲宽度调制 (PWM) 在任何 GPIO 上读取 PWM 读取
    发表于 05-24 09:10

    ESP8266 WIFI继电器初识

    ; 2、ESP8266模块,此文用的是安信可ESP-01S版本; 3、WIFI继电器,配合ESP8266
    发表于 04-21 14:16 5次下载
    <b class='flag-5'>ESP8266</b> <b class='flag-5'>WIFI</b>继电器初识