光線感測器是一個測量光度水準的輸入裝置。 您的 BBC micro:bit 使用 LED 來感知光度水準,並讓您把您的 micro:bit 程式設計為一個光線感測器。
micro:bit的光感測器在哪裡?
嚴格來說,Micro:bit板子上沒有特別設置亮度感測器,但卻有5×5的LED燈,這些LED燈是透過Micro:bit上的主控晶片本身具有的GPIO接腳,以輸出狀態來操控LED燈的亮滅。有趣的是,操控LED燈亮滅的接腳其實是多工(扮演一種以上的多種角色)的,這個時間可以充當一般I/O接腳的輸出腳,另一個時間可以充當輸入腳,或再另一個時間充當類比數位轉換器(Analog Device Converter, ADC)的輸入腳。
而Micro:bit的光感測,其實是利用LED燈的反向原理,當LED燈不亮時,若有接收到外界光源,其實是會在LED接腳上出現逆電流的,這時若接腳切換成ADC輸入角色,讀取接腳的電壓數值,是可以得知外界亮度的,所以切換連接LED燈的接腳的角色就可以感測到外界亮度。但在此還有三點要說明:
1. 接腳從一般輸出接腳轉變成ADC輸入接腳時,需要一段時間的穩定,才能對最小的逆電流進行精確量測,這約要4mS(毫秒,千分之一秒)的時間。
2. 啟動亮度感測器後,也會略影響本來的5×5 LED燈顯示,本來是每秒更新55次畫面,會因需要偵測周遭亮度而減少更新頻率,自每秒55次降至50次。
3. LED的逆電流感測其實是對自己本有發出的顏色比較敏感,Micro:bit用的是紅色LED,所以周遭附近若有紅光,紅光亮度的弱與強,是Micro:bit比較可以精準感測的。
LightSensor-01
周遭環境越暗,LED燈越亮,並將Light Sensor的值顯示在「Show data裝置」
※也可以在「Show data裝置」同步顯示LED燈的亮度值
LightSensor-02
周遭環境越暗,心跳越快,並將Light Sensor和心跳速度的值顯示在「Show data裝置」