ESP8266-Arduino编程实例-ISL29125 RGB颜色光传感器驱动

ISL29125 RGB颜色光传感器驱动

1、ISL29125介绍

ISL29125 是一款低功耗、高灵敏度、红色、绿色和蓝色光传感器 (RGB),具有 I2 C(SMBus 兼容)接口。 其先进的光电二极管阵列可提供准确的 RGB 光谱响应和出色的光源对光源变化 (LS2LS)。 ISL29125 旨在抑制光源中的 IR,使设备能够在从阳光到黑暗房间的环境中运行。 积分 ADC 可抑制人造光源引起的 50Hz 和 60Hz 闪烁。 可选择的范围允许用户优化适合特定应用的灵敏度。

在正常工作模式下,器件消耗 56µA,在掉电模式下降至 0.5µA。 ISL29125 支持硬件和软件用户可编程中断阈值。 中断持久性功能减少了错误的触发通知。 该器件的工作电源 (VDD) 为 2.25V 至 3.63V,I2 C 电源为 1.7V 至 3.63V,工作温度范围为 -40°C 至 +85°C。

在这里插入图片描述

ISL29125具有如下特性:

  • 56µA 工作电流,0.5µA 关断电流
  • 可选范围(通过 I2C)
  • I2C(SMBus 兼容)输出
  • ADC 分辨率 16 位
  • 可编程中断窗口
  • 两个光学灵敏度范围
  • 范围 0 = 5.7m 勒克斯至 375 勒克斯
  • 范围 1 = 0.152 勒克斯至 10,000 勒克斯
  • 工作电源 2.25 至 3.63V
  • I2C 电源 1.7V 至 3.63V
  • 6 Ld ODFN (1.65×1.65×0.7mm) 封装

2、硬件准备

  • ESP8266 NodeMCU开发板一块
  • ISL2915传感器模块一个
  • 面板板一个
  • 杜邦线若干
  • 数据线一条

硬件接线如下:

传感器引脚 ESP8266开发板引脚
Vin 5v
Gnd Gnd
SCL D1
SDA D2

3、软件准备

  • Arduino IDE或VSCode + PlatformIO

在前面的文章中,对如何搭建ESP8266开发环境做了详细的介绍,请参考:

ESP8266 NodeMCU的引脚介绍在前面的文章中做了详细的介绍,请参考:

4、代码实现

本次实例使用到的驱动库如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <Wire.h>
#include "SparkFunISL29125.h"

// Declare sensor object
SFE_ISL29125 RGB_sensor;

void setup()
{
// Initialize serial communication
Serial.begin(115200);

// Initialize the ISL29125 with simple configuration so it starts sampling
if (RGB_sensor.init())
{
Serial.println("Sensor Initialization Successful\n\r");
}
}

// Read sensor values for each color and print them to serial monitor
void loop()
{
// Read sensor values (16 bit integers)
unsigned int red = RGB_sensor.readRed();
unsigned int green = RGB_sensor.readGreen();
unsigned int blue = RGB_sensor.readBlue();

// Print out readings, change HEX to DEC if you prefer decimal output
Serial.print("Red: "); Serial.println(red,HEX);
Serial.print("Green: "); Serial.println(green,HEX);
Serial.print("Blue: "); Serial.println(blue,HEX);
Serial.println();
delay(2000);
}

文章来源: https://iotsmart.blog.csdn.net/article/details/126776572