你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

有偿求助---矩阵式LED的显示问题

[复制链接]
xueshawu 提问时间:2017-12-6 09:51 /
本帖最后由 xueshawu1 于 2017-12-6 10:53 编辑

如下图所示
4X3的矩阵LED;
由7个GPIO控制;
1.png




2.png

这个LED效果穿插在系统中;
首先说说,我的系统,单线程状态机,并且不能增加任何外部器件和电路;
我尝试了单个点亮(一次只点亮一个灯),然后根据要点亮的效果(比如点亮LED2 LED 4 LED6 LED8 LED11 LED12)刷新6次;
然后,发现亮度不够,并且显示起来亮度不均匀,
然后又尝试了行列式点亮,也是亮度不均匀,
其实单独做个LED显示,问题简单,但是这个灯效怎么穿插到系统中,并且亮度要均匀(其实也就是刷新频率要固定);
最后在说一句,系统是裸奔,没有任何操作系统
所以向大家求个思路,对了有偿的,100RMB


评分

参与人数 1 ST金币 -1 收起 理由
zero99 -1 有偿求助,也请在标题里简单描述下问题.

查看全部评分

收藏 评论25 发布时间:2017-12-6 09:51

举报

25个回答
adlu 回答时间:2017-12-6 14:24:57
本帖最后由 adlu 于 2017-12-6 14:30 编辑

不要按行列扫描一次点多个灯。
12个灯,每次只点亮1个就行了,也就是每个灯的扫描时间是扫描周期的1/12。
注意,即使某个灯信息为0,也要占用1/12的扫描周期,以确保无论显示亮多少个灯,亮度都一样。
这样就解决了亮度不均匀的问题。

限流电阻改小一点,这是不增加硬件的条件下,提高亮度的唯一方法了。

要保证固定扫描周期,当然要用定时器。可以设置优先级低于语音所用的定时器中断。
如果语音所用定时中断处理时间较长,影响到亮度的话,可以在进入该中断时,暂停显示用的定时器,并关闭显示,并保存当前扫描的位置,退出中断时开显示和恢复定时器。

评分

参与人数 1ST金币 +5 收起 理由
zero99 + 5

查看全部评分

lujianhao891204 回答时间:2017-12-21 15:36:32
比如你设计时默认灯电流位20MA,那么你要测量每个灯20mA时的正向压降,如果差别很小,那么你这个方案采用单个点亮然后刷新的方式点亮的话不会有什么问题,只要确保每个灯亮的时间相同的话就不存在亮度不均匀的问题了,也不会出现亮度不均匀问题了。亮度不够你只能降低电阻试试,但是单片机IO口拉电流就那么点,大不到哪去了。刷新时间的话建议使用定时器来实现,这样就精准了
xueshawu 回答时间:2017-12-6 16:39:26
adlu 发表于 2017-12-6 14:24
不要按行列扫描一次点多个灯。
12个灯,每次只点亮1个就行了,也就是每个灯的扫描时间是扫描周期的1/12。
...

这样不对,我觉得 应该是行列式的,这样可以减少扫描周期,从而提高亮度;
我现在设置的定时器 是 48000000/(479+1)(1+1) = 50KHZ;
但是,尝试更高亮度,发现会影响我读取按键值的速度;后面我会去采用降低限流电阻去尝试提高亮度
maxtch 回答时间:2017-12-6 09:53:56
用定时器控制刷新率,在定时器中断里面行列点亮。
wenyangzeng 回答时间:2017-12-6 10:21:39
本帖最后由 wenyangzeng 于 2017-12-6 10:23 编辑

STM32030下拉电流只有20mA左右,上拉供电更少,显然STM32O3O力不从心。如果不增加外设驱动,你的这个方案应该是作废了。

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

szy123 回答时间:2017-12-6 10:29:05
你是直接I/o驱动的LED,点亮一个LED和点亮两个LED 驱动电流不就减半了么,亮度肯定要下降啊,
好像很难把亮度能均匀啊,你尝试一下办法:
1、I/o驱动电流最大25ma,在此口点亮最多LED时和单独点亮LED时 ,使其流过的工作电流一致,
  你的lED压价多少,调整电阻值试一下,

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

废鱼 回答时间:2017-12-6 10:31:54
电阻调小些试试。
xueshawu 回答时间:2017-12-6 10:32:50
maxtch 发表于 2017-12-6 09:53
用定时器控制刷新率,在定时器中断里面行列点亮。

这样貌似不行,这个方法我之前就试过,因为我还有语音播报功能,语音播报也是采用定时器更新WAV文件 的方式实现,这样做的结果就是会影响语音播放;不过也有可能是我之前的LED优先级比语音要高导致的,我刚已经想到这一点了,等下去试下
xueshawu 回答时间:2017-12-6 10:36:35
wenyangzeng 发表于 2017-12-6 10:21
STM32030下拉电流只有20mA左右,上拉供电更少,显然STM32O3O力不从心。如果不增加外设驱动,你的这个方案应 ...

两边都是OUT PP;出来的亮度还可以,也而不需要多亮
anywill 回答时间:2017-12-6 10:57:29
GPIO输出是3.3v,
1K电阻是有点大
以前我用51时用的573

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

黑皮男 回答时间:2017-12-6 12:37:38
需要挂个驱动器,提供足够的电流

评分

参与人数 1ST金币 +1 收起 理由
zero99 + 1

查看全部评分

jinglixixi 回答时间:2017-12-6 14:10:19
买块带例程的LED点阵模块,然后移植到相应的开发板上。以前曾点亮和显示过4个汉字,必须单独为点阵板模块提供独立的电源,因为功率较大。

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

adlu 回答时间:2017-12-6 16:51:04
xueshawu1 发表于 2017-12-6 16:39
这样不对,我觉得 应该是行列式的,这样可以减少扫描周期,从而提高亮度;
我现在设置的定时器 是 480000 ...

"不要按行列扫描",理由是你当前的电路下,减小电阻后,GPIO输出电流有限,驱动多个灯时,亮度不均匀。
xueshawu 回答时间:2017-12-6 17:01:46
adlu 发表于 2017-12-6 16:51
"不要按行列扫描",理由是你当前的电路下,减小电阻后,GPIO输出电流有限,驱动多个灯时,亮度不均匀。 ...

先看看吧,我主要是觉得单个点要 12次,行列式 只需要3次;这样亮度会高点
maxtch 回答时间:2017-12-6 19:13:07
本帖最后由 maxtch 于 2017-12-6 19:14 编辑
xueshawu1 发表于 2017-12-6 10:32
这样貌似不行,这个方法我之前就试过,因为我还有语音播报功能,语音播报也是采用定时器更新WAV文件 的方 ...

两者可以共用定时器的,语音走一个采样显示走一行。电流问题就是外挂驱动 MOS 管。
12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版