[PIC®/AVR®/dsPIC®产品] 【CuriosityNano测评报告】+ WS2812彩灯控制

[复制链接]
1702|12
 楼主| jinglixixi 发表于 2022-11-10 00:31 | 显示全部楼层 |阅读模式
本帖最后由 jinglixixi 于 2022-11-10 00:48 编辑

AVR64DD32开发板支持对WS2812彩灯的控制,可以指定彩灯的个数并通过编程来改变彩灯的显示效果。
这里采用的是一款有12个灯珠的环形模块,其静态显示效果如图1所示。
图1 色彩切换显示效果


其设置色彩的函数为:
  1. static void WriteNeopixel(color_t color)
  2. {
  3.     TCA0_Start();   
  4.     SPI0_ByteExchange(color.greenChannel);
  5.     SPI0_ByteExchange(color.redChannel);
  6.     SPI0_ByteExchange(color.blueChannel);
  7.     TCA0_Stop();
  8. }
在指定灯珠个数的情况下,通过下面的函数可打量多个灯珠,其程序为:
  1. static void WriteLEDsString(const color_t *frame)
  2. {
  3.     uint8_t i;
  4.     for(i = 0; i < NUMBER_OF_LEDS; i++)
  5.     {
  6.         WriteNeopixel(frame[i]);
  7.     }
  8. }
要使用灯珠循环切换色彩的主程序为:
  1. void main(void)
  2. {
  3.     uint8_t i;
  4.     color_t R1 = {100, 0, 0};
  5.     color_t G1 = {0, 100, 0};
  6.     color_t B1 = {0, 0, 100};
  7.     while (1)
  8.     {
  9.         for(i = 0; i < 12; i++)  
  10.         {
  11.            WriteNeopixel(R1);
  12.         }
  13.         _delay_ms(2000);
  14.         for(i = 0; i < 11; i++)
  15.         {
  16.            WriteNeopixel(G1);
  17.         }
  18.         _delay_ms(2000);
  19.         for(i = 0; i < 12; i++)
  20.         {
  21.            WriteNeopixel(B1);
  22.         }
  23.         _delay_ms(2000);
  24.     }
  25. }
另外,还可实现彩灯的循环旋转效果和循环推进和收缩效果,见图2和图3所示。
图2 旋转效果
图3  渐进效果

实现色彩渐进的主程序为:
  1. void main(void)
  2. {
  3.     uint8_t i,j;
  4.     color_t R1 = {100, 0, 0};
  5.     color_t G1 = {0, 100, 0};
  6.     color_t B1 = {0, 0, 100};
  7.     color_t H1 = {0, 0, 0};
  8.     while (1)
  9.     {
  10.         for(i = 0; i < 11; i++)
  11.         {
  12.            WriteNeopixel(H1);
  13.         }
  14.         _delay_ms(500);
  15.         for(j = 0; j < 11; j++)
  16.         {
  17.           for(i = 0; i < 11; i++)
  18.           {
  19.             if(i<=j) WriteNeopixel(G1);
  20. }
  21.           _delay_ms(1000);
  22.         }
  23.     }
  24. }
此外,还可以实现色彩的组合显示效果,见图4所示。
图4 多彩显示效果

视频演示:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
weifeng90 发表于 2022-11-11 08:17 来自手机 | 显示全部楼层
可以做个面阵RGB,做像素显示。
 楼主| jinglixixi 发表于 2022-11-11 11:45 | 显示全部楼层
weifeng90 发表于 2022-11-11 08:17
可以做个面阵RGB,做像素显示。

没错,也可买一条光带,剪成等长的几段组成阵列来使用。
uptown 发表于 2023-7-12 17:37 | 显示全部楼层
用WS2812制作的灯带控制程序非常实用
houjiakai 发表于 2023-7-12 18:09 | 显示全部楼层
ws2812灯珠怎样防止烧坏              
 楼主| jinglixixi 发表于 2023-7-12 18:13 | 显示全部楼层
houjiakai 发表于 2023-7-12 18:09
ws2812灯珠怎样防止烧坏

看具体情况,是防止反接或是因为电流较大等。
gygp 发表于 2023-7-13 17:19 | 显示全部楼层
怎么操作WS2812B彩灯模块              
 楼主| jinglixixi 发表于 2023-7-13 18:52 | 显示全部楼层
gygp 发表于 2023-7-13 17:19
怎么操作WS2812B彩灯模块

单总线编程,串行输出0、1信号。
louliana 发表于 2023-7-14 14:19 | 显示全部楼层
WS2812用什么芯片做音频灯
wilhelmina2 发表于 2023-7-14 18:14 | 显示全部楼层
WS2812是属于内置IC吗              
 楼主| jinglixixi 发表于 2023-7-15 08:55 | 显示全部楼层
小明的同学 发表于 2024-7-27 17:48 | 显示全部楼层
AVR的比PIC的好用太多了
wanduzi 发表于 2024-7-30 19:17 | 显示全部楼层
没有分享工程啊,不知道怎么配置的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

521

主题

2949

帖子

39

粉丝
快速回复 在线客服 返回列表 返回顶部