準備
◆Arduinoのソフト(PCにインストール無料)
◆Arduino のハード(ピンヘッダー同梱)(360円+送料170)
◆照度センサー モジュール (520円+送料170)
→
◆Arduinoのソフト(PCにインストール無料)
◆Arduino のハード(ピンヘッダー同梱)(360円+送料170)
◆Arduinoのソフト(PC)とArduinoのハードをつなぐUSBケーブル(100円+送料170)
工作開始
◆全てつなぎましょう。照度センサー モジュールは電圧変換内臓。
◆Arduino Unoにスケッチ を書き込みましょう
ツール > マイコンボード > Arduino Uno
ツール > シリアルポート > Arduino Unoが接続されているポート
スケッチを書く
#include <Wire.h> //IIC
int BH1750address = 0x23;//ADDR<0.3VCC
//int BH1750address = 0x5c;//ADDR>0.7VCC
int HighByte, LowByte;
float MeasurementAccuracy, val;
void setup()
{
Wire.begin();
Serial.begin(9600);
Wire.beginTransmission(BH1750address);
Wire.write(0x10); MeasurementAccuracy = 1.2;//1lx reolution 120ms
//Wire.write(0x11); MeasurementAccuracy = 2.4;//0.5lx reolution 120ms
//Wire.write(0x13); MeasurementAccuracy = 1.2;//4lx reolution 16ms
//Wire.write(0x20); MeasurementAccuracy = 1.2;//1lx reolution 120ms oneTime
//Wire.write(0x21); MeasurementAccuracy = 2.4;//0.5lx reolution 120ms oneTime
//Wire.write(0x23); MeasurementAccuracy = 1.2;//4lx reolution 16ms oneTime
Wire.endTransmission();
delay(240);
}
void loop()
{
Wire.beginTransmission(BH1750address);
Wire.requestFrom(BH1750address, 2);
HighByte = Wire.read();
LowByte = Wire.read();
Wire.endTransmission();
val=(HighByte*128+LowByte)/MeasurementAccuracy;
Serial.print(val,1);
Serial.println("[lx]");
delay(160);
}
int BH1750address = 0x23;//ADDR<0.3VCC
//int BH1750address = 0x5c;//ADDR>0.7VCC
int HighByte, LowByte;
float MeasurementAccuracy, val;
void setup()
{
Wire.begin();
Serial.begin(9600);
Wire.beginTransmission(BH1750address);
Wire.write(0x10); MeasurementAccuracy = 1.2;//1lx reolution 120ms
//Wire.write(0x11); MeasurementAccuracy = 2.4;//0.5lx reolution 120ms
//Wire.write(0x13); MeasurementAccuracy = 1.2;//4lx reolution 16ms
//Wire.write(0x20); MeasurementAccuracy = 1.2;//1lx reolution 120ms oneTime
//Wire.write(0x21); MeasurementAccuracy = 2.4;//0.5lx reolution 120ms oneTime
//Wire.write(0x23); MeasurementAccuracy = 1.2;//4lx reolution 16ms oneTime
Wire.endTransmission();
delay(240);
}
void loop()
{
Wire.beginTransmission(BH1750address);
Wire.requestFrom(BH1750address, 2);
HighByte = Wire.read();
LowByte = Wire.read();
Wire.endTransmission();
val=(HighByte*128+LowByte)/MeasurementAccuracy;
Serial.print(val,1);
Serial.println("[lx]");
delay(160);
}
→
◆シリアルモニタで見てみましょう
0 件のコメント:
コメントを投稿