溫度感測器temperature

 Micro:bit主控晶片之所以內建溫度感測器,是為了保護主控晶片自身,一旦晶片溫度過高,晶片的保護電路會強制晶片減慢執行速度,使晶片降溫,甚至要求停止運算,達到更快降溫,避免晶片因高溫而損壞。但是,這個內建的溫度感測器,感測器電路是在晶片的裸晶上,是在晶片封裝內的,主要是感測晶片表面溫度,而不是晶片外的溫度,更不是晶片周遭的溫度。所以該感測器量測到的溫度數值與真正在晶片外配置的溫度感測器所量得的數值,是有差異的。

即便如此,溫度的變化卻是一致的。假若晶片內感測器的溫度是20度,外界是17度,當外界升溫到18度時,感測器會顯示21度。嚴格來說,Micro:bit提供的是溫差感測器,時時讀取是可以掌握溫度的消長變化,但不是絕對精準的攝氏溫度,畢竟內建的感測器,所配置的位置不同,原先設計的用途也不在感測外部溫度,我們只是暫時偷用,取巧借用而已。

當然,使用這一取巧招時,有兩個先決條件,一是晶片本身表面溫度要夠冷才行,若晶片一直在密集運算處理執行工作,晶片表面溫度升高,高過周遭溫度,那就難以感測周遭溫度,溫度感測器回歸它本有的晶片表面溫度感測工作;另一是晶片本身不能處於休眠狀態,因為讀取溫度數值,是呼叫晶片工作而取得,晶片一旦睡著了就不可能進行感測工作。