感谢太极创客提供素材

FastLED库-太极创客
太极创客B站视频

文章目录

  • 基础程序
  • 为单一灯赋值 - leds[i] = 0xFF007F;
  • 将LED光带设置为同一颜色 - fill_solid( 目标, 填充数, 颜色)
  • 将LED光带设置为渐变彩虹色 - fill_rainbow(目标, 填充数, 开始颜色, 色差)
  • 将LED光带设置为渐变色 - fill_gradient_RGB(目标, 开始位置, 开始颜色, 结束位置, 结束颜色);
  • 使用色板将LED光带设置为渐变色 - fill_palette (目标灯, 灯数量, 开始位置, 颜色增量, 预设调色板, 亮度, 过渡效果 )
  • 更新LED显示/清屏 - FastLED.show / FastLED.clear(NUM_LEDS)
  • 获得指定色板中的颜色 - ColorFromPalette
  • 逐渐熄灭LED光带 - fadeToBlackBy( 目标, 灯数量, 降低数量)
  • 设置LED光带亮度 - FastLED.setBrightness
  • 正弦函数 - beatsin8
  • 随机函数 - random8
  • 定时执行程序内容(时间间隔单位以秒计算) - EVERY_N_SECONDS –
  • 定时执行程序内容(时间间隔单位以毫秒计算) - EVERY_N_MILLISECONDS
  • 调色板palette
  • 废话

基础程序

后面基础程序都一样,只要替换fill_solid(leds, 30, CRGB::Red);显示内容。后面省略基础程序

/** fillSolid* 太极创客 http://www.taichi-maker.com/* 03/01/2018* * =====================功能说明=====================* 使用Arduino Uno开发板通过FastLED库控制WS2812光带。* fillSolid库函数使用说明。 * * 本示例程序需要Arduino第三方库FastLED。如有需要,可通过以下链接下载该库:* http://www.taichi-maker.com/homepage/download/#library-download* * 如需了解如何为Arduino IDE安装第三方库,请参见以下链接地址的视频教程:* http://www.taichi-maker.com/homepage/reference-index/arduino-library-index/install-arduino-library/*  * =====================电路连接======================* 此示例程序中,Arduino输出控制信号引脚为9号引脚。* * 如需获得详细电路连接说明图,请参阅太极创客网站中* 有关WS2812 LED光带方面的相关内容,太极创客网站地址:* *  http://WWW.TAICHI-MAKER.COM* * 此示例程序为配合太极创客制作的* 《零基础入门学用ARDUINO教程-智能应用篇》使用*/
#include "FastLED.h"            // 此示例程序需要使用FastLED库#define NUM_LEDS 30             // LED灯珠数量
#define LED_DT 9                // Arduino输出控制信号引脚
#define LED_TYPE WS2812         // LED灯带型号
#define COLOR_ORDER GRB         // RGB灯珠中红色、绿色、蓝色LED的排列顺序uint8_t max_bright = 128;       // LED亮度控制变量,可使用数值为 0 ~ 255, 数值越大则光带亮度越高CRGB leds[NUM_LEDS];            // 建立光带ledsvoid setup() { LEDS.addLeds<LED_TYPE, LED_DT, COLOR_ORDER>(leds, NUM_LEDS);  // 初始化光带FastLED.setBrightness(max_bright);                            // 设置光带亮度
}void loop () {       // fill_rainbow演示fill_solid(leds, 30, CRGB::Red);//将leds光带的从头数30个灯珠设置为红颜色。FastLED.show();delay(25);
}

为单一灯赋值 - leds[i] = 0xFF007F;

RGB赋值方式

//led赋值方式// Example 3: set color via 'hex color code' (0xRRGGBB)leds[i] = 0xFF007F;// Example 4: set color via any named HTML web colorleds[i] = CRGB::HotPink;// Example 5: set color via setRGBleds[i].setRGB( 50, 100, 150);

HSV赋值方式

  // Set color from Hue, Saturation, and Value.  // Conversion to RGB is automatic.leds[i] = CHSV( 160, 255, 255);// alternate syntaxleds[i].setHSV( 160, 255, 255);// set color to a pure, bright, fully saturated, hueleds[i].setHue( 160);

官网像素点操作说明

将LED光带设置为同一颜色 - fill_solid( 目标, 填充数, 颜色)

fill_solid(leds, 30, CRGB::Red)

以上语句将leds光带的从头数30个灯珠设置为红颜色。

fill_solid(leds+5, 3, CRGB::Red);

以上语句将leds光带的从头数第6个灯珠开始算起的3个灯珠设置为红颜色。

将LED光带设置为渐变彩虹色 - fill_rainbow(目标, 填充数, 开始颜色, 色差)

