找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 393|回复: 8
打印 上一主题 下一主题
收起左侧

请教一种程序实现方法的问题

[复制链接]
跳转到指定楼层
楼主
ID:891876 发表于 2024-11-20 09:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

看见大神们制作的ws2812灯板流光溢彩,光效多变!本人也想仿制,目的是利用此学习编程!
请教的问题如下:一条ws2812灯条共60珠,用SPI+DMA+1个IO控制,分6段、每组10颗ws2812,在此请教编程思路,万分感谢!!

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:69038 发表于 2024-11-20 11:11 | 只看该作者
定义一个二维数组:
u8 ws_buf[60][3];
前一个60 就是灯珠地址,后一个3就每个灯珠的3基色值。。
或定义一个180个成员的数组:

u8 ws_buf[180];
依次是第一珠的G、第一珠的R、第一珠的B ,第二珠的G、第二珠的R、第二珠的B,,,,,
ws2812顺序不是RGB,而是GRB,在写代码是多注意一下哈。
回复

使用道具 举报

板凳
ID:891876 发表于 2024-11-20 11:53 | 只看该作者
zhuls 发表于 2024-11-20 11:11
定义一个二维数组:
u8 ws_buf[60][3];
前一个60 就是灯珠地址,后一个3就每个灯珠的3基色值。。

一个二维数组话,又如何分段调用颜色装载函数和spi发字节函数呢?
回复

使用道具 举报

地板
ID:961114 发表于 2024-11-20 14:18 | 只看该作者
WS2812 烟花灯
晚上的效果还是杠杠嘀!
Ai8051U, 灯光控制板,
PWM-DMA 直接驱动 WS2812
回复

使用道具 举报

5#
ID:21455 发表于 2024-11-20 15:39 | 只看该作者
文档:docs.keysking/docs/stm32/example

视频:https://space.bilibili.com/6100925


Author:波特律动 | Keysking | 波哥在学习
回复

使用道具 举报

6#
ID:69038 发表于 2024-11-20 15:44 | 只看该作者
芙蓉焊料 发表于 2024-11-20 11:53
一个二维数组话,又如何分段调用颜色装载函数和spi发字节函数呢?

不存在分段的,一串灯珠多少个,你必需全串每珠都要发一次,比如60珠,就要发60*3=180Byte,即使某一刻,某珠、某色的值不改变,也要原样发出去,而且是顺序发出,从第一珠,第二珠,,,,第60珠,这样才能有效果。
发数据时,强制把二维数组的指针转为一维数组指针,就可以了。
回复

使用道具 举报

7#
ID:401564 发表于 2024-11-20 16:14 | 只看该作者
你要先去看一下WS2812的规格书,不要直接就下手
5#已经说明白了,这个芯片是一定要从第一传递数据过去的,没有分什么段这个说法了
比如,第只要这第二个灯,那么,你就要写先写第一个灯亮度是三个灯色都是0,然后再写第2灯亮度
最终的效果就是只这第2个灯了
学习这个东西,要一步一步来,先按照自己的想法去点几个灯,换几个颜色,只要知道是基本原理,后面的花样其实就是代码量大了点而已,并没有太大的难度
回复

使用道具 举报

8#
ID:891876 发表于 2024-11-20 19:11 | 只看该作者
Y_G_G 发表于 2024-11-20 16:14
你要先去看一下WS2812的规格书,不要直接就下手
5#已经说明白了,这个芯片是一定要从第一传递数据过去的,没 ...

已经可以点亮简单流水灯了,但函数乱七八糟一大堆,不知咋弄
回复

使用道具 举报

9#
ID:891876 发表于 2024-11-20 19:52 | 只看该作者
本帖最后由 芙蓉焊料 于 2024-11-21 07:58 编辑
Y_G_G 发表于 2024-11-20 16:14
你要先去看一下WS2812的规格书,不要直接就下手
5#已经说明白了,这个芯片是一定要从第一传递数据过去的,没 ...

现在不会写各种灯效的函数


13-UART1-SPI-DMA发送-直接驱动WS2812彩灯.rar

270.47 KB, 下载次数: 0

STC32

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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