jinglixixi 发表于 2021-9-23 12:32

[ESP32-Audio-Kit音频开发板测评] WS2812彩色灯带控制

<div class='showpostmsg'> 本帖最后由 jinglixixi 于 2021-9-25 13:15 编辑

<p>ESP32-Audio-Kit音频开发板配合库文件FastLED.h的使用能轻松地控制WS2812彩色灯带的显示效果,所用的驱动引脚及灯带的点数均可通过参数进行调整。</p>

<p>以7点彩灯带为例,其显示程序如下:</p>

<pre>
<code class="language-cpp">#include &lt;FastLED.h&gt;
#define NUM_LEDS 7
#define DATA_PIN  5
CRGB leds;
void setup() {
       FastLED.addLeds&lt;WS2812, DATA_PIN, RGB&gt;(leds, NUM_LEDS);  // GRB ordering is typical
}

void loop() {
  leds = CRGB::Red;
  leds = CRGB::Green;
  leds = CRGB::Blue;
  leds = CRGB::Red+CRGB::Green;
  leds = CRGB::Red+CRGB::Blue;
  leds = CRGB::Green+CRGB::Blue;
  leds = CRGB::Green+CRGB::Blue+CRGB::Red;
  FastLED.show();
  delay(500);
  leds = CRGB::Black;
  leds = CRGB::Black;
  leds = CRGB::Black;
  leds = CRGB::Black;
  leds = CRGB::Black;
  leds = CRGB::Black;
  leds = CRGB::Black;
  FastLED.show();
  delay(500);
}</code></pre>

<p>经编译和上传,其结果如图1所示,图2是其运行效果。</p>

<p></p>

<p>图1完成上传</p>

<p>图2显示效果</p>

<p>&nbsp;</p>

<p>对于60点的彩色灯带,其显示程序如下:</p>

<pre>
<code class="language-cpp">#include &lt;FastLED.h&gt;
#define NUM_LEDS 60
#define DATA_PIN 5
CRGB leds;

void setup() {
       FastLED.addLeds&lt;WS2812, DATA_PIN, RGB&gt;(leds, NUM_LEDS);  // GRB ordering is typical
}

void loop() {
  int i;
  for(i=0;i&lt;10;i++)
{
  leds = CRGB::Red;
  leds = CRGB::Green;
  leds = CRGB::Blue;
  leds = CRGB::Red+CRGB::Green;
  leds = CRGB::Red+CRGB::Blue;
  leds = CRGB::Green+CRGB::Blue;
  }
  FastLED.show();
  delay(500);
  for(i=0;i&lt;10;i++)
  {
  leds = CRGB::Black;
  leds = CRGB::Black;
  leds = CRGB::Black;
  leds = CRGB::Black;
  leds = CRGB::Black;
  leds = CRGB::Black;
  }
  FastLED.show();
  delay(500); 
}</code></pre>

<p>其运行效果如图3所示:</p>

<p>图3显示效果</p>

<p></p>
</div><script>                                        var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;"   style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
                                       
                                        if(parseInt(discuz_uid)==0){
                                                                                                (function($){
                                                        var postHeight = getTextHeight(400);
                                                        $(".showpostmsg").html($(".showpostmsg").html());
                                                        $(".showpostmsg").after(loginstr);
                                                        $(".showpostmsg").css({height:postHeight,overflow:"hidden"});
                                                })(jQuery);
                                        }                </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>

Jacktang 发表于 2021-9-24 07:24

<p>灯很炫酷,</p>

<p>代码中对于60点的RGB灯带显示控制是怎么方式,PWM?</p>

se7ens 发表于 2021-9-24 09:52

<p>正好在玩这个灯,你这个例子不错</p>

<p>回头我也试试</p>

<p>先谢谢了</p>

jinglixixi 发表于 2021-9-24 10:08

se7ens 发表于 2021-9-24 09:52
正好在玩这个灯,你这个例子不错

回头我也试试

先谢谢了

<p><img height="48" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/handshake.gif" width="48" /></p>

jinglixixi 发表于 2021-9-24 10:13

Jacktang 发表于 2021-9-24 07:24
灯很炫酷,

代码中对于60点的RGB灯带显示控制是怎么方式,PWM?

<p>&nbsp;</p>

<p>应该是类似的东西,因为提供色彩值和亮度值均可给予响应。</p>

se7ens 发表于 2021-10-11 14:04

<p>可以发一下FastLED.h文件吗</p>

<p>我在IDE里找不到这个</p>

<p>多谢了</p>

jinglixixi 发表于 2021-10-11 14:26

se7ens 发表于 2021-10-11 14:04
可以发一下FastLED.h文件吗

我在IDE里找不到这个

多谢了

<p>要在ArduinoIDE中编写程序,需添加第三方的FastLED库,其添加与使用方法为:</p>

<p>1.选取&ldquo;项目&rdquo;菜单下&ldquo;加载库&rdquo;的&ldquo;管理库&rdquo;选项,在库管理器的搜索栏,输入&ldquo;FastLED&rdquo;;</p>

<p>2. 在出现搜索结果后,点击&ldquo;安装&rdquo;按钮;</p>

<p>3. 在完成安装后,即可见到&ldquo;INSTALLED&rdquo;的提示,然后点击&ldquo;关闭&rdquo;以返回原界面;</p>

<p></p>

<p>在添加FastLED库之后,即可编写相应的控制程序,其操作方法为:</p>

<p>1. 选取&ldquo;文件&rdquo;菜单下的&ldquo;新建&rdquo;选项,生成一个新文件;</p>

<p>2. 在&ldquo;项目&rdquo;菜单的&ldquo;加载库&rdquo;下可见到&ldquo;FastLED&rdquo;选项,点击它即可在新文件中添加FastLED的头文件;</p>

jinglixixi 发表于 2021-10-11 16:08

se7ens 发表于 2021-10-11 14:04
可以发一下FastLED.h文件吗

我在IDE里找不到这个

多谢了

<p>已发出回复,你看一下。</p>

se7ens 发表于 2021-10-11 23:33

jinglixixi 发表于 2021-10-11 14:26
要在ArduinoIDE中编写程序,需添加第三方的FastLED库,其添加与使用方法为:

1.选取&ldquo;项目&rdquo ...

<p>可以了,谢谢</p>

jinglixixi 发表于 2021-10-12 07:48

se7ens 发表于 2021-10-11 23:33
可以了,谢谢

<p><img height="48" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/handshake.gif" width="48" /></p>
页: [1]
查看完整版本: [ESP32-Audio-Kit音频开发板测评] WS2812彩色灯带控制