0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

数码管亮度怎么调节?

冬至子 来源:单片机技术宅 作者:小代 2023-06-13 16:13 次阅读

之前在我们设计的DIY电子时钟里面,有一项需求就是数码管显示的亮度要随环境亮度的改变而自动调节。这几天在群里也有人问到这个问题,在群里说了大体思路后,还是不能理解,程序部分还是没有是成功,今天小代就写此文来说说数码管亮度怎么调节?文后会附上源码。

在我们硬件电路做好之后,再要去调节数码管的亮度,那就只能从软件入手,也就是编程来实现它。正常情况下,我们的程序都是给数码管全亮,就像电机全速运行一样,需要调速了,我们就采用PWM信号去控制,PWM信号的原理其实就是在相同的频率下,减小了驱动电平的时间,这里调节亮度的原理也是差不多,就是在保持刷新频率不变得情况下,减少每一位数码管点亮的时间。

下面我们简单说说正常的数码管显示程序怎么写。全亮时,我们是现给数码送段选数据,再送位选数据,然后延时一小会时间,再重复以上内容显示下一位。现在我们有四位数码管,我们让每位点亮6ms,这样4位数码管显示完一次(扫描一次)大约25ms,那1秒就可以扫描40次(40帧/秒),这样我们人眼看到的就是同时显示(视频一般为25帧/秒)。具体过程如下(4位数码管分别计为A、B、C、D):

开始: A 选通 延时6ms ,关闭A

B 选通 延时6ms ,关闭B

C 选通 延时6ms ,关闭C

D选通 延时6ms ,关闭 D

结束一帧扫描

(注:此处的选通包含段码和位码)

详细程序如下:

图片

正常显示程序

如上图就是正常的显示代码段(共阴数码管),以上程序运行后可以在数码管上看到显示1234全亮度。这里说的延时一小会,这个时间是在毫秒级别的,调节这个时间,是可以调节亮度,但是时间稍微大一点,就会出现闪烁的情况了。我们要的是既要亮度可以调节,又要不闪烁,那就要用到我们说的PWM信号了。

现在要在不改变扫描速率的情况下,降低每一位点亮的时间,这样我们看到的效果就是亮度的降低了。比如上图中的程序,我们延时时间是6ms,这6ms时间都是点亮数码管的,现在要减少点亮时间,那我们就点亮3ms,关闭3ms,这样一来,扫描一位的时间还是6ms,但是这6ms时间内只有3ms时间是点亮的,自然亮度就降低了,而没有改变扫描时间,自然不会出现闪烁的情况。具体过程如下:

开始: A 选通 延时3ms ,关闭A 延时3ms

B 选通 延时3ms ,关闭B 延时3ms

C 选通 延时3ms ,关闭C 延时3ms

D选通 延时3ms ,关闭 D 延时3ms

结束一帧扫描

(注:此处的选通包含段码和位码)

具体代码如下:

图片

如上图所示,每一位点亮的时间只有3ms,但是扫描每一位数码管的时间还是原来的6ms,这样就实现了在不改变刷新频率的情况下减少了每一位点亮的时间,从而减低了亮度,上图中的亮度已经是全亮的一半了。

好了,到这要调节亮度的任务就已经完成了,但是我们还想拓展一下,如何让这个亮度可以通过程序自动来调节而不是我们认为的修改程序呢?办法很简单,我们在程序中设一个变量为点亮的时间参数(比如设为on_time),每一位还是点亮6ms,那关闭的时间就是6ms-on_time。

那过程就变为如下:

开始: A 选通 延时on_time ,关闭A延时6ms-on_time

B 选通 延时on_time ,关闭B延时6ms-on_time

C 选通 延时on_time ,关闭C延时6ms-on_time

D选通 延时on_time ,关闭 D延时6ms-on_time

结束一帧扫描

