隨著科技的發展,測光表不再那么神秘,從一些家居裝飾店到網絡平臺上基本都可以買到。本文將介紹一個開源測光表的制作。如果覺得購買成品價格不能接受,那我們為什么不自己嘗試造一個呢?下面具體介紹基于Arduino的測光表,它可以在數字環境光傳感器的幫助下測量光的強度,核心是來自ROHM的BH1750FVI。
光傳感器模塊
在網上有很多不同類型的BH1750FVI模塊,它們最核心部分是都是一樣的。本文采用的是來自taobao的GY-30光強度模塊,它也是基于BH1750FVI數字環境光傳感器的,模塊內置了16位ADC,因此它不需要復雜的數學運算就可以直接輸出數字信號,模塊采用I2C接口,直接輸出lux數據(光強度的單位是流明lx)。除了光傳感器之外,模塊上還集成了低電壓調節器和邏輯轉換器組件。模塊支持3.3v~5V的直流供電。
如上圖所示,GY-30光強度傳感器模塊是一個5針模塊,其中兩個用于電源VCC和GND,兩個用于I2C接口SCL和SDA,ADD用于設置傳感器的I2C地址。當ADD懸空或將其連接到GND,此時I2C地址是0x23(默認值),如果將ADD連接到VCC,地址將是0x5C。
控制器和顯示器
其它的硬件包含Arduino Nano 和0.96英寸的OLED顯示器,它的分辨率為128 x 64。這些東西在網上都很常見,而且價格也比較便宜。
Arduino Nano不占用空間,同時擁有足夠的輸入輸出,并且它還包含了一個用于簡單編程的USB接口!
0.96英寸的I2C接口OLED顯示器,黃藍色字符,分辨率128 x 64.
電路連接圖
Arduino光強度測試代碼
按圖完成硬件連接后,我們將進入軟件部分,光強度測試代碼比較簡單,這里會用到著名的“u8glib library”來驅動OLED顯示器。需要注意的是,我手頭的OLED顯示器只能使用默認的I2C地址,不能另外設置,默認I2C地址是0x3C。下面是測試代碼:
/*
Arduino測光表測試代碼:
1、BH1750 環境光傳感器
2、Arduino Nano/Uno+
3、0.96″, 128×64, OLED (SSD1306) 顯示器
*Lux (lx) 是國際光亮度標準單位,它定義是每平方米的流明度(lm/m2)
*/
#include // I2C Library
#include “U8glib.h”
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE | U8G_I2C_OPT_DEV_0);
int BH17_add = 0x23; // I2C address of BH1750
byte buff[2];
void setup() {
Wire.begin();
BH750_Init(BH17_add);
delay(200);
}
void light() {
float valf = 0;
u8g.setFont(u8g_font_unifont);
u8g.setPrintPos(0, 50);
if (BH1750_Read(BH17_add) == 2) {
valf = ((buff[0] << 8) | buff[1]) / 1.2;
if (valf < 0)u8g.print(“> 65535”);
else
u8g.setPrintPos(0, 20);
u8g.print(“www.Basemu.com”);
u8g.setPrintPos(0, 30);
u8g.print(“————–“);
u8g.setPrintPos(0, 40);
u8g.print(“Light Meter”);
u8g.setPrintPos(0, 60);
u8g.print((int)valf, DEC);
u8g.print(” LX/SI”);
}
delay(100);
}
void loop() {
u8g.firstPage();
do {
light();
} while (u8g.nextPage());
}
void BH750_Init(int address) {
Wire.beginTransmission(address);
Wire.write(0x10);
Wire.endTransmission();
}
byte BH1750_Read(int address) {
byte i = 0;
Wire.beginTransmission(address);
Wire.requestFrom(address, 2);
while (Wire.available()) {
buff[i] = Wire.read();
i++;
}
Wire.endTransmission();
return i;
}
-
Rohm
+關注
關注
8文章
372瀏覽量
66062 -
Arduino
+關注
關注
188文章
6469瀏覽量
187091 -
BH1750FVI
+關注
關注
1文章
2瀏覽量
3166
發布評論請先 登錄
相關推薦
評論