ws2812 arduino

问题 乱闪 电源问题 gpio 系统问题 中断式发送 asrpro 

上电初始化 引脚 输出 并 写入0

系统启动后 设置引脚复用 gpio (据说为电源问题,调低亮度可,但usb上还是出现

双循环闪

呼吸灯

计数

int s0[3] = {0,11,10};

int s1[3] = {1,0,11};

int *a[2]= {s0,s1};

// NeoPixel Ring simple sketch (c) 2013 Shae Erisson
// Released under the GPLv3 license to match the rest of the
// Adafruit NeoPixel library

#include <Adafruit_NeoPixel.h>
#include <MsTimer2.h>
#ifdef __AVR__
 #include <avr/power.h> // Required for 16 MHz Adafruit Trinket
#endif

// Which pin on the Arduino is connected to the NeoPixels?
#define PIN        6 // On Trinket or Gemma, suggest changing this to 1

// How many NeoPixels are attached to the Arduino?
#define NUMPIXELS 12 // Popular NeoPixel ring size

// When setting up the NeoPixel library, we tell it how many pixels,
// and which pin to use to send signals. Note that for older NeoPixel
// strips you might need to change the third parameter -- see the
// strandtest example for more information on possible values.
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

#define DELAYVAL 50 // Time (in milliseconds) to pause between pixels

void setup() {
  // These lines are specifically to support the Adafruit Trinket 5V 16 MHz.
  // Any other board, you can remove this part (but no harm leaving it):
#if defined(__AVR_ATtiny85__) && (F_CPU == 16000000)
  clock_prescale_set(clock_div_1);
#endif
  // END of Trinket-specific code.

  pixels.begin(); // INITIALIZE NeoPixel strip object (REQUIRED)
  MsTimer2::set(2000,tim);
  MsTimer2::start();

}
int ii = 0;

void tim()
{
  ii = ii+1;
}

int s0[3] = {0,11,10};
int s1[3] = {1,0,11};
int *a[2]= {s0,s1};

#define nLeds 12;


void loop()
{
  for(int i=0;i<NUMPIXELS/2;i++){
    wakeupLed();
    //pixels.setBrightness(255/(i+1));
  }
  
  for(int i = 1;i<13;i++)
  {
    breathloop(10*ii,1000*ii);
    prograsbar(i);

  }
  
  looprun(500);

}

//呼吸灯  等待中。。。
int brightness =0;
void breathloop(uint8_t wait1,int sens)
{

  int start = 10;
  int tmp = 0;
  for (int i = -start; i< start+1;i++)
  {
    //pixels.clear();
    tmp = start-abs(i);
    pixels.fill(pixels.Color(0,0,tmp));
    
 
    //pixels.setBrightness(tmp);
    pixels.show();
     if(tmp>5)
      delay(wait1);
     else
      delay(20);
  }
  delay(500);

}


int bn = 0;  //唤醒
void wakeupLed()
{
  
  //pixels.setPixelColor(0,pixels.Color(255,255,255));
  float fade = 2;
  for(int i = NUMPIXELS/2;i>=0;i--)
  {
    pixels.clear();
    int vl = 10;
    //pixels.setBrightness(255-bn*10);
    pixels.setPixelColor(i-2,pixels.Color(vl,vl,vl));
    pixels.setPixelColor(12-i,pixels.Color(vl,vl,vl));

  vl = 5;
   pixels.setPixelColor(i-1,pixels.Color(vl,vl,vl));
   pixels.setPixelColor(11-i,pixels.Color(vl,vl,vl));

  vl = 1;
   pixels.setPixelColor(i,pixels.Color(vl,vl,vl));
   pixels.setPixelColor(10-i,pixels.Color(vl,vl,vl));

    pixels.show();
    delay(60);
    bn = bn +1;

  }
  
}

void loop1()
{
  pixels.clear();
  pixels.setPixelColor(0,pixels.Color(255,255,255));
  float fade = 2;
  for(int i = 1;i<NUMPIXELS/2;i++)
  {
    int vl = 255/(pow(i+1,3));
    //pixels.setBrightness(255/(pow(i,2)));
    pixels.setPixelColor(i,pixels.Color(vl,vl,vl));
    pixels.setPixelColor(12-i,pixels.Color(vl,vl,vl));
    pixels.show();
    delay(10);

  }
  
}

//int n = 0;  //进度灯。。。
void prograsbar(int n)
{
  pixels.clear();
  for(int i = 0;i<n;i++)
  {
    pixels.setPixelColor(i,pixels.Color(0,15,0));
    pixels.show();
  }
  delay(200);
  n = (n +1)%(NUMPIXELS+1);
}


//循环灯 处理中。。。
void looprun(int wait) {


int rn = 0;
for(int s = 0;s<NUMPIXELS;s++)
{
  pixels.clear(); // Set all pixel colors to 'off'
  pixels.setBrightness(10);
  //strip.set
  int nr = 2; //显示点数
  for(int r = 0;r<nr;r++)  
  {
      rn = (s+r*NUMPIXELS/nr)%NUMPIXELS;

        if(rn > 1)
        {
            pixels.setPixelColor(rn,pixels.Color(0, 255, 0));
            pixels.setPixelColor(rn-1,pixels.Color(0, 155, 0));
            pixels.setPixelColor(rn-2,pixels.Color(0, 55, 0));
        }
        else
        {   int result = 0;
            pixels.setPixelColor(rn,pixels.Color(0, 255, 0));

            result = rn -1;  //0 0-1 -1    1
            if(result < 0 )  // -1 < 0   0
              pixels.setPixelColor(12+result,pixels.Color(0, 155, 0)); //11
            else
              pixels.setPixelColor(rn-1,pixels.Color(0, 155, 0));

            result = rn -2;  //0-2 -2    -1 
            if(result<0)  
              pixels.setPixelColor(12+result,pixels.Color(0, 55, 0)); //10
            else
              pixels.setPixelColor(rn-2,pixels.Color(0, 55, 0));
        }

  
      }//round end 
    pixels.show();   
    delay(wait); 
  }


}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/678614.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Nginx作为下载站点

grep -Ev ^$|# /usr/local/nginx/conf/nginx.conf > /opt/nginx.txt cat /opt/nginx.txt > /usr/local/nginx/conf/nginx.conf用上面的指令提取最小化的配置文件 vim /usr/local/nginx/conf/nginx.conf [rootlocalhost ~]# cat /usr/local/nginx/conf/nginx.conf worker…

充电宝哪个牌子值得买?一文看懂充电宝哪个牌子更好用!

在这个快节奏的数字时代&#xff0c;智能手机、平板电脑等电子设备已成为我们日常生活中不可或缺的一部分。然而&#xff0c;这些智能设备的电池续航能力往往难以满足我们全天候的需求&#xff0c;尤其是在出行、旅行或紧急情况下&#xff0c;电量告急成了许多人的“电量焦虑”…

【C语言训练题库】扫雷->简单小游戏!

&#x1f525;博客主页&#x1f525;&#xff1a;【 坊钰_CSDN博客 】 欢迎各位点赞&#x1f44d;评论✍收藏⭐ 目录 1. 题目 2. 解析 3. 代码 4. 小结 1. 题目 小sun上课的时候非常喜欢玩扫雷。他现小sun有一个初始的雷矩阵&#xff0c;他希望你帮他生成一个扫雷矩阵。 扫雷…

【STREAMPARK】streampark构建运行git应用

1、新建项目 2、填写git 信息 包含地址 账号 密码 以及pom&#xff08;默认读取项目根目录下的pom&#xff09; 3、添加应用 4、填写 要部署的应用的信息 &#xff0c;提交 5、然后构建运行 6、运行失败&#xff0c;查看日志详情&#xff1b;成功&#xff0c;查看应用…

DHCP、FTP

DHCP、FTP DHCP&#xff08;动态主机配置协议&#xff09; 服务器配置好了地址池 192.168.233.10 192.168.233.20 客户端从地址池当中随机获取一个ip地址&#xff0c;ip地址会发生变化&#xff0c;使用服务端提供的ip地址&#xff0c;时间限制&#xff0c;重启之后也会更换。…

对 SQL 说“不”~

开发人员注意&#xff01; 您在当前的应用程序架构中是否面临这些问题&#xff1f; 对 SQL 数据库的高吞吐量。SQL 数据库中的瓶颈。 内存数据存储将是解决问题的方案。Redis 是市场上最受欢迎的内存数据存储和缓存选项。Redis 拥有广泛的生态系统&#xff0c;因为主要科技巨…

二,几何相交-5,BO算法分析--(1)正确性

也就是说&#xff0c;BO算法有没有可能误报或者漏报&#xff1f; 一&#xff0c;为什么不会误报&#xff1f; 因为两条线段从不相邻到相邻&#xff0c;或者其中一条线段不存在到相邻&#xff0c;都会进行一次相交测试。所以不会误报。 二&#xff0c;为什么不会漏报&#xff1…

文件夹如何加密码全攻略,5个文件夹加密方法新手也能学

文件夹如何加密码&#xff1f;在这个互联网时代&#xff0c;隐私保护越来越受到大家的重视。我们在日常工作中&#xff0c;有时候会接触一些比较重要的文件&#xff0c;为了不让这些文件信息被泄露&#xff0c;所以我们可以给文件夹设置密码保护。那要怎么给文件夹设置密码呢&a…

达人邀约软件工具,券小妹邀约软件,支持商家版团长版,一键邀约达人工具

达人邀约软件&#xff1a;抖音商家、团长及快手商家的高效助手&#xff01; 券小妹邀约工具是一款专为抖音商家、团长和快手商家设计的达人邀约工具&#xff0c;主要是为了简化邀约、沟通和报名流程。 券小妹邀约工具的主要功能有&#xff1a; 1. 一键批量邀约达人 2. 批量发…

一个州凭什么引领美国量子技术革新?

不要低估一个州&#xff0c;它可能美国量子技术发展的中流砥柱。 科罗拉多州&#xff0c;产生了四位量子科学领域的诺贝尔奖得主&#xff0c;汇聚了3000多名量子科技精英&#xff0c;更拥有多家顶级量子初创公司&#xff0c;例如离子阱量子计算公司Quantinuum、原子技术公司At…

从零开始实现自己的串口调试助手(5) -实现HEX显示/发送/接收

实现HEX显示: HEX 显示 -- 其实就是 十六进制显示 --> a - 97(10) --> 61(16) 添加槽函数(bool): 实现槽函数: 注意: 注意QString 没有处理HEX显示的相关API 需要使用 toUtf-8 来 转换位QByteArry 类型&#xff0c; 利用其中的API 来处理HEX格式(toHex fromHex) vo…

Python 机器学习 基础 之 【实战案例】新闻内容分类实战

Python 机器学习 基础 之 【实战案例】新闻内容分类实战 目录 Python 机器学习 基础 之 【实战案例】新闻内容分类实战 一、简单介绍 二、新闻内容分类实战 三、数据准备 四、分词与清洗工作 1、读取数据 2、使用 jieba 分词器进行分词&#xff0c;使用 Pandas 创建Data…

【网络层】IP因特网协议解析

文章目录 IP报文结构分片TTL&#xff1a;time to live 生存时间 &#xff08;生命值&#xff09;Protocol 协议 网络层位于数据链路层与传输层之间。网络层中包含了许多协议&#xff0c;其中最为重要的协议是IP协议。网络层提供IP路由功能。 IP报文结构 版本version&#xff1…

20240604将OK3588-C的核心板刷机Buildroot之后强制横屏

20240604将OK3588-C的核心板刷机Buildroot之后强制横屏 2024/6/4 17:13 viewproviewpro-ThinkBook-16-G5-IRH:~/repo_RK3588_Buildroot20240508/kernel/arch/arm64/boot/dts/rockchip$ grep dsi0 . -R ./Makefile:dtb-$(CONFIG_ARCH_ROCKCHIP) rk3568m-serdes-evb-display-dsi…

【玩转C语言】第一讲--->C语言概念

&#x1f525;博客主页&#x1f525;&#xff1a;【 坊钰_CSDN博客 】 欢迎各位点赞&#x1f44d;评论✍收藏⭐ 目录 引言&#xff1a; 1. C语言是什么 2. C语言的辉煌历史 3. 第一个C语言程序 4. main()函数 5. printf() 函数 6. 库函数 6.1 库函数概念 7. 关键字介绍 …

巨详细Linux安装MySQL

巨详细Linux安装MySQL 1、查看是否有自带数据库或残留数据库信息1.1检查残留mysql1.2检查并删除残留mysql依赖1.3检查是否自带mariadb库 2、下载所需MySQL版本&#xff0c;上传至系统指定位置2.1创建目录2.2下载MySQL压缩包 3、安装MySQL3.1创建目录3.2解压mysql压缩包3.3安装解…

Kubernetes——Ingress详解

目录 前言——Service策略的作用 1.外部访问方案 2.使用场景和限制 2.1NodePort 2.2LoadBalancer 2.3externalIPs 2.4Ingress 3.Ingress如何实现对外服务 4.LB和Ingress结合起来实现对外服务的过程 一、Ingress 1.定义 2.组成 3.工作原理 4.总结 二、部署Nginx-I…

clickhouse学习笔记(二)数据类型

目录 一、基础数据类型 1、整数类型 2、浮点数类型 3、布尔类型 4、字符串和固定字符串 5、日期和时间类型 6、创建基础数据类型的建表语句及插入语句 二、复合数据类型 1、数组 2、元组 3、枚举类型 4、嵌套数据结构 5、Map 三、特殊数据类型 1、低基数编码&…

SwiftUI 利用 Swizz 黑魔法为系统创建的默认对象插入新协议方法(一)

功能需求 在 SwiftUI 的开发中,我们往往需要借助底层 UIKit 的“上帝之手”来进一步实现额外的定制功能。比如,在可拖放(Dragable)SwiftUI 的实现中,会缺失一些关键的回调方法让我们这些秃头码农们“欲哭无泪” 如上图所示,我们在拖放取消时将界面中的一切改变都恢复如初…

【调试笔记-20240604-Linux-为 OpenWrt-23.05 添加自己的 feed 软件包】

调试笔记-系列文章目录 调试笔记-20240604-Linux-为 OpenWrt-23.05 添加自己的 feed 软件包 文章目录 调试笔记-系列文章目录调试笔记-20240604-Linux-为 OpenWrt-23.05 添加自己的 feed 软件包 前言一、调试环境操作系统&#xff1a;Ubuntu 22.04.4 LTS编译环境调试目标 二、…