TSL25911 Light Sensor

来自Waveshare Wiki
跳转至: 导航搜索
Light-Sensor
{{{name2}}}
{{{name3}}}
功能简介
特性 环境光传感器
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
接口 I2C

说明

产品概述

TSL2591x Light Sensor是以TSL25911为核心 的环境光传感器。能感知周围的环境光强度,并通过I2C接口输出。输出数据使用公式推导出以勒克斯为单位的照度(环境光光强)以近似人眼反应。

产品特性

  • 采用TSL25911FN,可测量红外光及人类可见光 (相比TSL2561测量范围更广)
  • 内置ADC,通过I2C接口可直接输出光强度,不易受噪声干扰
  • 灵敏度高达188uLux,动态范围宽达600M:1
  • 内置红外光敏二极管,即使在红外噪声干扰大的环境中也能较精确的测量
  • 具有中断输出,可编程上下限阈值
  • 板载电平转换电路,可兼容3.3V/5V的工作电平
  • 提供完善的配套资料手册(Raspberry/Arduino/STM32示例程序和用户手册等)

产品参数

  • 工作电压: 3.3V/5V
  • 传感器: TSL25911FN
  • 逻辑电压: 3.3V/5V
  • 通信接口: I2C
  • 有效量程: 0-88000Lux
  • 产品尺寸: 27mm x 20mm
  • 固定孔径: 2.0mm

接口说明

  • 引脚功能
引脚号 标识 管脚描述
1 VCC 3.3V/5V电源正
2 GND 电源地
3 SDA I2C数据线
4 SCL I2C时钟线
5 INT 外部中断引脚

硬件说明

芯片

本产品采用TSL25911FN为核心,是一款基于IIC总线通信的光强数字转换器。传感器将一个宽带光电二极管(可见光和红外光)和一个红外响应光电二极管组合在能够在有效的16 位动态范围(16 位分辨率)上提供近光适应响应的单个 CMOS 集成电路上。两个积分 ADC将光电二极管电流转换为表示在每个通道上测量的辐照度的数字输出。该数字输出可以被输到微处理器,其中使用经验公式导出以勒克斯为单位的照度(环境光水平)以近似人眼反应。

通信协议

从上面功能引脚表得知使用的是I2C通信,I2C 通信,一条数据线,一条时钟线。 I2C 总线在传送数据过程中共有三种类型信号:开始信号、结束信号和应答信号。
TSL2591写时序.png
开始信号:SCL 为高电平时, SDA 由高电平向低电平跳变,开始传送数据。
结束信号:SCL 为高电平时, SDA 由低电平向高电平跳变,结束传送数据。
应答信号:接收数据的 IC 在接收到 8bit 数据后,向发送数据的 IC 发出特定的低电平脉冲,表示已收到数据。

  • I2C写数据时序

Tsl2591写.png
首先主机(即树莓派,后面统称为主机)会发送一个开始信号,然后将其 I2C 的 7 位地址与写操作位组合成 8 位的数据发送给从机(即 TSL2581 传感器模块,后面统称为从机),从机接收到后会响应一个应答信号,主机此时将命令寄存器地址发送给从机,从机接收到发送响应信号,此时主机发送命令寄存的值,从机回应一个响应信号,直到主机发送一个停止信号,此次 I2C 写数据操作结束

  • I2C读数据时序

2591读.png
首先主机会发送一个开始信号,然后将其 I2C 的 7 位地址与写操作位组合成 8 位的数据发送给从机,从机接收到后会响应一个应答信号,主机此时将命令寄存器地址发送给从机,从机接收到发送响应信号,此时主机重新发送一个开始信号,并且将其 7 位地址和读操作位组合成 8 位的数据发送给从机,从机接收到信号后发送响应信号,再将其寄存器中的值发送给主机,主机端给予响应信号,直到主机端发送停止信号,此次通信结束。

  • I2C地址

TSL25911的I2C设备地址为0X29
25912C地址.png
TSL25911数据手册第28页
注意:0X29这个设备地址是7位的,8位设备地址需要向高位移一位变成0X52

树莓派使用

开启I2C接口

  • 在终端执行:
sudo raspi-config 
#选择 Interfacing Options -> I2C ->yes 启动 i2C 内核驱动

2591树莓派.png

  • 然后重启树莓派
sudo reboot

