查看: 1711|回复: 0

[评测分享] 【ESP32-E Arduino开发板】-控制外接LED灯

[复制链接]
  • TA的每日心情
    奋斗
    昨天 21:59
  • 签到天数: 2299 天

    连续签到: 381 天

    [LV.Master]伴坛终老

    发表于 2021-7-4 22:49:58 | 显示全部楼层 |阅读模式
    分享到:
        FireBeetle ESP32-E是一款基于ESP-WROOM-32E双核芯片的主控板,它专为IoT设计。它支持WiFi和蓝牙双模通信并具有体积小巧、超低功耗、板载充电电路、接口易用等特性。可灵活的用于家庭物联网改装、工业物联网改装、可穿戴设备等。   通过和IFTTT等物联网平台的连接,可轻松制作出独有的特色物联网智能家居系统。
       今天再与大家分享一下点亮WS2812指示灯与外接LED灯的简单实验。
       说到WS2812指示灯,前面已经分享了该板卡的外观指示图,WS2812指示灯是使用5/D8引脚控制的RGB灯珠,控制RGB灯珠需要Arduino IDE中加载第三方库,FastLED是一款功能强大却简单易用的可以控制WS2812、LPD8806等LED光带的Arduino第三方库。因此在Arduino IDE中的“库管理器”中搜索“FastLED”,然后找到并安装,接下来才方便调用其控制LED灯的库函数。
    搜索第三方库.png
           然后编写控制WS2812指示灯驱动代码:
    1. #include <FastLED.h>

    2. #define NUM_LEDS 1

    3. #define DATA_PIN 5
    4. #define CLOCK_PIN 13

    5. // Define the array of leds
    6. CRGB leds[NUM_LEDS];

    7. void setup() {
    8.     FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);  // GRB ordering is assumed
    9. }

    10. void loop() {
    11.   //灯珠显示红色
    12.   leds[0] = CRGB::Red;
    13.   FastLED.show();
    14.   delay(500);
    15.   // 灯珠显示绿色
    16.   leds[0] = CRGB::Green;
    17.   FastLED.show();
    18.   delay(500);
    19.   // 灯珠显示蓝色
    20.   leds[0] = CRGB::Blue;
    21.   FastLED.show();
    22.   delay(500);
    23. }
    复制代码
        然后编译上传,结果并没有达到预期的闪灯的效果,只是一个亮灯的状态,原以为是间隔时间太短,三种颜色会相互覆盖,结果修改了时间参数,效果也一样。重新给开发板上电,WS2812指示灯状态一样。然后加了“leds[0] = CRGB::Black;”语句,延时足够长时间也未见WS2812指示灯熄灭,暂且还未找到问题,不知道其它坛友有没有遇到相同的情况。
    点亮WS2812指示灯.jpg
          与上期的帖子一样,再来实现点亮一个外置的LED灯。由引脚分布图,选定17/D10引脚做为连接外置LED灯的正极,导线上加了一个510Ω的电阻作为上拉保护电阻,LED灯的负极直接与板上的GND相连接。然后编写点灯程序:
    1. #define LED_BUILTIN 17
    2. // the setup function runs once when you press reset or power the board
    3.     void setup() {
    4.       // initialize digital pin LED_BUILTIN as an output.
    5.       pinMode(LED_BUILTIN, OUTPUT);
    6.     }

    7.     // the loop function runs over and over again forever
    8.     void loop() {
    9.       digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
    10.       delay(1000);                       // wait for a second
    11.       digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
    12.       delay(1000);                       // wait for a second
    13.     }
    复制代码
         工程编写如下图所示:
    点亮外置LED灯.png
           编译上传后,重新给开发板上电,外置LED灯闪烁效果如下:
    外置灯闪烁.gif
          此次点灯实验就介绍到这里,感谢电路城提供的技术交流平台,关于无线传输功能,咱们下期再会。

    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-11-23 08:59 , Processed in 0.121219 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.