我造過WS2812 HSB 色彩校正之後,發覺 CIE color chart 嘅 wavelength 唔能夠反映色階變化嘅幅度,於是決定買一堆 LED 返黎,基於 Hue 畫返好個 chart,揾出邊對色係互補色可以混出白光。淘宝可以買倒方便銲接嘅大功率3W LED 比好多年前我大概買過一次睇過多左啲色,LED 啲 wavelength 都係用一個 range 表示係一個大約数,而且低 load 時波長會短啲;因為我以開到好暗用眼直望粒 LED 啲色為準,所以一律用最細数 nm 去形容。可見光 LED 分両個電壓,由 400-560nm 嘅 3V 買左 12粒,585-660nm 嘅 2V 就買左 6粒銲晒落鋁基板方便比較,再隔住均光板喺銲晒 6粒 LED 嘅鋁基板上面分別射 620nm, 660nm 紅色同 460nm藍色,就可以睇倒唔同色嘅 LED 最能夠混出白色。
另外我買左 AS7341 colorimeter 模块返黎試用,當中可見光嘅 channel 有 (415, 445, 480, 515, 555, 590, 630, 680) nm ,用黎測所有LED燈珠之後,再測 WS2812 同我個 IPS 芒嘅 RGB,發覺每條 channel 嘅光度唔準確但峰值值得參考可以用黎造比較。数值加肉眼所見,我發現芒嘅藍色峰值竟然比 WS2812 更短有啲紫色先啱去到大約 450nm,綠色應該唔係 550nm 而係大約 540nm,紅色應該同 WS2812 一樣係 620nm。我用緊嘅芒啲色應該算有一定準確程度,但我跟番 sRGB CIE color chart 個色域三角形作為參考。

觀察所得,紅色無論 620nm 定 660nm 嘅互補色明顯係人眼 Rod sensor 嘅峰值係 495nm,但因為紅色嘅染色力好強,睇幾秒同睇一分鐘啲色因為人眼 white balance 嘅效果會唔同晒,混出黎其實係黃黃地嘅奶白色,睇得耐適應左之後會再白啲。sRGB 嘅 cyan 係紅色嘅互補色 ,但其實只係 460nm 同 495nm 之間 480nm 嘅淺藍色,而 495nm 係感覺特別清新果隻湖水綠,喺一堆藍至綠嘅 LED 之中最無色,又可以話最似白色。 令一方面,460nm 藍色嘅互補色容易睇好多,由 560nm 至 590nm 都可以混出白色,會有輕微帶粉紅色一定同 “紅青” 両隻色混出黎嘅白色唔同。睇過之後我覺得人眼嘅 white balance 係 balance 主導無乜白色嘅概念,所以 CIE chart 用白色造參考畫成色域係三角形嘅意思唔大,我寧願用圓形表達平均色階變化為先,再用曲線補番三對互補色,数值同 CIE chart 一樣。

我用四粒 LED 出黎模擬 RYCB四原色效果,如果話好似整一粒大大粒嘅 WS2812,倒不如話想整一粒 3W RGB LED 嘅四原色版,光度比幾十粒 WS2812 夾埋更高,超出 USB 500mA 供電上限,於是要用電池供電。大功率 LED 嘅 RGB 同 WS2812 一樣係用 460nm, 520nm, 620nm,而我開始時係用 460nm, 490nm, 560nm, 660nm;要獨立每隻色控制光度嘅話,淘宝有 “PWM恒流可調模块” 可以用板上面嘅可調電阻效光度,解決黃光最光而紅同藍係最暗特質嘅問題,之後用再 PWM 微調光度。我用過先知由 3.3V GPIO 出嘅 PWM 只可以控制倒 2V LED,3V LED 嘅話要用 5V電平嘅 PWM,所以要再加 “3.3V轉5V电平轉换模块” 。我將一大堆野銲晒落 6*4 PCB 板方便插喺 Wemos D1 R2 上面之後,遇到 LED 燈珠距離遠而造成均色困難嘅問題,要用到幾層 2mm 厚 “磨砂PP板“,均光板同光源距離越遠效果越好。

我原本已經用 Blynk library 個 UI 調效 WS2812 嘅 HSB,所以只需要再喺 web 同 mobile app 嘅 UI 加埋 4 條 PWM 嘅 range slider 就可以睇倒四原色嘅混色效果。我用 Wemos D1 R2 嘅 D5 至 D8 pin PWM 輸出,但 D8 pin 高電平會 boot 唔倒机,所以只可以駁 2V 嘅紅色 LED,其他 3粒 3V LED 經 “3.3V轉5V电平轉换” 用 5V PWM 控制。一般控制摩打嘅 PWM 因為避免噪音,會用 20000Hz 以上頻率,但控制 LED 嘅 “PWM恒流模块” 我用 analogWriteFreq(400);
降到 400Hz 低頻先可以喺 PWM = 1 著得晒四粒 LED。

