当前位置: 首页 > news >正文

【Arduino库之:FastLED库】

第一:基础

        led [ 0 ] = CRGB::Red;  //为第一个灯珠设置红色

        FastLED.show();   //这个作用才会显示

示例程序:

#include <FastLED.h>

#define NUM_LEDS 8

#define DATA_PIN 7

#define CLOCK_PIN 13

CRGB leds[NUM_LEDS];

CRGB myGRBcolor(0, 0, 255);

void setup() {

  FastLED.addLeds<WS2812, DATA_PIN, RGB>(leds, NUM_LEDS);

  FastLED.setBrightness(255);

}

void loop() {

  for (int i = 0; i < 255; i++) {

    myGRBcolor.r = 0;

    myGRBcolor.g =i;

    myGRBcolor.b = 0;

    fill_solid(leds, NUM_LEDS, myGRBcolor);

    FastLED.show();

  }

  delay(1000);

}

第二:相当于增加了批量显示

        fill_solid(leds, number , CRGB::Color) ; //leds 是建立的对象起始地址,如果不想要从第一个LED开始显示,那就对应开始的地址 : leds + i ,对number个led点亮为color,这里的起始到结尾以及颜色都是可以修改的

        FastLED.show();  //同样要搭配这个函数

示例程序:

#include "FastLED.h"            // 此示例程序需要使用FastLED库

#define NUM_LEDS 21             // LED灯珠数量

#define LED_DT 7                // Arduino输出控制信号引脚

#define LED_TYPE WS2812         // LED灯带型号

#define COLOR_ORDER GRB         // RGB灯珠中红色、绿色、蓝色LED的排列顺序

uint8_t max_bright = 255 ;     // LED亮度控制变量,可使用数值为 0 ~ 255, 数值越大则光带亮度越高

CRGB leds[NUM_LEDS];     // 建立光带leds

//HSV方法定义颜色  

CHSV myHSVcolor(80,255,255);    //HSV方法定义颜色  myHSVcolor(色调,饱和度,明亮度)

void setup() {

  LEDS.addLeds<LED_TYPE, LED_DT, COLOR_ORDER>(leds, NUM_LEDS);  // 初始化光带

  FastLED.setBrightness(max_bright);                            // 设置光带亮度

}

void loop () {                

  //以下演示变色条反复摆动

  for (int i = 0; i < NUM_LEDS; i++){

    myHSVcolor.h+=10;  //修改HSV定义颜色的单一数值

    fill_solid(leds+i, 3, myHSVcolor);

    FastLED.show();

    delay(50);

  }  

  for (int i = NUM_LEDS; i >0 ; i--){

    myHSVcolor.h+=10;  //修改HSV定义颜色的单一数值

    fill_solid(leds+i, 3, myHSVcolor);

    FastLED.show();

    delay(50);

  }

}

第三:自定义颜色

    CRGB myRGB( 40,50,60 ) ;  //这里的40 50 60 对应RGB的值,使用时直接无缝替换Red等

    //当然这里的RGB数值并不是定义了就不变量,可以通过myRGB.r = 20 ; 设置r也就是红色为20

    //来修改r值,如果一直变化 ,可以达到渐变的效果

第四:直观的显示颜色的方法 HSV

    CHSV myHSV ( 30 ,40 ,50 ) ;   //   分别对应色调,饱和度,明亮度 范围都是0~255

    //饱和度在最大值时达到本来颜色

    //同样可以修改

    myHSV.h++;

第五:更加灵活的显示方式彩虹rainbow显示法:

    fill_rainbow( leds , 30 , 0) ;  //分别对应对象起始地址,显示个数,色盘的起始色                (与360度 为一圈对应)

    //上面这里命令似乎有点问题,这个彩虹渐变的间隔怎样,就是每两个灯珠之间的H                值相差多少,它是一个默认值,下面这个命令就可以修改了,只是加了一个最后的参数值

    fill_ranbow( leds ,30 ,0 ,5) ; //这里的5就是差值

第六:另一个灵活的显示方式

    //上面的方式其实有一个弊端,它的亮度值是不可以调节的,如果想使用渐变的过程                中亮度值也要改变,那么就推荐使用这个函数

    fill_fradient_RGB(leds , start ,CRGB::Color , end ,CRGB::Color );

    //这个是标记从开始灯珠以及对应颜色一直到结束灯珠以及对应颜色

    //中间的fastled库会自动渐变

    //改变亮度值

    fill_gradient_RGB ( leds, 0 ,CRGB( 20,0,0), 30 , CRGB ( 20 , 20 , 30 ));

    //这里的CRGB不可以和CHSV可以替换

    //那想要替换怎么办呢

    fill_gradient( leds , start , CHSV () , end , CHSV ( ) , mode ) ;

    //SHORTEST_HUES 表示mode中沿着短的路线走,对应LONGEST_HUES

