找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6175|回复: 44
收起左侧

WS2812BLED彩灯用STC15W204S-8单片机驱动流水灯源码

  [复制链接]
ID:824490 发表于 2022-7-28 16:22 | 显示全部楼层
单片机之路,从点一个灯开始!你能点亮一个WS2812B了吗?
回复

使用道具 举报

ID:824490 发表于 2022-7-29 11:50 | 显示全部楼层
WFX777888 发表于 2022-7-28 17:33
四排点亮了但是不同时享有流动有快有慢

建议你用结构体的方式来操作,应该比你这方式清爽多了。
  1. #define led_num 24                   //彩灯点数

  2. struct p_color   //定义彩灯点的色值结构体,方便后期操作
  3. {
  4.   u8 ur;
  5.   u8 ug;
  6.   u8 ub;
  7. };
  8. struct p_color led_tabel[led_num] ;//彩灯色值结构体数组
  9. struct p_color temp_color;         //临时色值结构体


  10. //*************************

  11. //main:

  12.         for (i=0;i<led_num*3;i++) //初始化色值
  13.          {
  14.            led_tabel[i].ur=i*3;
  15.            led_tabel[i].ug=0;
  16.            led_tabel[i].ub=0;
  17.          }

  18.     p=led_tabel;  //设定指针,指向数组

  19.     while (1)
  20.     {
  21.     ws2812b_sendall(p,72);

  22.          if(!(++i%5))
  23.           {
  24.                   //彩灯色值数组环移
  25.             temp_color=led_tabel[0] ; //暂存(点0)的色值
  26.                   for(j=0;j<led_num-1;j++) led_tabel[j]=led_tabel[j+1];// 所有点的色值COPY后一个点
  27.                   led_tabel[led_num-1]=temp_color;// 最后一个点的色值改为暂存(点0)的色值
  28.            }
  29.   }
复制代码
ws2812.rar (1.17 MB, 下载次数: 45)

评分

参与人数 1黑币 +10 收起 理由
WFX777888 + 10 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:824490 发表于 2022-8-3 17:48 | 显示全部楼层
WFX777888 发表于 2022-8-3 06:29
-------------------------------------------------------------------------------------*/

说实话,可能水平不够吧,你这代码的逻辑我看的有点晕。。。
有一点你不知你注意到了没:
WS2812在发数据过程中不要被打断,不能改几个值,发几个,再改几个,而是要一次性改完所有的点值,再一次性发出,发送过程中,中断都要关闭。

回复

使用道具 举报

ID:824490 发表于 2022-8-4 08:49 | 显示全部楼层
WFX777888 发表于 2022-8-3 20:42
我就是爱好这东西没事玩玩

16灯串(4行4列)单色单灯4段流水
流程
第1行
第2行
第3行
第4行
灯1
灯2
灯3
灯4
灯5
灯6
灯7
灯8
灯9
灯10
灯11
灯12
灯13
灯14
灯15
灯16
发送数组1(16灯*3=48B)
50,0,0
0,0,0
0,0,0
0,0,0
50,0,0
0,0,0
0,0,0
0,0,0
50,0,0
0,0,0
0,0,0
0,0,0
50,0,0
0,0,0
0,0,0
0,0,0
延时
发送数组2(16灯*3=48B)
0,0,0
50,0,0
0,0,0
0,0,0
0,0,0
50,0,0
0,0,0
0,0,0
0,0,0
50,0,0
0,0,0
0,0,0
0,0,0
50,0,0
0,0,0
0,0,0
延时
发送数组3(16灯*3=48B)
0,0,0
0,0,0
50,0,0
0,0,0
0,0,0
0,0,0
50,0,0
0,0,0
0,0,0
0,0,0
50,0,0
0,0,0
0,0,0
0,0,0
50,0,0
0,0,0
延时
发送数组4(16灯*3=48B)
0,0,0
0,0,0
0,0,0
50,0,0
0,0,0
0,0,0
0,0,0
50,0,0
0,0,0
0,0,0
0,0,0
50,0,0
0,0,0
0,0,0
0,0,0
50,0,0
这个表给你参考一下。就按你的板、2维数组的方式。

评分

参与人数 1黑币 +10 收起 理由
WFX777888 + 10 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:824490 发表于 2022-8-4 08:52 | 显示全部楼层
WFX777888 发表于 2022-8-3 20:42
我就是爱好这东西没事玩玩

我也是玩玩,这个不是我的专业。。。慢慢来,这个很简单的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表