fill_rainbow(leds, 30, beginHue, deltaHue)

以上语句将leds光带的从头数30个灯珠设置为渐变彩虹色。beginHue参数为起始色调数值。deltaHue为相邻LED灯珠色调差。

fill_rainbow(leds+5, 30, 0, 1)

以上语句将leds光带的从头数30个灯珠设置为渐变彩虹色。起始色调数值为0。相邻LED灯珠色调差为1。

将LED光带设置为渐变色 - fill_gradient_RGB(目标, 开始位置, 开始颜色, 结束位置, 结束颜色);

fill_gradient_RGB(leds, 0,          CRGB::Red, 29, CRGB::Blue)

以上语句将leds光带的从头数30个灯珠设置为渐变色。灯带头部起始颜色为红色。灯带尾部结束颜色为蓝色。灯带中间为由红色到蓝色的渐变色。

fill_gradient(leds, 0, CHSV(50, 255,255) , 29, CHSV(150,255,255), SHORTEST_HUES)

以上语句将leds光带的从头数30个灯珠设置为渐变色。灯带头部起始颜色为HSV(50, 255,255)色彩。灯带尾部结束颜色为CHSV(150,255,255)色彩。灯带颜色过度采用短色调过渡方式。

fill_gradient(leds, 0, CHSV(50, 255,255) , 29, CHSV(150,255,255), LONGEST_HUES)

以上语句将leds光带的从头数30个灯珠设置为渐变色。灯带头部起始颜色为HSV(50, 255,255)色彩。灯带尾部结束颜色为CHSV(150,255,255)色彩。灯带颜色过度采用长色调过渡方式。

使用色板将LED光带设置为渐变色 - fill_palette (目标灯, 灯数量, 开始位置, 颜色增量, 预设调色板, 亮度, 过渡效果 )

fill_palette (leds, 30, 0, 8, OceanColors_p, 255, LINEARBLEND )

以上语句将leds光带的从头数30个灯珠设置为渐变色。渐变色的色彩全部来自FastLED预设色板OceanColors_p。灯带头部第一个灯珠的色板色彩序号为0,相邻的两个灯珠见色板色彩序列号差8。色彩过渡为线性过渡效果。

fill_palette(leds+5, 15, 31, 5, ForestColors_p, 255, LINEARBLEND );

以上语句将leds光带从头数的第6个灯带开始15个灯珠设置为渐变色。渐变色的色彩全部来自FastLED预设色板ForestColors_p。起始色板色彩序号为31,相邻的两个灯珠见色板色彩序列号差5。色彩过渡为线性过渡效果。

FastLED库配有8种预设色板。:haiy
CloudColors_p 云
LavaColors_p 熔岩
OceanColors_p 海洋
ForestColors_p 森林
RainbowColors_p 彩虹
RainbowStripeColors_p
PartyColors_p 派对
HeatColors_p 热

更新LED显示/清屏 - FastLED.show / FastLED.clear(NUM_LEDS)

    FastLED.clear(64);FastLED.show();

在使用FastLED库控制LED时,我们每一次更新了LED的颜色设置以后,都需要 FastLED.show(); 执行语句指令才能将我们刚刚设置好的LED颜色在LED灯珠上显示出来。这一点非常重要,请在使用使用FastLED库控制LED时务必注意这一点。

获得指定色板中的颜色 - ColorFromPalette

leds[0] = ColorFromPalette( RainbowColors_p, 0, 128, LINEARBLEND);

以上语句将leds光带的第一个灯珠设置为RainbowColors_p色板中颜色序号为0的颜色(红色)。LED亮度为128。色彩过渡为线性过渡效果(LINEARBLEND)。

leds[9] = ColorFromPalette( OceanColors_p, 120, 255, LINEARBLEND);

以上语句将leds光带的第十个灯珠设置为OceanColors_p色板中颜色序号为120的颜色。LED亮度为255。色彩过渡为线性过渡效果(LINEARBLEND)。

逐渐熄灭LED光带 - fadeToBlackBy( 目标, 灯数量, 降低数量)

#define twinkleInterval  10    //  闪烁间隔时间 (毫秒)
#define twinkleChance 800        //  闪烁数量,数值越大闪烁越多(0-255)
void loop() {      int pos = random8(NUM_LEDS);EVERY_N_MILLISECONDS( twinkleInterval ) { if( random8() < twinkleChance) {leds[pos] = ColorFromPalette( PartyColors_p, random8(255), 128, LINEARBLEND);}   }EVERY_N_MILLISECONDS( 20 ) { fadeToBlackBy( leds, NUM_LEDS, 10);}    FastLED.show(); delay(50);
}
fadeToBlackBy( leds, 30, 10);//渐灭
fadeLightBy( leds, 30, 10);//渐亮

