- 輸入電壓:3.3V~5.5V
- 內建環境光感測器 STK3337-X
- 整合了環境光感測器、接近感測器和紅外線 LED
- 解析度:16-bit - 通訊介面:I2C (地址:0x47)
- 可為接近感測器及環境光感測器設定上下閥值
- 具有準位轉換電路
- 溫度補償:-40℃~85℃
- 尺寸:27 x 23 x 2 mm
- 淨重:2.61g
BMS33M332 內建環境光感測器 STK3337-X 及準位轉換電路,可以透過 I2C 介面來取環境光數值及接近感應狀態。我們將此模組腳位設計成 BMCOM,方便直接與 BMduino開發板連接使用 (例如:BM53A367A)。
如果您沒有 BMduino 開發板,也可以搭配其他開發板使用 (例如:Arduino UNO)。
環境光感測器 (Ambient Light Sensor,簡稱 ALS) 主要用於偵測環境中光線的變化,本產品的感測峰值為波長 550nm 附近,接近人眼對可見光的反應機制。這個功能可以被用來自動調整顯示器的亮度,確保畫面在各種環境下都能呈現最佳效果。
接近感測器 (Proximity Sensor,簡稱 PS) 利用紅外線 LED 反射光的強弱來判斷物體和感測器之間的距離。可以用來感知手機是否被貼在耳朵上講電話,若是則會關閉螢幕來省電。本模組內建的紅外線 LED 具有七段可調整的電流值。
腳位 | 腳位名稱 | 功能 |
---|---|---|
1 | GND | 接地 |
2 | VDD | 供電:3.3V~5.5V |
3 | SDA | I2C: 數據線 |
4 | SCL | I2C: 時鐘線 |
5 | INT | 中斷報警腳位 |
STK3337-X 是環境光 (ALS) 與接近 (PS) 感測器,並內建紅外線 LED 與 16-bit ADC。環境光的強度與接近感測所偵測到的反射光強度都是 16 位元的資料,分別可從 DATA_ALS (暫存器地址 0x13 與 0x14)、DATA_PS (暫存器地址 0x11 與 0x12) 讀取。
讀 DATA_ALS、DATA_PS 的時候須先讀高位元組 (high byte) 再讀低位元組 (low byte),亦即,讀接近光強度時先讀 0x11 再讀0x12,讀環境光強度時先讀 0x13 再讀 0x14。
STK3337-X 有一個 INT 腳位,有中斷 (interrupt) 產生時,INT 腳會由高電平 (high) 轉為低電平 (low),使用 INT 腳位可讓 MCU 不須一直輪詢 (polling) 上述的接近光值或環境光值。
產生中斷的機制是預先設定好接近光上下閥值及環境光上下閥值,當接近光或環境光的強度落在上下閥值之外時,INT 腳位從高電平變低電平,亦即接近光值高於上閥值 (THDH_PS) 或低於下閥值 (THDL_PS) 時,INT 腳位變低電平。同理,環境光值高於上閥值 (THDH_ALS) 或低於下閥值 (THDL_ALS) 時,INT 腳也會變低電平。
由於使 INT 腳位變為低電平有多種來源,因此 MCU 可藉由讀 FLAG 暫存器 (地址 0x10) 來判斷。
上述的說明是使用 STK3337-X 的方式之一,MCU 程式可依循以下步驟:
接近感測有另一種中斷模式,其設置方式是將 INTCTL1 暫存器 (地址 0x04) 裡的 PS_NF_MODE 設為 1。
在此模式下,INT 腳位變成為狀態指示 (遠離或接近),與 FLAG 暫存器 (地址 0x10) 裡的 FLG_NF 的功能相同,接近時為低電位 (low),遠離時為高電位(high)。
在這種模式下,INT 腳位不適合做為中斷功能,MCU 讀 INT 腳位的值就可知道物體為接近或遠離狀態,不須透過 I2C 介面下指令讀 FLG_NF。