Arduino+0.96OLED+GY30光照传感器Module UNO
一、电路连接
VCC <-----> 5V
GND <-----> GND
SCL <-----> A5
SDA <-----> A4
ADD <-----> NC
OLED接线方式:
VCC<————>3.3V
GND<————>GND
SCL<————>SCL
SDA<————>SDA
LED1<————>10
LED2<————>11
二、实验材料
Uno R3开发板
GY-30光照传感器
面包板及配套连接线
2个LED灯
1个0.96OLED
三、功能
1、OLED实时显示光照强度
2、当光照强度大于600LX时关灯
3、当光照强度大于200小于600时打开冷光灯,并随着光强度变化而变化,强度越大灯光越暗(PWM调节),同时OLED显示开关状态;
4、当光照强度小于200时打开暧光灯关闭冷光,并随着光强度变化而变化,强度越大灯光越暗(PWM调节),同时OLED显示开关状态;
5、使用u8glib库操作OLED屏
6、串口实时发送相应标志数据,可通过ESP8266发送到APP端显示参数
特点:无需人为干预的自动控制设备。
0.96寸OLED汉字显示设置
四、参考示例
/*
Measurement of illuminance using the BH1750FVI sensor module
Connection:
Module UNO
VCC <-----> 5V
GND <-----> GND
SCL <-----> A5
SDA <-----> A4
ADD <-----> NC
OLED接线方式:
VCC<————>3.3V
GND<————>GND
SCL<————>SCL
SDA<————>SDA
LED1<————>10
LED2<————>11
LingShun LAB*/
#include "U8glib.h"
#include <Wire.h>
// OLED库
#define ADDRESS_BH1750FVI 0x23 //ADDR="L" for this module
#define ONE_TIME_H_RESOLUTION_MODE 0x20
//One Time H-Resolution Mode:
//Resolution = 1 lux
//Measurement time (max.) = 180ms
//Power down after each measurement
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE); // I2C
const unsigned char pinMotorCW = 10; // 接控制电机顺时针转的 H 桥引脚
const unsigned char pinMotorCCW = 11; // 接控制电机逆时针转的 H 桥引脚
byte highByte = 0;
byte lowByte = 0;
unsigned int sensorOut = 0;
unsigned int illuminance = 0;
unsigned int Warm_Empty = 0; //暧光 变量
unsigned int Cold_Empty = 0;//冷光
int ledValue = 0; //保存LED灯占空比
const uint8_t bitmap_g [] U8G_PROGMEM ={
0x01,0x00,0x21,0x08,0x11,0x08,0x09,0x10,0x09,0x20,0x01,0x00,0xFF,0xFE,0x04,0x40,
0x04,0x40,0x04,0x40,0x04,0x40,0x08,0x42,0x08,0x42,0x10,0x42,0x20,0x3E,0xC0,0x00//"光",0
};
const uint8_t bitmap_q [] U8G_PROGMEM ={
0x00,