一种基于Arduino单片机的液晶屏幕闪烁自动调节方法与流程

文档序号:14174486阅读:1299来源:国知局
一种基于Arduino单片机的液晶屏幕闪烁自动调节方法与流程

本发明涉及控制器检测技术领域,具体涉及一种基于arduino单片机的液晶屏幕闪烁自动调节方法。



背景技术:

如今人们的生活中充斥着各种各样的电子产品,这些设备中大多需要液晶显示器作为信息输出的媒介。在很多旧的显示器上都有着或多或少的闪烁问题存在,这样的显示器看久了,眼睛会感到疲劳,严重时会导致近视。主要原因是当眼睛在做出观看动作时,瞳孔会依据光线强弱进行大小调整。当眼睛注视强光时,瞳孔会变小;反之,瞳孔会变大。当人眼接受到光线强度剧烈改变时,瞳孔会时大时小做相应的调整,由于这种变化通常比较细微,加之人眼对瞳孔的变化不太敏感,普通的观看者可能不会有所察觉。但就是这种细微的变化,时间一长,很容易使人眼感到疲劳。此外,在观看闪烁的过程中,眼睛睫状肌会突然间收缩或放松,以此调整水晶体区度,造成近视加深。

现有的液晶显示器flicker主要是由面板背光、vcom电压值(公共电极电压)或面板驱动方式等因素引起的,其中液晶显示器生产制造后,仍然可以有效调节并纠正的问题,大部分是vcom电压值问题。同时,vcom电压值问题也是液晶显示器最主要的闪烁问题。因此,显示器的闪烁问题,一直是显示器生产厂商密切关注的一个重要问题,业界也有其相应的专业术语:flicker。

flicker——顾名思义为闪烁的意思,在显示器制造行业内,将显示器的不正常闪烁问题统一称之为flicker问题。flicker问题可分为调频型和调幅型,即调节闪烁频率改善闪烁状态和调节闪烁幅度改善闪烁状态。由于绝大多数情况,人眼是无法分辨60hz以上的高频闪烁,因此往往在显示器产品设计时就已经考虑这一点,大部分显示器的刷新率都会大于60hz,调频型flicker问题便迎刃而解了。随着显示器技术的不断发展,更多高频显示器相继出现,甚至目前专门为电子竞技项目打造的显示器刷新率高达144hz,因而,调频型flicker问题已经很难见到了,而更为常见的是调幅型的flicker问题。

而调幅型flicker问题是由正负极性下像素电压绝对值偏差造成的,这种偏差会在显示器上体现出周期性的亮度变化。这种亮度变化一旦大于人眼可接受的范围,呈现在显示器上的便是flicker问题。而随着两种极性下像素电压绝对值偏差的增加,亮度变化的幅度也相应增加,所以如何减小这种差值就成为了调节调幅型flicker的关键。对此,全球各大液晶显示器生产厂商都有不同的解决方案,但这些解决方案并非完美,目前对液晶显示器的flicker调节主要通过以下几种方式:

1、人眼、电位计调节

液晶显示器在设计时保留了对vcom电压值调节的方式:通过基于电位计特制的调节棒手动调节panel(出厂前的显示器面板业界术语为panel)内部的电阻,达到改变vcom电压值的目的。在这种方式下需要大量操作员在生产流水线上长时间作业,在人眼观察显示器的闪烁情况后,再使用相应的调节棒手动调节vcom电压值。但是由于调节时间过长(平均每片panel花费2-3分钟)、调节质量参差不齐,目前除一些小型的显示器生产厂商在使用此方法外,这种技术已经基本淘汰。

2、人眼、pc调节(国内工厂主要使用方法)

这是基于上一种调节方法的改进方案,大致调节流程相同;不同的是,在液晶显示器设计时,将vcom电压值的调节方式整合到了液晶显示器驱动芯片中,把显示器与pc通过一定的方式连接起来,然后使用编写好的上位机软件,就可以使用电脑键盘调节vcom电压值。这种方式的好处是,操作员熟练掌握后,能做到平均15-30秒完成一片panel的flicker调节,大大提升了速度。目前国内大部分液晶显示器制造工厂里使用的就是这样的闪烁调节方式。但是缺点也是显而易见的,操作员长时间观看闪烁的显示器,会对眼睛造成不同程度的伤害,增加了操作员患近视的几率,因此该工作一般由操作员轮流作业,但操作员的轮岗也造成了人力成本的大量增加,降低了工厂利益。

