打印

国产MCU专栏 第63期:GD32 台阶流水灯项目开发笔记 (基于GD32E230K8T6)

[复制链接]
5868|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
         

*阅读说明:本帖仅简要摘录,详细项目开发过程及源码资料等请戳原链接查看


这篇介绍了项目背景和硬件相关内容,以及LED驱动芯片的驱动部分代码。
最近与朋友一起搞了一个台阶流水灯项目,安装在楼梯台阶侧面和扶手上,人走过时次第点亮与熄灭。
台阶上的灯使用长条形灯条,每个灯条对应一颗LED控制芯片。扶手或者墙壁上的灯带使用流水灯带,LED控制芯片直接焊接在灯带上面。
这种灯条和灯带都是用的RGB灯,可以显示各种颜色,不过我们做的项目目前只显示了白色,只是亮度可调。
灯条和灯带的LED控制芯片都是WS2811,这是一颗单线256级灰度三通道恒流LED驱动IC,可以很方便的级联多个芯片,只需要一个IO口就能控制一长串灯,很适合这个项目。
项目使用GD32E230K8T6芯片,带4位数码管显示和三个按键。
主芯片部分电路图

点评:一个很不错的小设计,有利于提升氛围感,作者对设计过程中出现的问题仔细分析,逐步解决,最终实现,值得肯定。



这篇分享软件部分内容,主要介绍流水灯控制逻辑的实现和完善。
项目有两个人体传感器,分别安装在楼梯底部和顶部。当感应到人走过时,从走过的方向开始逐级点亮台阶灯,同时扶手上的流水灯也同步点亮;当人走过之后,台阶灯和流水灯再逐级熄灭。
程序除了基本驱动框架之外,主要部分就是按键扫描识别、数码管显示、以及流水灯控制逻辑。

点评:书接上回,从软件层面实现流水灯的逻辑。



这篇介绍一下程序参数的设定。
程序参数最开始是准备通过按键进行参数设定,设定完毕之后保存在FLASH里。后面考虑到流水灯的灯数量偏多,于是考虑自动检测灯的数量来进行参数设定,减少人员操作次数。
那么怎么自动检测灯的数量呢?可以通过驱动电流的大小来确定灯的数量。由于不同流水灯带可能会在同样灯数量的情况下具有不同的电流值,因此不能以电流的绝对值来判断,需要用相对值来判断。
于是在台阶灯和扶手流水灯的驱动接口的GND上串接一个0.5R的电阻,通过AD采样其两端电压来确认电流情况。

点评:自动检测灯珠数量不愧为一个好的想法,作者通过产生想法-理论推导-动手实践达到自己的目的,尽管过程曲折,还是通过探索完成了设计,点赞 。

【作者:@blust5



访问GigaDevice GD32 MCU论坛,可查看更多开源作品~


使用特权

评论回复
沙发
blust5| | 2023-9-7 18:24 | 只看该作者
打个卡

使用特权

评论回复
板凳
weifeng90| | 2023-9-14 07:48 | 只看该作者
台阶流水灯还是第一次听说

使用特权

评论回复
地板
chh44| | 2023-9-24 08:31 | 只看该作者
烧录器是用jlink吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

138

主题

676

帖子

23

粉丝