|
本帖最后由 zoomdy 于 2017-1-22 12:24 编辑 运行效果图
运行效果图 面包板接线
面包板接线 材料清单
材料清单 NUCLEO-F042K6一块,https://detail.tmall.com/item.htm?id=524897143044 WS2812灯环一个(24盏灯),https://detail.tmall.com/item.htm?id=525645384067 面包板一个,https://detail.tmall.com/item.htm?id=16513870165 我用上述链接购买的,供有需要的同学参考,我与卖家仅有买卖关系。 分享一下我采用的方案 WS2812的时序非常特殊,见下图,没有办法使用标准的外设来驱动,得使用模拟实现。我采用的方案是SPI+DMA,用一个字节的SPI数据来表示WS2812的一位数据,SPI时钟频率调整到6.4M(800K * 8,WS2812的速率要求为800K,SPI每8个位长表示1位WS2812数据),SPI数据0x70(3个1,5个0,符合WS2812低电平的时序要求)表示WS2812的0,SPI数据0x7C(5个1,3个0,符合WS2812高电平的时序要求)表示WS2812的1。一个WS2812需要24位数据,首先将这24位RGB数据转换成24字节的SPI数据,然后使用DMA将24字节SPI数据发出去,这样就可以驱动WS2812了。我这个灯环有24盏LED,那么需要24*24=576字节的SPI缓存,用DMA可以一次性操作。这种方法比较耗内存,但是实现起来比较简单,输出时序一致性非常高。源代码已经上传至OSChina:http://git.oschina.net/zoomdy/BlueSoRing WS2812时序
|
微信公众号
手机版
哈哈,想法不错,不过不用电机的,移动像素位置就旋转了,实际效果就是在旋转的,静态图片看不出来
你是说PCB原理图吗?没有啊,不过很简单的,就是把多颗WS2812串联起来,参考WS2812数据手册就可以了。