呼吸燈/LED燈盤 Excel 人眼非線性gamma校正PWM duty cycle Lookup Table(LUT)自動生成

  在使用MCU調整LED燈盤調光功能容易遇到調光不順的問題,普遍遇到的現象如下:

1. 低亮度漸層感明顯。

2. 高亮度區分不明顯。


常使用的解決方法是:

1. 最低到最亮調光時間拉長(如:8秒)。

2. 低亮度區間一階一階調,高亮度區間兩階兩階調甚至更多階。

此方式可解決大部分客人的需求,如遇到調光時間不可太長(如:3秒)或要有呼吸燈效果,這就要使用建table表的方式,通常都要花比較多的心力去處理table表,因此萌生了excel自動生成PWM duty table 表的念頭。


自動生成table表會有一個依據,此依據就是使用儀器量測LED的0%~100%的亮度,在講量測之前先需要了解人眼對亮度的一些背景知識,人眼對亮度的敏感度肯定是非線性的,究竟怎樣的非線性曲線才符合人眼對亮度的敏感度,這時候就要拜一下谷哥大神,有拜有保佑,

經過一番拜讀之後可以知道人眼對暗的光線比較敏感,對亮的光線比較不敏感,可用gamma 0.4545(0.4545 => 1/2.2)來表示人眼對亮度的敏感度,如下圖所示:

人眼敏感度gamma 0.4545曲線

知道人眼對光線敏感度曲線之後,可以明白若要人眼看得柔和且自然要讓非線性的曲線變成線性,如下圖所示:

人眼敏感度線性gamma 1曲線

那LED燈盤怎麼讓人眼看得線性呢,只需要校正出一個相反曲線即可變成線性,因此LED燈盤需校正出一個相反曲線gamma 2.2,在這記住gamma 2.2曲線為LED燈盤最終校正後所依據的曲線,gamma 2.2曲線如下圖所示:

LED表現gamma 2.2曲線


有了基礎背景知識後,再回到儀器量測的步驟,儀器量測的最終目的是為了得到LED燈盤的特性曲線,可以是EV、LUX等等,在這使用手機的LUX Light Metter FREE app做量測儀器,如下圖所示:

LUX Light Meter


在量測亮度0%~100%的LUX之後可以得到燈盤的特性曲線,最終目的就是將燈盤的特性曲線校正成gamma 2.2的曲線,如下圖所示:

LED 0%~100% LUX曲線圖
LED 0%~100% LUX曲線校正成gamma 2.2曲線

但是燈盤的特性曲線沒辦法直接轉成gamma 2.2的曲線,還需要將特性曲線的公式找出來,再利用公式產生出的特性曲線轉成gamma 2.2的曲線,如下圖所示:
增加LED 0%~100% LUX多項式公式曲線

自動生成表輸入區

當以上條件都達成時就可使用excel自動生成想要的table表,如下所示:

PWM duty LUT(look up table)




結論:
照調光實測的結果表現出來的確有呼吸燈的效果,不過仔細看此版本的table表還是可發現還沒很平滑,使table能更平滑化為以後著重的課題。

此excel表請使用最新的WPS或office執行,有遇過舊版本的WPS跑起來有問題。


後記:
原本一開始使用Science Journal 科學日誌app做量測工具,本想同時記錄蜂鳴器聲音與EV值,Bz一聲升1%亮度,藉此達到自動量測燈盤曲線之目的,但因量測環境背景聲多雜,且須MCU寫程式搭配使用,因此最後不予採用。

感謝同事黃大仙提供燈盤相關背景知識,感謝威爾森同事提出手動填入燈盤特性曲線比較單純之提議。


excel下載點:

調光數值table轉換表_v11_blogger


References:

[1] http://hk.uwenku.com/question/p-qolurkza-bny.html

[2] https://hackmd.io/@Sai/VypKoOBw?type=view

[3] https://www.amobbs.com/thread-5611003-1-1.html

[4] https://learn.adafruit.com/led-tricks-gamma-correction

留言