<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 設計應用 > 背光自動(dòng)控制模塊

背光自動(dòng)控制模塊

作者:郭昱秀 葉永安 時(shí)間:2015-11-09 來(lái)源:電子產(chǎn)品世界 收藏
編者按:本文主要講述采用集成環(huán)境光傳感器控制顯示屏背光亮度的應用。系統根據環(huán)境光強度實(shí)行動(dòng)態(tài)的背光控制,降低功耗。讓顯示屏亮度根據環(huán)境光條件自行調整到最佳狀態(tài),改善用戶(hù)體驗。同時(shí)也能手動(dòng)調節背光亮度。

(3)背光實(shí)施

本文引用地址:http://dyxdggzs.com/article/281898.htm

  背光亮度與其電流呈線(xiàn)性關(guān)系。集成了驅動(dòng)器的可以通過(guò)PWM直接控制背光亮度。本設計中參考的數據手冊PWM信號的頻率選用100Hz,由STM32F103的TIM3產(chǎn)生。

  在背光調節過(guò)程中應避免從一個(gè)亮度級直接跳轉到另一個(gè)亮度級(驟變式的亮度變化會(huì )對眼睛造成沖擊),而應該平滑上調和下調背光亮度,確保不同亮度等級之間無(wú)縫過(guò)渡。為了達到這一目的,可采用帶有固定或不同亮度步長(cháng)、可逐步調節亮度的定時(shí)中斷。本設計中參考MAX44009應用筆記中推薦的步進(jìn)式亮度調節的算法進(jìn)行亮度的平滑調節。

  將采集進(jìn)來(lái)的室內光照度轉化為微處理器內PWM寄存器的值,記為當前PWM值。將前PWM寄存器值記為PWM原值。將PWM原值與當前PWM值不斷比較遞增或遞減,使PWM輸出以極小的步長(cháng)跟蹤當前PWM值,從而實(shí)現平滑調光。此算法還能解決啟動(dòng)跳變問(wèn)題,使系統啟動(dòng)時(shí)PWM由零慢慢變化到當前PWM值。

  PWM定時(shí)器的跳變值應該在定時(shí)器溢出中斷中重新賦值,避免跳變值的改變可能出現PWM信號有波動(dòng)。

  (4)設置上、下限閥值

  MAX44009可以設置上、下限門(mén)限,在光線(xiàn)強度偏離上、下門(mén)限一定時(shí)間后,產(chǎn)生中斷通知微處理器讀取光強度。

  由表2可知MAX44009的上、下門(mén)限只是針對高字節流明的。怎么把一個(gè)浮點(diǎn)型的流明數值變換成上、下限寄存器的格式數據。在這里需要采用frexp[3]函數:double frexp(double x, int *exp);其中0.5≤x<1;exp為整數。然后再對數據進(jìn)行調整,程序如下:

  u8 Threshold_reg(float lux_Threshold)

  {

  double x;

  int n;

  u8 y,Threshold;

  x=frexp(lux_Threshold,&n);

  if(lux_Threshold<8)

  {

  y=(u8)(x*80);

  if((y%10)>4) y+=10;

  y=y/10;

  Threshold =(((u8)(n-3))<<4)|y;

  return Threshold;

  }

  else

  {

  y=(u8)(x*160);

  if((y%10)>4) y+=10;

  y=y/10;

  Threshold =(((u8)(n-4))<<4)|y;

  return Threshold;

  }

  }

  設置上、下限閥值主要是為了改善系統對環(huán)境光強變化的響應,避免因為光強的瞬間變化(譬如一扇窗戶(hù)打開(kāi)或瞬間有一束光掃過(guò))而過(guò)快地改變亮度等級,這往往會(huì )造成用戶(hù)感覺(jué)不適。最初級的方法是每隔一兩秒鐘檢查一次光傳感器,然后相應地調整背光亮度。更好的方法是,只有光線(xiàn)強度偏離特定范圍一定時(shí)間后,才對背光亮度進(jìn)行調節。

  MAXIM推薦的例子是:“如果正常光強是200lux,可能只會(huì )在光強降到180lux以下或升至220lux以上,而且持續時(shí)間超過(guò)數秒的情況下才調節亮度”。由于上、下限閥值設定是個(gè)固定值,當系統的使用環(huán)境更換時(shí)(比如說(shuō)室外轉移到室內),會(huì )造成背光調節的偏差,特別是新環(huán)境的光強度超出了上、下限閥值時(shí),系統的調光效果跟最初級的方法效果一樣了。

  為了解決這一問(wèn)題,本設計中采用了動(dòng)態(tài)設置上、下限閥值的方法。讀取當前光強度,然后取±10%為偏移量,寫(xiě)進(jìn)上、下限寄存器中。