第七: 自带的光带模式

    fill_palette ( leds ,30, start _color_number ,8 ,OceanColors_p,255,LINEARBLEND );      

        //就是填充色板,他有一个自带的色板

        //leds是灯带对象的名字。

        //30代表灯带的灯珠数量。

        //start_color_number 起始颜色的序号

         //8 是灯珠色差   255是亮度

         //RainbowColors_p   色板的名称

         //有很多色板, OceanColors_p ,CloudColors_p,LavaColors_p,ForestColors_p

         //RainbowColors_p,RainbowStripeColors_p,PartyColors_p,HeatColors_p

        //255是亮度。

        //LINEARBLEND 最后一个是颜色过渡效果,LINEARBLEND是一种线性过渡效果 ,非NOBLEND。

相关文章:

【Arduino库之:FastLED库】

第一&#xff1a;基础 led [ 0 ] CRGB::Red; //为第一个灯珠设置红色 FastLED.show(); //这个作用才会显示 示例程序&#xff1a; #include <FastLED.h> #define NUM_LEDS 8 #define DATA_PIN 7 #define CLOCK_PIN 13 CRGB leds[NUM_LEDS]; CRGB myGRBcolor(0…...

两道面试题秒杀你的C++基础!

大家好&#xff0c;我是光城&#xff0c;今天发两个非常重要的面试题&#xff0c;可以留言区说出你的答案&#xff0c;这两个题目都比较重要&#xff0c;看你能答对不&#xff1f; 1.C中初始化变量有几种方式&#xff0c;各自有什么区别&#xff1f; 或者说Initialization分为哪…...

回归预测 | MATLAB实现SMA+WOA+BOA-LSSVM基于黏菌算法+鲸鱼算法+蝴蝶算法优化LSSVM回归预测

回归预测 | MATLAB实现SMAWOABOA-LSSVM基于黏菌算法鲸鱼算法蝴蝶算法优化LSSVM回归预测 目录 回归预测 | MATLAB实现SMAWOABOA-LSSVM基于黏菌算法鲸鱼算法蝴蝶算法优化LSSVM回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 MATLAB实现SMAWOABOA-LSSVM基于黏菌算法…...

柔性数组(Flexible Array Members)在C语言中的应用

什么是柔性数组&#xff1f; 在C语言中&#xff0c;柔性数组&#xff08;Flexible Array Members&#xff0c;FAMs&#xff09;是C99标凈引入的一种便捷的数据结构&#xff0c;用于声明具有可变大小数组的结构体。柔性数组通常用于当结构体的大小在编译时不确定&#xff0c;但…...

华为手环配置技巧

前言 华为手环作为生活健康辅助设备发挥不可忽视的作用&#xff0c;但每次更换手环后需要重新配置。华为手环不仅有健康监测、消息通知、天气推送、离线支付、公交卡、运动锻炼、等功能&#xff0c;还有倒计时、计时器、手电筒、闹钟、等小工具。下文介绍如何进行配置。 配置…...

2023全球数字贸易大赛--什么是 DID 身份,中青校园APP,全球碳交易=树根格致,多元空间=购物时代的web3.0,超喵Overview

目录 什么是 DID 身份,为什么需要 DID 1. 中心化身份的问题 2. 为什么 DID 一定会出现...

有序表常见题型

给定一个数组arr和两个整数a和b求arr中有多少个子数组累加和在a到b这个范围上返回达标的子数组数量 如【3&#xff0c;6&#xff0c;1&#xff0c;9&#xff0c;2】达标的子数组通过暴力求解的方式时间复杂度为O&#xff08;N的三次方&#xff09;【找每个子数组占用O&#xf…...

【开源】基于JAVA语言的桃花峪滑雪场租赁系统

项目编号&#xff1a; S 036 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S036&#xff0c;文末获取源码。} 项目编号&#xff1a;S036&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 游客服务2.2 雪场管理 三、数据库设…...

【开源】基于Vue.js的图书管理系统

文末获取源码&#xff0c;项目编号&#xff1a; S 066 。 \color{red}{文末获取源码&#xff0c;项目编号&#xff1a;S066。} 文末获取源码&#xff0c;项目编号&#xff1a;S066。 目录 一、 系统介绍二、 功能模块2.1 登录注册模块2.1 图书馆模块2.2 图书类型模块2.3 图书模…...

python跑ncnn(验证模型是否转换成功)

为了转ncnn模型是否成功&#xff0c;用python验证一下先 pip install ncnn分割模型的验证代码 import ncnn import cv2 import numpy as np# 创建ncnn的网络对象 net ncnn.Net()# 加载ONNX模型 net.load_param(E:\\Android_Projects\\ncnn-android-deeplabv3plus-main\\app\…...

FL Studio 21.2.1.3859中文破解激活版2024免费下载安装图文教程

FL Studio 21.2.1.3859中文破解激活版是我见过更新迭代最快的宿主软件&#xff0c;没有之一。FL Studio12、FL Studio20、FL Studio21等等。有时甚至我刚刚下载好了最新版本&#xff0c;熟悉了新版本一些好用的操作&#xff0c;Fl Studio就又推出了更新的版本&#xff0c;而且F…...

