
【RA】幻彩灯立方
简介
使用瑞萨MCU R7FA2L1AB2DFL#AA0驱动三色LED灯矩阵
简介:使用瑞萨MCU R7FA2L1AB2DFL#AA0驱动三色LED灯矩阵开源协议
:Public Domain
描述
需求分析
1、三色LED灯组成的4x4矩阵,分布在立方体6个面上。
2、LED灯串行连接。
3、每个面的灯通过接插件串联起来。
4、通过瑞萨MCU SPI引脚串行通信。
5、灯的色彩能够渐变。
原理图设计说明
LED矩阵串行连接
板间互联接插件
瑞萨MCU
软件说明
代码块:
#define FACE_NUM 6 //共6个面 #define PIXEL_NUM_OF_FACE 16 //一个面16个灯 #define BIT_OF_PIXEL 24 //一个灯有24bit数据 #define PIXEL_NUM 96 //共96个灯 #define LED_BIT (PIXEL_NUM * BIT_OF_PIXEL) //LED灯共这些bit数据
uint8_t Pixel_Buffer[FACE_NUM][PIXEL_NUM_OF_FACE][BIT_OF_PIXEL];
uint8_t color_face_1[6][3] = {{128 , 0 , 0},{64 , 64 , 0},{ 0 , 128 , 0},{ 0 , 64 , 64},{ 0 , 0 , 128},{ 64 ,0 , 64}};
uint8_t Color_Buffer_of_Face[PIXEL_NUM_OF_FACE][3] = {
{128 , 0 , 0},{104 , 24 , 0},{ 80 , 48 , 0},{ 56 , 72 , 0},
{ 32 , 96 , 0},{ 8 ,120 , 0},{ 0 ,112 , 16},{ 0 , 88 , 40},
{ 0 , 64 , 64},{ 0 , 40 , 88},{ 0 , 16 ,112},{ 8 , 0 ,120},
{ 32 , 0 , 96},{ 56 , 0 , 72},{ 80 , 0 , 48},{104 , 0 , 24},
};
void LED_Set_Color(uint8_t color,uint8_t *position)
{
uint8_t zero = 0x30; //00110000
uint8_t one = 0xF8; //11111000
uint8_t k = 0;
uint8_t mask = 0x80;for(k=0;k<8;k++) { position[k] = ((color & mask) ? one : zero); mask >>= 1; }
}
for(cnt_f=0;cnt_f160
实物展示说明
参考文献
本项目硬件设计是复刻“科G栈”的作品,主要设计基本没变,把主控MCU替换为R7FA2L1AB2DFL#AA0。
链接如下:
https://www.bilibili.com/video/BV1ev411k7mh?spm_id_from=333.999.0.0
代码设计参考文献:
https://blog.csdn.net/geek_liyang/article/details/89208507?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_title~default-0-89208507-blog-84638967.pc_relevant_paycolumn_v3&spm=1001.2101.3001.4242.1&utm_relevant_index=3
优化建议
1、设计中为了使6个面的灯能够串联起来,需要用到两种走线方向的PCB进行拼接。我觉得这里可以可以优化一下接插件连接方式,使用一种PCB板实现6个面灯的串联。
演示视频与工程代码
见附件
设计图
BOM
ID | Name | Designator | Footprint | Quantity |
---|---|---|---|---|
1 | HDR-M-2.54_1x3 | J1,J5,J8,J9 | HDR-M-2.54_1X3 | 4 |
2 | WS2812B-B | LED1,LED2,LED3,LED4,LED5,LED6,LED7,LED8,LED9,LED10,LED11,LED12,LED13,LED14,LED15,LED16 | LED-SMD_4P-L5.0-W5.0-TL_WS2812B-B | 16 |
3 | smd-2.54-3p | U2,U3,U8,U10 | SMD-2.54-3P | 4 |

评论