我的書桌附近光線比較不足,可是也無法說出有多亮或多暗,需要科學的數據,本實作就用光照度感測器 GY-30 BH1750FVI感測模組來測一下我書桌附近的明亮程度。另一個應用是在房間或花園進行亮度照明的偵測,自動控制燈光的開關或亮度調整。
• 供電電源 :3-5v
• 光照度範圍:0-65535 lx
• 感測器內置 16bitAD轉換器:可直接輸出數字,省略複雜的計算
• 接近於視覺靈敏度的分光特性可對廣泛的亮度進行1勒克斯的高精度測定
• 標準NXP IIC通信協定
勒克斯是照度的國際單位制單位,勒克斯(Lux,通常簡寫為lx)是一個標識照度的國際單位制單位,1流明(lm)每平方米面積,就是1勒克斯。
1 lm(球面度) = 1 cd(燭光) x sr(球面度)
如果一個光源發射1燭光的發光強度到1個立體角的範圍裡,則到那個立體角的總發射光通量就是1流明(lm)。每單位面積所接收到的光通量稱為照度。
先到 Github 下載 Claws / BH1750,按右邊綠色選項「Clone or download」,再選「Download ZIP」。
• 將下載的壓縮檔解壓縮,放在 Arduino 主程式下的 libraries目錄內,以我的電腦來說,Arduino安裝在 C:\Program Files (x86)\Arduino,點進目錄有一個 libraries的子目錄,下載後解壓縮的目錄,整個放進 libraries 目錄,重新啟動 Arduino即可。
• GY-30 (BH1750FVI) x1
• 連接線 x 4條
• github:claws/BH1750
[GY-30 BH1750FVI 光強度模組]
GY-30 BH1750FVI的規格如下:• 供電電源 :3-5v
• 光照度範圍:0-65535 lx
• 感測器內置 16bitAD轉換器:可直接輸出數字,省略複雜的計算
• 接近於視覺靈敏度的分光特性可對廣泛的亮度進行1勒克斯的高精度測定
• 標準NXP IIC通信協定
勒克斯是照度的國際單位制單位,勒克斯(Lux,通常簡寫為lx)是一個標識照度的國際單位制單位,1流明(lm)每平方米面積,就是1勒克斯。
1 lm(球面度) = 1 cd(燭光) x sr(球面度)
如果一個光源發射1燭光的發光強度到1個立體角的範圍裡,則到那個立體角的總發射光通量就是1流明(lm)。每單位面積所接收到的光通量稱為照度。
[安裝BH1750 Library]
BH1750函式庫提供用於使用BH1750FVI IC的數位光傳感器模組讀取照明度。先到 Github 下載 Claws / BH1750,按右邊綠色選項「Clone or download」,再選「Download ZIP」。
• 將下載的壓縮檔解壓縮,放在 Arduino 主程式下的 libraries目錄內,以我的電腦來說,Arduino安裝在 C:\Program Files (x86)\Arduino,點進目錄有一個 libraries的子目錄,下載後解壓縮的目錄,整個放進 libraries 目錄,重新啟動 Arduino即可。
[材料]
• Arduino Uno x 1• GY-30 (BH1750FVI) x1
• 連接線 x 4條
[接線與電路圖]
Arduino | GY-30 BH1750FVI |
---|---|
5V(VCC) | VCC |
GND | GND |
A4(SDA) | SDA |
A5(SCL) | SCL |
[程式]
#include <Wire.h> #include <BH1750.h> BH1750 lightMeter; void setup(){ Serial.begin(9600); // 初始化 I2C // 如果是 esp8266裝置,可以用 SCL 及 SDA 來使用 Wire.begin(D4, D3); Wire.begin(); lightMeter.begin(); Serial.println(F("BH1750 Test")); } void loop() { float lux = lightMeter.readLightLevel(); Serial.print("Light: "); Serial.print(lux); Serial.println(" lx"); delay(1000); }
[實作結果]
[參考資料]
• wikipedia:勒克斯• github:claws/BH1750
請問為何跑出來會變倒過來的問號
回覆刪除原本是跑得出來的 但後來就變這樣了
回覆刪除可私嗎
回覆刪除可以喔,歡迎來信討論。我的email: atceiling@gmail.com
刪除第一個連結錯了喔 ?
回覆刪除已經更新, 謝謝告知!!
刪除張貼留言