3、自动化设备调节(国外工厂主要使用方法)

为了更好的配合生产流水线工作,使全自动化生产成为可能,同时节约人力成本,开发自动化设备势在必行。国外著名显示器生产厂商三星和lg在这一领域处于行业领先,在三星和lg的自动化工厂里使用了ca-210(柯尼卡美能达色彩分析仪)来测量flicker,并通过pc(个人电脑)程序完成对显示器flicker的自动调节。不过ca-210售价高昂,显然在工厂中大量使用还存在不少问题。还有值得关注的一点是,ca-210作为专业的色彩分析仪,主要用途为测量色差,色域,亮度和对比度等信息,这些测量的效果都出类拔萃,仅仅用来检测闪烁显得大材小用了。不过虽然ca-210设备昂贵,但由于目前暂时没有更好的解决方案,大部分先进的显示器生产厂商仍然坚持使用ca-210来调节flicker。

以上液晶屏幕调节方法具有成本高、耗费人力多、方案耗时长等诸多不足之处。此外,由于工厂内各种可见或不可见光线的干扰,电磁波的干扰,光敏传感器自身暗电流、非线性和闪烁的高频性等综合因素叠加起来,通常对flicker的精确检测较为困难。



技术实现要素:

针对上述现有技术存在的问题,本发明提供一种基于arduino单片机的液晶屏幕闪烁自动调节方法,设备硬件价格低,自动化作业,能够快速精准的对flicker进行调节,解决液晶显示器flicker问题。

为了实现上述目的,本发明提供一种基于arduino单片机的液晶屏幕闪烁自动调节方法,包括调节部分和支持部分,所述支持部分包括图形信号生成器pg103和pc机,所述调节部分包括液晶显示器panel和传感器模块,所述传感器模块用于采集液晶显示器panel的亮度数据;所述pc机输出端接图形信号发生器pg103输入端,图形信号发生器pg103输出端接液晶显示器panel输入端;

所述调节部分还包括arduino单片机,所述传感器模块为lxd23cv传感器;所述pc机和传感器模块输出端接arduino单片机输入端,所述arduino单片机输出端接液晶显示器panel输入端;包括如下调节步骤:

s1.启动设备,在pc机操作系统的图形信号生成器pg103pc应用界面中选择相应液晶显示器panel的参数以保证panel正常使用;

s2.在图形信号生成器pg103上位机中选择flicker画面,由图形信号发生器pg103产生相应的图像,以此驱动液晶显示器panel显示出未调节前的flicker状态;

s3.启动arduino单片机使之初始化,arduino单片机通过i2c运行设定算法自动改变vcom值,flicker状态也随之改变,再通过lxd23cv传感器接收到flicker的测量数据并对数据处理,根据处理后的数据再次自动改变vcom值,直到找到最佳vcom值,具体设定算法如下:

1)用三分算法将n分为3份,临界值为n/3和2n/3(采用计算机中的“地板除法”取整),比较临界值的大小后,找到vdiff值较大的临界值,去除此临界值到最近边界值之间的数据(包含临界值和边界值),保留剩余数据;

其中,n为液晶显示器panel的调节级数,即vcom值,且n>10;vdiff值代表闪烁度;

2)判断剩余数据的vcom值个数是否<10,若≧10,进入步骤(3);若<10,则进入步骤(4);

3)将步骤(1)中剩余数据用三分算法分为3份,并按照步骤(1)中方法计算出两个临界值,并比较临界值的大小,找到vdiff值较大的临界值,去除此临界值到最近边界值之间的数据(包含临界值和边界值),保留剩余数据,返回步骤(2);

4)遍历剩下的数,首先去除差异较大的数,通过统计的方式比较剩下的数据,得出最优值,即最佳vcom值,并将最佳vcom值传入液晶显示器panel中,自动调节过程结束;

在执行步骤(1)至步骤(3)的过程中,若出现两临界值相等的情况,则去除临界值两边的数据,保留中间的数据。

所述vdiff值的计算公式为:

其中:vmax代表测量到的亮度值最大值,vmin代表测量到的亮度值最小值。

与现有技术相比,本发明基于传统的vcom值寻找算法,采用优化过的三分算法以及遍历法对传统光敏传感器的测量数据进行有效处理,完成相应的flicker调节工作,有效地减少了调节次数,提高了调节效率和精确度,满足了工厂所需5秒内自动调节完成的要求,在经过多次测试后,vcom值的误差在±2以内。

另外,本发明采用了arduino单片机作为主要控制器,价格上相对于ca-210的flicker检测调节设备,仅仅利用了总成本不足150元的硬件完成了同样的autoflicker功能,大大降低了企业成本,同时,采用了全自动化作业,有效地节省了人力资源开资,加快了调节速度,大幅度地提高了企业收益。

附图说明

图1是本发明的电原理框图;

图2是本发明实施例vdiff值等值的处理办法图;

图3是本发明实施例优化的三分算法示例图。

具体实施方式

下面结合附图对本发明作进一步说明。

由于目前panel大多数采用128级vcom值设定,而1024级的原理大致相同,因此本申请以128级vcom值的调节进行说明。

如图1所示,本发明一种基于arduino单片机液晶屏幕闪烁自动调节方法,包括调节部分和支持部分,所述支持部分包括图形信号生成器pg103和pc机,所述调节部分包括液晶显示器panel、传感器模块和arduino单片机,所述传感器模块用于采集液晶显示器panel的亮度数据;所述pc机输出端接图形信号发生器pg103输入端,图形信号发生器pg103输出端接液晶显示器panel输入端;所述传感器模块为lxd23cv传感器模块;所述pc机和传感器模块输出端接arduino单片机输入端,所述arduino单片机输出端接液晶显示器panel输入端;包括如下调节步骤:

s1.启动设备,在pc机操作系统的图形信号生成器pg103pc应用界面中选择相应液晶显示器panel的参数以保证panel正常使用;

s2.在图形信号发生器pg103上位机中选择flicker画面,由图形信号发生器pg103产生相应的图像,以此驱动液晶显示器panel显示出未调节前的flicker状态;

s3.将包含lxd23cv传感器的治具放在液晶显示器panel的合适区域(若在生产流水线上使用,该步骤由机械臂完成);

s4.启动arduino单片机使之初始化,arduino单片机通过i2c运行设定算法自动改变vcom值,flicker状态也随之改变,再通过lxd23cv传感器接收到flicker的测量数据并对数据处理,根据处理后的数据再次自动改变vcom值,直到找到最佳vcom值,具体设定算法如下(如图3所示,数据由实际测量得到):

1)用三分算法将1-128分为3份,临界值为42和86(采用计算机中的“地板除法”取整),比较临界值的大小后,通过公式(4-1)计算出临界值的vdiff值,发现临界值为42时vdiff值较大,效果较差,因此去除0-42段的数据,保留42-128的数据;

其中:vmax代表测量到的亮度值最大值,vmin代表测量到的亮度值最小值。

2)42-128的数据vcom值的个数大于10,用三分算法将42-128分为3份,临界值为70和100,以步骤(1)中同样的方法比较后,去除100-128段的数据,保留42-100的数据;

3)若执行过程中出现两临界值的vdiff值相等的情况,比如第2步中:将42-128分为3份,临界值为70和100,这时发现70和100对应的vdiff值相等,那么将去除42-70和100-128段的数据,保留70-100段的数据;

4)再进行3次和步骤(1)、(2)相同的三分算法操作,最后剩下70-79段的数据;

5)遍历70-79段的数据,首先去除差异较大的70、71、72和79,留下73-78段的数据作详细比较;

6)通过统计的方式比较73-78段的数据,得出最优值为75,即最佳vcom值为75。

本发明通过多种算法的比较,最终按照时间复杂度确定使用三分算法,但由于其仍然有局限性,因此本发明对其作出算法的优化调整。首先是针对三分算法中出现两个比较数大小相等的情况处理。由于凸函数的特性,当出现两个比较数相等时,凸函数最值一定处于这两个数之间。因此,相较于两个比较数不相等时去除一边的算法,两数相等时可以直接去除两边,如图2所示。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1