硬件准备
Arduino Uno(其他版本均可适用)
GY-30光照传感器
接线部分
GY-30 | Arduino |
---|---|
VCC | 5V |
GND | GND |
SCL | A5 |
SDA | A4 |
代码部分
用到的库文件是
完整代码
#include <Wire.h>
#define ADDR 0b0100011
void setup() {
Serial.begin(9600); //设置波特率
while (!Serial) {
;}
Wire.begin();
Wire.beginTransmission(ADDR);
Wire.write(0b00000001);
Wire.endTransmission();
}
void loop() {
int val = 0; //初始化光照值
Wire.beginTransmission(ADDR);
Wire.write(0b00000111);
Wire.endTransmission();
Wire.beginTransmission(ADDR);
Wire.write(0b00100000);
Wire.endTransmission();
delay(120);
/*计算光照*/
Wire.requestFrom(ADDR, 2); //每次2byte
for (val = 0; Wire.available() >= 1; ) {
char c = Wire.read();
val = (val << 8) + (c & 0xFF);
}
val = val / 1.2;
/*输出光照数值*/
Serial.print("当前光照值: ");
Serial.println(val);
delay(500);
}
实际效果展示
通过改变灯光的大小改变光照检测数值
祝你顺利!!!