人工智能发展史

人工智能&#xff08;AI&#xff09;的发展史是一段跨越数十年的旅程&#xff0c;涵盖了从早期理论探索到现代技术革新的广泛内容。人工智能的发展历程展示了从最初的概念探索到现代技术突破的演变。尽管经历了多次起伏&#xff0c;但AI领域持续进步&#xff0c;不断拓展其应用…...

【面试经典 150 | 二分查找】搜索插入位置

文章目录 写在前面Tag题目来源题目解读解题思路方法一&#xff1a;二分查找闭区间左闭右开区间开区间总结 知识总结写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主&#xff0c…...

DAPP开发【06】nodejs安装与npm路径更换

windows系统在执行用户命令时顺序 windows系统在执行用户命令时&#xff0c;若用户未给出文件的绝对路径&#xff0c; 则 &#xff08;1&#xff09;首先在当前目录下寻找相应的可执行文件、批处理文件等&#xff1b; &#xff08;2&#xff09;若找不到&#xff0c;再依次在系…...

数据结构奇妙旅程之顺序表和链表

꒰˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好&#xff0c;我是xiaoxie.希望你看完之后,有不足之处请多多谅解&#xff0c;让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN …...

vitepress的使用

创建项目并启动项目 // 1.创建项目,直接在空项目下安装vitepress(npm/yarn等都可以,这个可以看官网,官网给了好几种安装方式) yarn add -D vitepress // 2.初始化配置项目(npm/官网也给了多种包管理工具的安装方式) npx vitepress init // 初始化命令执行完会遇到以下几个问题…...

Discuz论坛自动采集发布软件

随着网络时代的不断发展&#xff0c;Discuz论坛作为一个具有广泛用户基础的开源论坛系统&#xff0c;其采集全网文章的技术也日益受到关注。在这篇文章中&#xff0c;我们将专心分享通过输入关键词实现Discuz论坛的全网文章采集&#xff0c;同时探讨采集过程中伪原创的发布方法…...

B树在数据库的应用

B树&#xff08;B-tree&#xff09;是一种自平衡的树状数据结构&#xff0c;广泛应用于数据库和文件系统等领域&#xff0c;其设计的目标是提供一种高效的插入、删除和查找操作。B树的设计是为了在磁盘等存储介质上存储和操作大量的数据。 主要特点包括&#xff1a; 平衡性&a…...

Android 源码编译

一&#xff0c;虚拟机安装 ​ 1.1 进入https://cn.ubuntu.com/download中文官网下载iso镜像 1.2 这里我们下载Ubuntu 18.04 LTS 1.3虚拟VM机安装ubuntu系统&#xff0c;注意编译源码需要至少16G运行内存和400G磁盘空间&#xff0c;尽量设大点 二 配置编译环境 2.1 下载andr…...

信而泰 SSL测试方法介绍

[本文介绍在ALPS平台上进行SSL测试的内容和方法] 什么是SSL SSL全称是Secure Sockets Layer&#xff0c;指安全套接字协议&#xff0c;为基于TCP的应用层协议提供安全连接&#xff1b;SSL介于TCP/IP协议栈的第四层和第五层之间&#xff0c;广泛用于电子商务、网上银行等。 SSL…...

css实现圆环展示百分比,根据值动态展示所占比例

代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)

Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败&#xff0c;具体原因是客户端发送了密码认证请求&#xff0c;但Redis服务器未设置密码 1.为Redis设置密码&#xff08;匹配客户端配置&#xff09; 步骤&#xff1a; 1&#xff09;.修…...

技术栈RabbitMq的介绍和使用

目录 1. 什么是消息队列&#xff1f;2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...

Mysql中select查询语句的执行过程

目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析&#xff08;Parser&#xff09; 2.4、执行sql 1. 预处理&#xff08;Preprocessor&#xff09; 2. 查询优化器&#xff08;Optimizer&#xff09; 3. 执行器…...

Linux 中如何提取压缩文件 ?

Linux 是一种流行的开源操作系统&#xff0c;它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间&#xff0c;使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的&#xff0c;要在 …...

如何更改默认 Crontab 编辑器 ?

在 Linux 领域中&#xff0c;crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用&#xff0c;用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益&#xff0c;允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...

Rust 开发环境搭建

环境搭建 1、开发工具RustRover 或者vs code 2、Cygwin64 安装 https://cygwin.com/install.html 在工具终端执行&#xff1a; rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu ​ 2、Hello World fn main() { println…...

DiscuzX3.5发帖json api

参考文章&#xff1a;PHP实现独立Discuz站外发帖(直连操作数据库)_discuz 发帖api-CSDN博客 简单改造了一下&#xff0c;适配我自己的需求 有一个站点存在多个采集站&#xff0c;我想通过主站拿标题&#xff0c;采集站拿内容 使用到的sql如下 CREATE TABLE pre_forum_post_…...