要睇晒所有色最簡單嘅方法係用 Illustrator 畫個正方形然後開 Color Picker 可以好方便用 HSB 個 Hue 靠 mouse wheel 轉色;唔小人靠色彩用得多都有個概念馴紅同深綠色出唔倒。我將四原色出倒嘅色喺芒上面用同一光度比較,大約只需要開到 PWM 32,所以芒嘅光度標準 120 nits 其實係好低。結果係出符我意料之外,cyan 一大段顏色同芒嘅顏色完全嘅両個世界,sRGB 最缺深綠至深藍嘅鮮色,其次因為 sRGB 嘅藍色好暗,馴紅色至紫色一段高亮度鮮色從來無喺芒出現過,效果都差好遠。

當我將四原色同 WS2812 比較時,發覺佢嘅 520nm 綠色效果好得多,藍小小嘅湖水綠就無 490nm LED 咁鮮色,但 490nm + 560nm 黃色混出黎嘅綠嘅效果唔好,甚至比 sRGB 嘅綠色差小小。因為無 510nm 燈珠,520nm 嘅效果喺 ws2812 唔算最理想,而且感覺上 500nm 嘅色差係 460nm 同 560nm 正中間,即係話人眼對 500nm 至 560nm 嘅綠色分辦能力係弱啲, 亦反映左喺 CIE chart 上;最後我將 490nm 換成 500nm 之後效果令我滿意,而且感受到 10nm 之差有唔小分別。雖然 500nm + 660nm 黃黃地唔係白色,但加埋 460nm 同 560nm 之後四粒 LED 同等光度混出黎嘅 white balance 都唔錯。
即係話 rod 嘅峰值用 500nm 去形容相對準確而且係原色嘅特質, 人眼主要係集藍至綠光造 red balance 清除紅色,次要先係 white balance 提供更多色彩。因為芒係低光度,原色應該以低光度嘅 cloudy 光線為準,陰天見倒最綠嘅樹葉果隻色就係 500nm,又可以叫 “交通綠” 用喺交通燈,而常見嘅綠係太陽之下見倒嘅綠葉係 520nm。現時相机嘅 sensor 紅色係 cut 多左好多可見光波段,cloudy 同 sunlight 啲紅色份量其實差好遠,唔可能用 sunlight造指標。

如果造 printing 喺話用 Illustrator 嘅 CMYK color profile 啲色會淡左好多就番喺芒睇色準, print 出黎啲色會好準無問題,但如果影相用 Photoshop 執完相用 sRGB print 落有 coating 嘅 A4 相紙,就算部 inkjet printer 係普通 CMYK 四色款,色域比普通紙闊,深色嘅 cyan 其實比 sRGB 更鮮更濃就係最大色差問題,相對 printer 表現最弱最淡嘅色就係芒嘅 RGB 三原色。

一般理解 CMYK 同 RGB 嘅差別會用 “減色” 同 “加色” 去分,CMYK 嘅原色建基於 RGB 反轉,再加 K 嘅黑色增加 constrast 比 CMY 混出黎嘅黑更黑。但如果諗真啲,白色可以無限大,黑色最盡係 -273K 絶對零度先係絶對值低 “熵” 低乱度嘅特質,應該掉番轉諗 RGB “加色” 越光越 “熵增”,所以由黑色開始造參考比由白紙 printing 造參考更合理更準確;但現時例如 color rendering index (CRI) 都係基於 printing 色準測量環境光,而唔係我嘅諗法用單一波長嘅四原色 LED 混出白色造參考比 printing 對色用。
“減色” 同 “加色” 嘅對立理論根本唔正確,想像鄰近嘅 “紅黃” 無論 printing 定 monitor 混出黎都一樣係 “橙”,而且色嘅份量應該両者減半總数保持一份先啱,所以無論由黑底定白定開始都係加灰色有一半 desaturate 效果所以一樣。但如果隔得遠例如 “藍黃”,printing 係好直覺嘅 “綠”,但 monitor 係 “粉紅”,特質係 white balance 同 black balance 嘅對立關係以 desaturate 主導,於是出現 “色彩對立理論”。所以無論係 “吸光” 定 “發光” ,”三原色” 都無法好好涵蓋所有顏色,但 “RYCB四原色” 足夠 “鄰近” 嘅特質,printing “吸光” 嘅原色根本可以同 monitor “發光” 原色一樣再加 K 黑色就可以,由 CMYK 改為 RYCBK。
Reference: