Arduino教程:光强传感器控制OLED背光
创作时间:
作者:
@小白创作中心
Arduino教程:光强传感器控制OLED背光
引用
CSDN
1.
https://blog.csdn.net/TonyIOT/article/details/103343536
像手机、平板之类的电子设备,屏幕亮度都能随环境光强度自动调节,其内部使用的是小体积的数字光照传感器。本篇我们使用GY-30光照传感器模块来控制OLED显示屏的背光亮度,使其随环境光自动调节。
实验材料
- Uno R3开发板
- 配套USB数据线
- 面包板及配套连接线
- OLED显示屏
- 数字光强传感器GY-30模块
实验步骤
1. 根据原理图搭建电路图
OLED屏的VCC、GND、SDA、SCL与GY-30模块的VCC、GND、SDA、SCL相对应连接,然后连接到开发板的5V、GND、A4、A5。两个模块都使用了硬件IIC,由于各自地址不同,所以并不会相互影响,这也是IIC通讯协议的优势所在。
实验原理图如下图所示:
实物连接图如下图所示:
2. 新建sketch,拷贝如下代码替换自动生成的代码并进行保存
/*
OLED_BH1750
光照传感器OLED背光控制
*/
#include <Arduino.h>
#include <U8g2lib.h>
#include <Wire.h>
U8G2_SSD1306_128X64_NONAME_1_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);//使用硬件IIC
int BH1750address = 0x23;
byte buff[2];
uint16_t val = 0;
char str[6];
void setup()
{
Wire.begin();
BH1750_Init(BH1750address);
u8g2.begin();
u8g2.setFont(u8g2_font_fur20_tf);
}
void loop()
{
if (2 == BH1750_Read(BH1750address))
{
if (buff[0] == 255 && buff[1] == 255)
{
val = 65535;
} else {
val = ((buff[0] << 8) | buff[1]) / 1.2; //芯片手册中规定的数值计算方式
}
}
strcpy(str, u8x8_u16toa(val, 5));
u8g2.firstPage();
do {
u8g2.drawStr(20, 20, "-Light-");
u8g2.drawStr(10, 60, str);
u8g2.drawStr(95, 60, "Lx");
u8g2.setContrast(255 - map(val, 0, 500, 0, 255)); //将光照数据进行区间映射,控制OLED背光
} while ( u8g2.nextPage() );
}
int BH1750_Read(int address)
{
int i = 0;
Wire.beginTransmission(address);
Wire.requestFrom(address, 2);
while (Wire.available())
{
buff[i] = Wire.read(); // receive one byte
i++;
}
Wire.endTransmission();
return i;
}
void BH1750_Init(int address)
{
Wire.beginTransmission(address);
Wire.write(0x10);
Wire.endTransmission();
}
3. 连接开发板,设置好对应端口号和开发板类型,进行程序下载
实验现象
OLED屏幕显示采集到的环境光强,并且屏幕亮度随环境光强度而自动调节。
实验分析
在U8g2库中,通过函数setContrast()来调节背光亮度,此函数接收0~255之间的数值,数值越大,背光越亮。
我们通过map()函数,截取光照强度的一部分[0, 500],映射成[0,255]之间的数值。我们希望当光照弱时背光亮一些,光照强时背光暗一些,所以setContrast()函数接收的数值使用255减去实际的光照强度,如下:
u8g2.setContrast(255 - map(val, 0, 500, 0, 255));
热门推荐
35岁以上难找工作?中年职场危机如何破?这份报告出炉,事关中高龄求职者
勇敢面对,处理感情问题的实用技巧
火山石滤材:尺寸选择全攻略
双色球开出“顺子”号码,5注一等奖各得929万!
React组件生命周期完全指南
如何在Windows 11上更改通知声音?这里提供几种方法
拥抱多元之美:审美无绝对,尊重每一种艺术的价值
冬季养生全攻略:固精藏阳,温暖过冬
表格教学:让小学数学课堂更高效
揭秘《哪吒2》角色设计:哪吒的色彩奥秘
秀山寺的树下禅意空间改造:以“自然、惜物”理念重塑千年古刹
云电脑:定义、原理、应用及未来趋势
《堡垒之夜》钢铁侠MK45皮肤评测:经典战甲重现战场
丹东旅游全攻略:边境风情与自然美景的完美融合
北京市西城区人民法院提醒:二手房购房合同风险解析
生辰八字配对:传统婚姻预测方法详解
上市公司回购股份用于股权激励的所得税处理详解
那些照亮心灵的灯火,十个名人读书的励志小故事,你读懂了几个?
大龄剩女的心理学揭秘:理性压倒感性
简历的篇幅多长比较合适
PQQ:提升认知和情绪的超级营养素
Gin框架+SSE:高并发实时推送的秘密武器
二手房购房合同:这些坑你得躲!
鹦鹉怕冷吗它适合多少度(鹦鹉饲养环境的五大基本条件!)
鲁迅:文学巨匠的反思与批判,他的作品为何永不过时
塔罗牌力量 (Strength)正位的爱情与婚姻
复合挽回塔罗牌方法
美债利率攀升,如何优化资产配置?
武磊31岁重返西班牙人队,成首位亮相五大联赛的中国国足球员
双十一理财攻略:高效储蓄技巧大揭秘!