安装库

  • 安装BCM2835,打开树莓派终端,并运行下指令
wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.60.tar.gz
tar zxvf bcm2835-1.60.tar.gz 
cd bcm2835-1.60/
sudo ./configure
sudo make
sudo make check
sudo make install
  • 安装wiringpi
sudo apt-get install wiringpi
#对于树莓派4B可能需要进行升级:
cd /tmp
wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb
gpio -v

硬件连接

TSL25911 Light Sensor 树莓派(BCM)
VCC 3.3V
GND GND
SDA SDA(2)
SCL SCL(3)
INT 4

TSL25911-Pi-WS.jpg

下载并运行测试例程

sudo apt-get install p7zip-full
wget http://www.waveshare.net/w/upload/b/bc/TSL2591X_Light_Sensor_code.7z
7z x TSL2591X_Light_Sensor_code.7z -r -o./TSL2591X_Light_Sensor_code
sudo chmod 777 -R  TSL2591X_Light_Sensor_code

此外,也可以下载我们GitHub上面的工程:

sudo git clone https://github.com/waveshare/TSL2591X-Light-Sensor
  • 请注意目录稍微有些不同

C程序

cd TSL2591X_Light_Sensor_code/TSL2591x_Light_Sensor_code/RaspberryPi/c
make clean
make
sudo ./main

预期效果如下图

TSL25911 RPI test.png

  • 注意:示例的程序目录以实际为准;

python程序

cd
cd TSL2591X_Light_Sensor_code/TSL2591x_Light_Sensor_code/RaspberryPi/python/examples
sudo python main.py

TSL25911 RPI test python.png

STM32使用

在产品百科界面下载程序,然后解压。STM32程序位于 ~/ STM32/… 打开STM32中的\XNUCLEO-F103RB\MDK-ARM\demo.uvprojx,使用Keil uVision5打开。例程使用的是HAL库。测试使用的开发板为微雪XNUCLEO-F103RB,芯片为STM32F103RBT6,如需换芯片或者想使用标准库你只需要更改DEV_Config.c和.h即可,实现里面的函数和宏定义即可。换芯片也可以使用STM32CubeMX。例程使用串口2(PA2,PA3)输出数据。串口波特率为115200,其他默认:数据位8位,停止位1位,没有校验。
参考微雪课堂:https://www.waveshare.net/study/article-644-1.html

硬件连接

TCS34725 Color Sensor STM32
VCC 3.3V
GND GND
SDA SDA/D14/PB9
SCL SCL/D15/PB8
INT D8/PA9

TSL25911-STM32-WS.jpg

预期效果

电脑打开串口助手,选择对应的端口,即可查看实验现象:

Stm2519效果.png

Arduino使用

在产品百科界面下载程序,然后解压。Arduino程序位于 ~/Arduino UNO/… 把Arduino目录下的文件夹复制到Arduino安装目录的libraries下,一般是
C:\Users\XXX\Documents\Arduino\libraries 或者 C:\Program Files (x86)\Arduino\libraries
打开Arduino IDE: 点击 File-> Example,查看是否有TSL25911选项,若有说明库导入成功,打开TSL25911-demo, 选择对应的COM口,下载到UNO上,打开串口监视器,即可查看实验现象;

硬件连接

TCS34725 Color Sensor Arduino
VCC 3.3V/5V
GND GND
SDA SDA
SCL SCL
INT D8

TSL25911-Arduino-WS.jpg

预期效果

下图为测试输出数据:
Arduino效果.png

资料

文档

程序

数据手册


FAQ


如果运行wiringPi例程正常,再运行python或者BCM2835可能会屏幕无法正常刷新,因为bcm2835库是树莓派cpu芯片的库函数,底层是直接操作寄存器,而wiringPi库和python的底层都是通过读写linux系统的设备文件操作设备,可能导致GPIO口异常,重启树莓派可完美解决。


确认波特率是否设置为115200,对于STM32例程请确认电脑正确连接开发板USART2(PA2,PA3),PA2为TXD,并且选择正确的COM端口。控制面板->硬件->设备管理器。

2591question2.png


技术支持


联系人:林工
EMAIL:3005425717@qq.com
电话:0755-83043099
QQ:3005425717
微信:扫下方二维码添加
Lzr.png

说明:进行售后服务前,请准备好客户信息(定货单位、定货人等),以供验证