GY-30 + lcd1602 光照传感器
//GY-30 光照传感器接法// ADD - GND
// GND - GND
// SDA - A4
// SCL - A5
// VCC - 3.3V
#include<LiquidCrystal.h>
LiquidCrystal lcd(12,11,10,9,8,7,6,5,4,3,2);
#include<Wire.h>
#include<math.h>
int BH1750address = 0x23;
byte buff;
int i;
void setup() {
lcd.begin(16, 2);
Wire.begin();
Serial.begin(9600);
}
void loop() {
lcd.home();
lcd.print( BH1750() );
lcd.print("");
}
double BH1750()
{
int i=0;
double val=0;
Wire.beginTransmission(BH1750address);
Wire.write(0x10);
Wire.endTransmission();
delay(200);
Wire.beginTransmission(BH1750address);
Wire.requestFrom(BH1750address, 2);
while(Wire.available())
{
buff = Wire.read();
i++;
}
Wire.endTransmission();
if(2==i)
{
val=((buff<<8)|buff)/1.2;
}
return val;
lcd.clear();
lcd.setCursor(0,0);
} 照片怎样发 //GY-30 光照传感器接法
// ADD - GND(BH1750 IIC设备地址引脚)
// GND - GND
// SDA - A4(IIC总线数据引脚)
// SCL - A5(IIC总线时钟引脚)
// VCC - 3.3V
#include<LiquidCrystal.h>
LiquidCrystal lcd(12,11,10,9,8,7,6,5,4,3,2);
#include<Wire.h>
#include<math.h>
int BH1750address = 0x23;//BH1750 IIC地址
byte buff;
void setup()
{
Wire.begin();
Serial.begin(9600);
lcd.begin(16,2);//设定lcd行列數目(2x16)
lcd.clear();//清屏
lcd.setCursor(0,0);//光标位置置于0,0(光标所在的位置, 就是下一个字符将会被显示的位置)
}
void loop()
{
int i;
uint16_t val = 0;
BH1750_Init(BH1750address);//初始化模块
delay(200);
if (2 == BH1750_Read(BH1750address))//读两个字节
{
val = ((buff << 8) | buff) / 1.2;//数据处理
// Serial.println("Light sensor:");
Serial.println("Illumination is:");
Serial.print(val, DEC);
Serial.println("");
lcd.clear();//清屏
lcd.setCursor(0,0);//光标从这里开始
lcd.print("Illumination is");
lcd.setCursor(0,1);//换行后显示光照强度
lcd.print(val, DEC );//val将字符串转化为数,DEC十进制方式显示
lcd.print("");
}
delay(500);
}
int BH1750_Read(int address) //读取数据
{
int i = 0;
Wire.beginTransmission(address);
Wire.requestFrom(address, 2);//数据格式
while (Wire.available())
{
buff = Wire.read();// receive one byte
i++;
}
Wire.endTransmission();
return i;
}
//获取光强函数
void BH1750_Init(int address)
{
Wire.beginTransmission(address);
Wire.write(0x10);//1lx reolution 120ms
Wire.endTransmission();
}
请问 我这个程序为什么在1602上显示不出来啊
页:
[1]