以上语句将leds光带的30个灯珠亮度调低10。(注:LED亮度值可选数值范围为0 – 255)

设置LED光带亮度 - FastLED.setBrightness

FastLED.setBrightness(128);

以上语句将LED亮度设置为128。该亮度为最大亮度(255)的一半左右。

正弦函数 - beatsin8

beatsin8(beats_per_minute, lowest, highest);

随机函数 - random8

random8();

以上语句将返回0-255之间的随机数值。

random8(10);

以上语句将返回0-9之间的随机数值。

定时执行程序内容(时间间隔单位以秒计算) - EVERY_N_SECONDS –

EVERY_N_SECONDS(10)

以上函数所包含的程序内容将定时执行,执行时间间隔为10秒钟。

EVERY_N_SECONDS(1)

以上函数所包含的程序内容将定时执行,执行时间间隔为1秒钟。

定时执行程序内容(时间间隔单位以毫秒计算) - EVERY_N_MILLISECONDS

EVERY_N_MILLISECONDS(100)

以上函数所包含的程序内容将定时执行,执行时间间隔为100毫秒。

EVERY_N_MILLISECONDS(500)

以上函数所包含的程序内容将定时执行,执行时间间隔为500毫秒。

调色板palette

FastLED官网

像素参考

废话

导语:在当代科技的融合中,灯光艺术正变得越来越受欢迎。FastLED库作为一个功能强大的灯带控制库,为创造、探索和实现令人惊叹的灯光效果提供了无限可能。本博客将详细介绍FastLED库的功能和特点,并展示一些令人惊叹的实际应用实例。

正文:

  1. FastLED是什么?

    FastLED是一个适用于Arduino和其他微控制器平台的灯带控制库,它提供了丰富的功能和灵活的选项,为用户创建出色的灯光效果提供了良好的支持。

  2. FastLED的特点和功能

    2.1 灵活性:FastLED库允许用户控制各种类型的LED灯带,包括单色、RGB、RGBW和更多类型。它还支持不同的通信协议,如PWM、SPI等。

    2.2 强大的效果控制:FastLED提供了丰富的效果函数和算法,包括渐变、闪烁、呼吸灯、彩虹、火焰效果等。用户可以轻松地创建各种复杂的灯光效果。

    2.3 可视化编辑器:FastLED库还提供了一个可视化的在线编辑器,使用户能够通过简单的拖拽和选取来创建和调整灯光效果,无需深入编程。

    2.4 兼容性:FastLED库可以在多种平台上运行,并与其他常用的Arduino库和功能兼容。用户可以轻松集成FastLED库到自己的项目中。

  3. FastLED应用实例

    3.1 萤火虫灯效:通过使用FastLED库中的随机效果和亮度变化,可以模拟出萤火虫在夜晚飘扬的效果。这种灯光效果可以用于室内装饰、节日庆祝等场景。

    3.2 音乐可视化:结合外部音频输入,通过FastLED库可以实现灯带的音乐可视化效果。LED灯带可以根据音频节奏和音量的变化,呈现跳动、闪烁等动态的灯光效果。

    3.3 艺术装置:FastLED库为创意艺术家和设计师提供了丰富的灯光效果控制选项,可以用于艺术装置、舞台设计、展览等项目。通过FastLED库,用户可以实现灯光的无限创造和表达。

    3.4 氛围照明:利用FastLED库的渐变效果、色彩调节等功能,可以打造出舒适、温馨的氛围照明。这种灯光效果可以用于家庭、酒吧、咖啡厅等场景,营造出不同的氛围和体验。

结尾:

FastLED库是一个令人兴奋和创意无限的灯带控制库,为灯光艺术家、创意爱好者和设计师提供了许多创造的机会。通过灵活的功能和丰富的效果选项,FastLED库让用户能够轻松创造出惊人的灯光效果。无论是在室内装饰、舞台演出还是艺术装置中,FastLED库都将成为你探索互联世界的灯光艺术的得力助手。

