*阅读说明:本帖仅简要摘录,详细项目开发过程及源码资料等请戳原链接查看。
这篇介绍了项目背景和硬件相关内容,以及LED驱动芯片的驱动部分代码。 最近与朋友一起搞了一个台阶流水灯项目,安装在楼梯台阶侧面和扶手上,人走过时次第点亮与熄灭。 台阶上的灯使用长条形灯条,每个灯条对应一颗LED控制芯片。扶手或者墙壁上的灯带使用流水灯带,LED控制芯片直接焊接在灯带上面。 这种灯条和灯带都是用的RGB灯,可以显示各种颜色,不过我们做的项目目前只显示了白色,只是亮度可调。 灯条和灯带的LED控制芯片都是WS2811,这是一颗单线256级灰度三通道恒流LED驱动IC,可以很方便的级联多个芯片,只需要一个IO口就能控制一长串灯,很适合这个项目。 项目使用GD32E230K8T6芯片,带4位数码管显示和三个按键。 主芯片部分电路图
点评:一个很不错的小设计,有利于提升氛围感,作者对设计过程中出现的问题仔细分析,逐步解决,最终实现,值得肯定。
这篇分享软件部分内容,主要介绍流水灯控制逻辑的实现和完善。 项目有两个人体传感器,分别安装在楼梯底部和顶部。当感应到人走过时,从走过的方向开始逐级点亮台阶灯,同时扶手上的流水灯也同步点亮;当人走过之后,台阶灯和流水灯再逐级熄灭。 程序除了基本驱动框架之外,主要部分就是按键扫描识别、数码管显示、以及流水灯控制逻辑。
点评:书接上回,从软件层面实现流水灯的逻辑。
这篇介绍一下程序参数的设定。 程序参数最开始是准备通过按键进行参数设定,设定完毕之后保存在FLASH里。后面考虑到流水灯的灯数量偏多,于是考虑自动检测灯的数量来进行参数设定,减少人员操作次数。 那么怎么自动检测灯的数量呢?可以通过驱动电流的大小来确定灯的数量。由于不同流水灯带可能会在同样灯数量的情况下具有不同的电流值,因此不能以电流的绝对值来判断,需要用相对值来判断。 于是在台阶灯和扶手流水灯的驱动接口的GND上串接一个0.5R的电阻,通过AD采样其两端电压来确认电流情况。
点评:自动检测灯珠数量不愧为一个好的想法,作者通过产生想法-理论推导-动手实践达到自己的目的,尽管过程曲折,还是通过探索完成了设计,点赞 。
|