这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界» 论坛首页» 活动中心» 板卡试用» 【换取手持数字示波器】+点亮WS2812RGB灯

共1条 1/1 1 跳转至

【换取手持数字示波器】+点亮WS2812RGB灯

助工
2024-04-16 20:14:28 被打赏50分(兑奖) 打赏

使用国民技术N32G430开发板点亮WS2812 RGB灯,你需要遵循WS2812的通讯协议和数据传输方式。WS2812是一种可编程的LED灯,具有RGB显示效果,通过单线传输数据来控制每个灯珠的颜色。

下面是一个基本的步骤指南,帮助你实现这个目标:

  1. 硬件连接

    • 将WS2812 RGB灯珠的DIN(数据输入)引脚连接到N32G430开发板的一个GPIO(通用输入输出)引脚上。

    • 将WS2812 RGB灯珠的VDD(电源正)引脚连接到开发板的电源输出上,确保电压范围在WS2812的工作电压内(通常为+3.5V至+5.3V)。


    • 将WS2812 RGB灯珠的VSS(电源地)引脚连接到开发板的GND(地线)上。

灯珠连接原理图:

image.png.



手工刻的板子:

image.png


焊好的效果图:

image.png


驱动代码:

image.png灯颜色代码:

image.png参考示例:

#include "board.h" // 根据你的开发环境包含正确的头文件 #include "gpio.h" // 假设WS2812的DIN引脚连接到了GPIO1 #define WS2812_DIN_PIN GPIO_PIN(PORT_A, 1) // WS2812的一位时间,单位为微秒 #define WS2812_T0H 0.4 #define WS2812_T1H 0.8 #define WS2812_TRESET 50 // 重置时间,单位为微秒 #define WS2812_BIT_TIME (WS2812_T1H + WS2812_T0H) // 延时函数,单位微秒 void delay_us(uint32_t us) { // 根据你的开发环境实现延时函数 // 例如使用定时器或循环等待 } // 发送单个WS2812位 void ws2812_send_bit(uint8_t bit) { if (bit) { // 发送1位(高电平时间长) gpio_set_value(WS2812_DIN_PIN, 1); delay_us(WS2812_T1H); gpio_set_value(WS2812_DIN_PIN, 0); delay_us(WS2812_T0H); } else { // 发送0位(高电平时间短) gpio_set_value(WS2812_DIN_PIN, 1); delay_us(WS2812_T0H); gpio_set_value(WS2812_DIN_PIN, 0); delay_us(WS2812_T1H); } } // 发送一个完整的WS2812字节 void ws2812_send_byte(uint8_t byte) { for (int i = 0; i < 8; i++) { ws2812_send_bit((byte >> i) & 1); } } // 发送RGB值到WS2812 void ws2812_send_rgb(uint8_t red, uint8_t green, uint8_t blue) { // 开始信号 gpio_set_value(WS2812_DIN_PIN, 0); delay_us(WS2812_TRESET); gpio_set_value(WS2812_DIN_PIN, 1); delay_us(WS2812_T0H); // 发送24位数据:GRB格式 ws2812_send_byte(green); ws2812_send_byte(red); ws2812_send_byte(blue); // 发送结束信号 gpio_set_value(WS2812_DIN_PIN, 0); delay_us(WS2812_TRESET); } int main(void) { // 初始化GPIO gpio_init(WS2812_DIN_PIN); gpio_set_mode(WS2812_DIN_PIN, GPIO_MODE_OUTPUT); // 发送RGB值到WS2812 ws2812_send_rgb(255, 0, 0); // 红色 while (1) { // 主循环保持空或执行其他任务 } return 0; }

参考波形:

image.png点亮效果:

image.png



共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]