探索互联世界的灯光艺术:FastLED库详细介绍及应用实例相关推荐

  1. STM32 HAL库详细介绍

    自从ST公司推出HAL库来替代原有的标准库,HAL库开始慢慢的被广大STM32开发者所接受,现在已经在实际的项目开发中大量使用,HAL库使得项目的移植变得简单容易,但是对于初学者而言,刚开始接触有些晦 ...

  2. Cadence每日一学_06 | OrCAD中自有默认元器件(原理图)库详细介绍

    文章目录 0.关于创建原理图库 1.如何添加/使用自有库 2.自有库详解 3.`Discrete.olb` 最近在学习小马哥的Cadence课程,该系列课程为学习笔记:使用Cadence Allegr ...

  3. Python中最常用十大图像处理库详细介绍

    本文主要介绍了一些简单易懂最常用的Python图像处理库 当今世界充满了各种数据,而图像是其中高的重要组成部分.然而,若想其有所应用,我们需要对这些图像进行处理.图像处理是分析和操纵数字图像的过程,旨 ...

  4. C++开源库详细介绍

    C++在"商业应用"方面,曾经是天下第一的开发语言,但这一桂冠已经被java抢走多年.因为当今商业应用程序类型,已经从桌面应用迅速转移成Web应 用.当Java横行天下之后,MS又 ...

  5. python基本使用-Python标准库详细介绍与基本使用方式,超详细!

    目录: Python 标准库概览概览 操作系统接口 os 模块提供了很多与操作系统交互的函数: 应该用 import os 风格而非 from os import *.这样可以保证随操作系统不同而有所 ...

  6. JSTL 标签库详细介绍资料 .

    http://blog.csdn.net/azheng270/article/details/2139528 前言 从JSP 1.1规范开始,JSP就支持在JSP中使用自定义标签了,自定义标签的广泛使 ...

  7. python标准库说明_Python标准库详细介绍与基本使用方式,超详细!

    目录: Python 标准库概览概览 操作系统接口 os 模块提供了很多与操作系统交互的函数: 应该用 import os 风格而非 from os import *.这样可以保证随操作系统不同而有所 ...

  8. arm-2d库详细介绍

    1 概述 本文档解释了 ARM-2D 的基本概念.在我们开始体验Arm-2D时,你可能会有很多问题,比如: Arm-2D 是什么? 它能解决什么问题? 目标受众是谁? Arm-2D 由什么组成? 发展 ...

  9. Simulink系列 - simulink模块库详细介绍

    (原创文章,转载请与作者联系,本文Matlab版本 R2019a) 往期回顾:SImulink仿真系列 - Simulink信号观察模块详解 上一篇:基于Matlab-Simulink 的 2FSK ...

  10. JSTL标签库详细介绍

    目录 一JSTL标签库 二.核心(Core)标签库 通用标签 循环控制标签 导入文件和URL 总结 一JSTL标签库 JSTL是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta ...

最新文章

  1. Java项目:电商书城平台系统设计和实现(java+springboot+mysql+spring+jsp)
  2. K均值聚类(KMeans)、可视化选取最佳K值、通过TSNE进行结果可视化分析、抽取核心特征因子
  3. 吴恩达机器学习笔记 —— 18 大规模机器学习
  4. SNMP功能开发简介 六 snmp功能开发阶段性总结
  5. 动态规划--目标和问题
  6. Entity Framework查询,EF执行SQl
  7. 数据科学与python语言——Matplotlib数据可视化基础
  8. jboss架构_检查Red Hat JBoss BRMS部署架构的规则和事件(第一部分)
  9. vue组件详解(一)——组件与复用
  10. oracle的redolog停止,Oracle Redo Log日志故障处理一则
  11. 程序员必知--代码规范
  12. codeblocks printf函数打印不出来_最全C语言基本程序交互函数之输出到屏幕
  13. 帮助用户更好的体验网站:jQuery的页面功能向导插件Pageguide.js
  14. 电子海图制作中坐标转换的应用与实现
  15. 初级官方卡刷包精简 添加万能ROOT
  16. 如何看linux网络慢,Linux下网速慢的问题
  17. DXF读写:标注样式组码中文说明
  18. 街霸5 android,街头霸王5手机版
  19. 【对讲机的那点事】你了解TETRA数字集群通信系统组网的模式吗?
  20. 【论文笔记】虚拟领导者控制编队机动

热门文章

  1. 华为浏览器风险提示 - 解决方案
  2. Codeforces 1059C
  3. 创建一个音乐平台(一)使用IDEA创建Maven项目并将项目转换为web项目
  4. 欢天喜地迎国庆,国产开源编程语言 RPP 1.87 公布!
  5. 使用 CCANVAS 类绘制刻度表盘
  6. 如何使用 MetaTrader 4 应用程序赚钱
  7. 制造业数字化转型实战分享1 ——信息化孤岛(数据孤岛)
  8. 【离散数学第三版第十四章】代数系统
  9. 王者营地为什么显示主宰进攻服务器,巅峰王者教学:如何让抗压路主宰游戏的走向?⑤...
  10. A Dynamic Near-Optimal Algorithm for Online Linear Programming