要让程序自动调节这个变量on_time,就需要来调节的参数,比如时间参数,在几点到几点之间亮度为多少,可以多少几个档次。更高级别的可以通过光敏电阻来实现检测环境光照度来调节这个现实的时间参数on_time,这样就可以实现正真的随环境的变化而变化。我们做的DIY电子时钟就是采用最后说的方式,通过光敏电阻分压后单片机ADC转换得到电压值,再根据这个电压值来自动的调节点亮的时间。通过修改延时函数,可以做到真正的无极调光。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6030

    文章

    44487

    浏览量

    631868
  • 数码管
    +关注

    关注

    32

    文章

    1873

    浏览量

    90862
  • 光敏电阻
    +关注

    关注

    4

    文章

    293

    浏览量

    48862
  • PWM信号
    +关注

    关注

    3

    文章

    91

    浏览量

    20108
  • ADC采样
    +关注

    关注

    0

    文章

    134

    浏览量

    12818
收藏 人收藏

    评论

    相关推荐

    数码管驱动芯片的使用方法

    数码管驱动芯片是一种专门设计用于控制数码管的集成电路。它通常包含多个输出通道,每个通道可以独立控制一个数码管亮度和显示内容。数码管驱动芯
    的头像 发表于 12-08 16:24 9295次阅读

    LED数码管

    (/)等运算符号功能。图1.118示出了几种不同类型的LED数码管。 与荧光数码管和辉光数码管相比,LED数码管具有体积小、重量轻、发光响应速度快、单色性好、
    发表于 01-04 01:35

    LED数码管驱动芯片选型指南

    端口发送数据给芯片即可,实现单线通讯,节省单片机端口;2.LED数码亮度可调:可调节段的驱动电流和占空比两种方式来调节LED数码管
    发表于 12-17 16:20

    数码管显示亮度太暗怎样增加亮度

    有一个设备用单片机控制,它的八位O/I口输出数据供给十八位数码管做动态扫描用,数码管的位选用三八译码器控制,现在的问题是数码管显示亮度太暗,我在八位数据线上串接74LS245驱动器后
    发表于 02-19 23:26

    数码管时钟怎么调节亮度

    通过什么办法调节数码管亮度
    发表于 09-26 08:24

    数码管的分类

    数码管的分类     数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管
    发表于 11-06 11:41 7414次阅读

    数码管的驱动方式

    数码管的驱动方式   数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管
    发表于 11-06 11:42 3926次阅读

    为什么数码管亮度不均匀?

    为什么数码管亮度不均匀?  关于亮度一致性的问题是一个行业内的常见问题。  有二个大的因素影响到亮度一致性。  一是使用原材料芯片的选
    发表于 11-06 11:44 6221次阅读

    动态数码管

    动态数码管 基于51单片机的动态数码管源代码。
    发表于 05-09 09:41 8次下载

    静态数码管

    静态数码管静态数码管静态数码管静态数码管
    发表于 05-13 15:39 6次下载

    多位数大尺寸高亮度低成本LED数码管驱动电路的设计

    多位数大尺寸高亮度低成本LED数码管驱动电路的设计
    发表于 01-24 16:54 21次下载

    数码管的用途

    本文首先介绍了数码管的分类,其次介绍了数码管的驱动方式,最后介绍了数码管的用途及应用范围。
    的头像 发表于 08-21 18:46 1.5w次阅读

    led数码管怎么接线_LED数码管的测试

    本文主要介绍了LED数码管的安装接线方式及LED数码管的测试方法。
    发表于 10-09 10:44 2.7w次阅读

    51汇编(六):数码管显示

    文章目录数码管驱动单位数码管数码管数码管分为共阴数码管和共阳数码管
    发表于 11-22 09:06 10次下载
    51汇编(六):<b class='flag-5'>数码管</b>显示

    静态数码管和动态数码管

    目录一,什么是数码管二,静态数码管的驱动三,动态数码管四,动态数码管显示编程实战五,使用38译码器驱动动态数码管一,什么是
    发表于 01-12 18:31 40次下载
    静态<b class='flag-5'>数码管</b>和动态<b class='flag-5'>数码管</b>