3.2.2 PWM控制

  STM32F103共有7個(gè)定時(shí)器,TIM1和TIM8是高級定時(shí)器,TIM2、TIM3和TIM4是通用定時(shí)器,TIM6和TIM7是基本定時(shí)器。本設計中采用通用定時(shí)器TIM3,利用TIM3產(chǎn)生周期為100Hz的PWM信號。

  PWM配置步驟如下:1、設定TIM3信號周期;2、設定TIM3預分頻值;2、設定TIM3分頻系數;4、設定TIM3計數模式;5、初始化TIM_TimeBaseStructure[4];6、設定TIM3的OC模式;7、TIM3輸出使能;8、設定電平跳變初值;9、設定PWM信號的極性;10、使能TIM3信號通道;11、使能TIM3中斷;12、使能TIM3重載寄存器CCRX;13、使能TIM3計數;14、在中斷中設置新的電平跳變值。

3.2.3 USB通信

  在ST提供的USB-HID的例程上做修改,增加到3個(gè)USB端點(diǎn)。EP0為控制端點(diǎn),EP1為INTERRUPT OUT端點(diǎn)(PC向MCU發(fā)送數據),EP2為INTERRUPT IN端點(diǎn)(MCU向PC發(fā)送數據)。需要對“usb_desc.c”文件進(jìn)行修改,VID和PID[5]不能跟現有的設備相沖突。詳細可參考USB HID V1.1協(xié)議。模塊收到上位機發(fā)送過(guò)來(lái)的數據后,對數據進(jìn)行解析并根據命令做出相關(guān)操作,代碼如下:

  if(USB_ReceiveFlg == TRUE) //收到數據

  {

  USB_ReceiveFlg = FALSE;

  if((RxBuffer[0]==0xff)&(RxBuffer[4]==0xcc))

  {

  if(RxBuffer[1]==0x50) //自動(dòng)調光

  {

  Light_AM_flag=1;

  I2C_WriteByte(0x01,INT_ENABLE,MAX44009_ADDR);

  Light_HM_flag=0;

  }

  else if(RxBuffer[1]==0x05) //手動(dòng)調光

  {

  Light_AM_flag=0;

  I2C_WriteByte(0x00,INT_ENABLE,MAX44009_ADDR);

  HM_light=RxBuffer[3];

  HM_light=HM_light/100;

  PWM_diff(HM_light,1); //調光百分比

  }

  }

  }

3.3 上位機軟件

  在VB編程環(huán)境中應用“HidAPI.bas”組件進(jìn)行USB通訊編程,根據上述的通信協(xié)議通過(guò)USB接口與控制模塊進(jìn)行信息指令交換。軟件有兩個(gè)功能:1、勾選“AM”控制模塊進(jìn)入自動(dòng)控光模式,滑條將被屏蔽不允許操作;2、不勾選“AM”進(jìn)入手動(dòng)控光模式,可以通過(guò)滑條進(jìn)行亮度調節。

  在VB中滑條需要鼠標左鍵才能觸發(fā),為了鼠標的滑輪能夠使用,加入了定數器,每20ms讀取一次滑條的值,保存并與上一次數據項比較,如果有變化則通過(guò)USB發(fā)送控制指令,否則不做處理。代碼如下:

  Dim lightdata_r As String

  Dim lightdata As String

  Private Sub Timer1_Timer()

  Text1.Text = Slider1.Value

  lightdata_r = lightdata ‘保存上一次數據

  lightdata = Slider1.Value ‘重新賦值

  If lightdata <> lightdata_r Then ‘比較

  Data(1) = &H5

  Data(3) = lightdata

  Call WriteReport‘發(fā)送數據

  End If

  End Sub

  軟件界面效果如圖6所示。

4 結論及成品展示

  通過(guò)對本系統的調試與測試,實(shí)現了液晶背光的自動(dòng)和手動(dòng)控制。系統運行可靠,操作簡(jiǎn)單,而且硬件模塊體積小便于安裝。已應用于多個(gè)顯示器產(chǎn)品中。

參考文獻:

  [1]Maxim. MAX44009 Data sheet Rev 0[Z]. Maximintegrated .2011

  [2]Windows. Integrating Ambient Light Sensors with Computers Running Windows 7[R].Microsoft.2010

  [3]譚浩強.C程序設計(第三版)[M].北京:清華大學(xué)出版社.2005

  [4] ST.UM0427 Rev 2[Z] . STMicroelectronics .2000

  [5] USB Device Working Group.Device Class Definition for Human Interface Devices[Z].USB.org.1999


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>