匿名
未登录
登录
丢石头百科
搜索
查看“TSL25911 Light Sensor”的源代码
来自丢石头百科
名字空间
页面
讨论
更多
更多
页面选项
查看
查看源代码
历史
←
TSL25911 Light Sensor
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
<div class="tabber"> {{Product |name = TSL25911 Light Sensor |images=[[File:TSL25911-Light-Sensor-1.jpg|360px |alt=Light-Sensor]] |categories= {{Category|光传感器}} {{Category|传感器}} |brand=Waveshare |features= * 环境光传感器 |interfaces= {{Category|I2C接口}} }} <div class="tabbertab" title="说明"> ==产品概述== 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 ==接口说明== *引脚功能 {|border=2; style="width:800px;" |-style="background:#000088; color:white;" align="center" |引脚号||标识||管脚描述 |-align="center" |width="100px"|1 |VCC||3.3V/5V电源正 |-align="center" |2||GND||电源地 |-align="center" |3||SDA||I2C数据线 |-align="center" |4||SCL||I2C时钟线 |-align="center" |5||INT||外部中断引脚 |-align="center" |}<br /> ==硬件说明== ===芯片=== 本产品采用TSL25911FN为核心,是一款基于IIC总线通信的光强数字转换器。传感器将一个宽带光电二极管(可见光和红外光)和一个红外响应光电二极管组合在能够在有效的16 位动态范围(16 位分辨率)上提供近光适应响应的单个 CMOS 集成电路上。两个积分 ADC将光电二极管电流转换为表示在每个通道上测量的辐照度的数字输出。该数字输出可以被输到微处理器,其中使用经验公式导出以勒克斯为单位的照度(环境光水平)以近似人眼反应。 ===通信协议=== 从上面功能引脚表得知使用的是I2C通信,I2C 通信,一条数据线,一条时钟线。 I2C 总线在传送数据过程中共有三种类型信号:开始信号、结束信号和应答信号。<br /> [[File:TSL2591写时序.png|900px]]<br/> 开始信号:SCL 为高电平时, SDA 由高电平向低电平跳变,开始传送数据。<br/> 结束信号:SCL 为高电平时, SDA 由低电平向高电平跳变,结束传送数据。<br/> 应答信号:接收数据的 IC 在接收到 8bit 数据后,向发送数据的 IC 发出特定的低电平脉冲,表示已收到数据。<br /> *I2C写数据时序<br/> [[File:tsl2591写.png|900px]]<br/> 首先主机(即树莓派,后面统称为主机)会发送一个开始信号,然后将其 I2C 的 7 位地址与写操作位组合成 8 位的数据发送给从机(即 TSL2581 传感器模块,后面统称为从机),从机接收到后会响应一个应答信号,主机此时将命令寄存器地址发送给从机,从机接收到发送响应信号,此时主机发送命令寄存的值,从机回应一个响应信号,直到主机发送一个停止信号,此次 I2C 写数据操作结束<br/> *I2C读数据时序<br/> [[File:2591读.png|900px]] <br/> 首先主机会发送一个开始信号,然后将其 I2C 的 7 位地址与写操作位组合成 8 位的数据发送给从机,从机接收到后会响应一个应答信号,主机此时将命令寄存器地址发送给从机,从机接收到发送响应信号,此时主机重新发送一个开始信号,并且将其 7 位地址和读操作位组合成 8 位的数据发送给从机,从机接收到信号后发送响应信号,再将其寄存器中的值发送给主机,主机端给予响应信号,直到主机端发送停止信号,此次通信结束。<br /> *I2C地址<br/> TSL25911的I2C设备地址为0X29 <br /> [[File:25912C地址.png|900px]]<br/> TSL25911数据手册第28页<br /> 注意:0X29这个设备地址是7位的,8位设备地址需要向高位移一位变成0X52<br /> ==树莓派使用== ===开启I2C接口=== *在终端执行: <pre> sudo raspi-config #选择 Interfacing Options -> I2C ->yes 启动 i2C 内核驱动 </pre> [[File:2591树莓派.png|900px]] <br /> *然后重启树莓派 <pre> sudo reboot </pre> ===安装库=== *安装BCM2835,打开树莓派终端,并运行下指令 <pre> 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 </pre> *安装wiringpi <pre> 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 </pre> ===硬件连接=== [[File:connet.jpg|900px]]<br /> {|border=2; style="width:800px;" |-style="background:#000088; color:white;" align="center" |TSL25911 Light Sensor||树莓派(BCM) |-align="center" |width="400px"|VCC||3.3V |-align="center" |GND||GND |-align="center" |SDA||SDA(2) |-align="center" |SCL||SCL(3) |-align="center" |INT||4 |-align="center" |} ===下载并运行测试例程=== <pre> cd sudo apt-get install p7zip-full wget http://wiki.diustou.com/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 </pre> ====此外,也可以下载我们GitHub上面的工程:==== <pre> sudo git clone https://github.com/waveshare/TSL2591X-Light-Sensor </pre> *请注意目录稍微有些不同 ===C程序=== <pre> cd cd TSL2591X_Light_Sensor_code/TSL2591x_Light_Sensor_code/RaspberryPi/c make clean make sudo ./main </pre> ====预期效果如下图==== [[File:TSL25911_RPI_test.png|900px]] *注意:示例的程序目录以实际为准; ===python程序=== <pre> cd cd TSL2591X_Light_Sensor_code/TSL2591x_Light_Sensor_code/RaspberryPi/python/examples sudo python main.py </pre> [[File:TSL25911_RPI_test_python.png|900px]] ==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位,没有校验。<br/> 参考相关教程:[[STM32CubeMX系列教程5:串行通信(USART)]] ===硬件连接=== {|border=2; style="width:800px;" |-style="background:#000088; color:white;" align="center" |width="400px"|TCS34725 Color Sensor||STM32 |-align="center" |VCC||3.3V |-align="center" |GND||GND |-align="center" |SDA||SDA/D14/PB9 |-align="center" |SCL||SCL/D15/PB8 |-align="center" |INT||D8/PA9 |-align="center" |} ===预期效果=== ====电脑打开串口助手,选择对应的端口,即可查看实验现象:==== [[File:stm2519效果.png|900px]] ==Arduino使用== 在产品百科界面下载程序,然后解压。Arduino程序位于 ~/Arduino UNO/… 把Arduino目录下的文件夹复制到Arduino安装目录的libraries下,一般是<br /> C:\Users\XXX\Documents\Arduino\libraries 或者 C:\Program Files (x86)\Arduino\libraries<br /> 打开Arduino IDE: 点击 File-> Example,查看是否有TSL25911选项,若有说明库导入成功,打开TSL25911-demo, 选择对应的COM口,下载到UNO上,打开串口监视器,即可查看实验现象; ===硬件连接=== {|border=2; style="width:800px;" |-style="background:#000088; color:white;" align="center" |width="400px"|TCS34725 Color Sensor||Arduino |-align="center" |VCC||3.3V/5V |-align="center" |GND||GND |-align="center" |SDA||SDA |-align="center" |SCL||SCL |-align="center" |INT||D8 |-align="center" |} ===预期效果=== 下图为测试输出数据:<br /> [[File:arduino效果.png|900px]]<br /> </div> <div class="tabbertab" title="资料"> ===文档=== *[https://{{SERVERNAME}}/w/upload/5/5a/TSL2591X_Light_Sensor_SchDoc.pdf 原理图]<br> ===程序=== *[https://{{SERVERNAME}}/w/upload/b/bc/TSL2591X_Light_Sensor_code.7z 示例程序]<br> *[https://github.com/waveshare/TSL2591X-Light-Sensor Github]<br> ===数据手册=== *[https://{{SERVERNAME}}/w/upload/3/31/TSL2591.pdf TSL2591]<br> 转到:[[#软件]],[[#程序]],[[#文档]] </div> == FAQ == <div class="tabbertab" title="FAQ"> {{FAQ |例程输出数据全部为0或者初始化失败?如图:<br /> [[File:questuion3.png|900px]] | 请检查管脚连接是否正确。|||}} {{FAQ | 不正确的使用树莓派控制可能会导致? | 如果运行wiringPi例程正常,再运行python或者BCM2835可能会屏幕无法正常刷新,因为bcm2835库是树莓派cpu芯片的库函数,底层是直接操作寄存器,而wiringPi库和python的底层都是通过读写linux系统的设备文件操作设备,可能导致GPIO口异常,重启树莓派可完美解决。 |||}} {{FAQ |STM32和Arduino例程串口输出没有数据或者数据输出乱码? | 确认波特率是否设置为115200,对于STM32例程请确认电脑正确连接开发板USART2(PA2,PA3),PA2为TXD,并且选择正确的COM端口。控制面板->硬件->设备管理器。 <br /> [[File:2591question2.png|800px]]|||}} </div> <div class="tabbertab" title="售后"><br />{{Service08}}</div>
该页面使用的模板:
模板:Category
(
查看源代码
)
模板:FAQ
(
查看源代码
)
模板:Product
(
查看源代码
)
模板:Service00
(
查看源代码
)
模板:Service08
(
查看源代码
)
模板:Tag
(
查看源代码
)
模板:Tipbox
(
查看源代码
)
返回至
TSL25911 Light Sensor
。
导航
导航
首页
最近更改
随机页面
MediaWiki帮助
首页
首页
树莓派
主机
配件包
外壳
键鼠
电源
扩展板
显示屏
墨水屏
摄像模块
通信模块
继电器
电机驱动板
游戏机
产品分类
树莓派
Arduino
micro:bit
STM32
Espressif
WiFi模块
蓝牙模块
无线模块
LoRa模块
4G模块
GSM
GPRS
以太网
导航模块
北斗卫星
GPS
LCD
墨水屏
OLED
摄像头
USB模块
串口模块
RS232
RS485
CAN
传感器
温度模块
湿度模块
气压模块
继电器
电机模块
指纹模块
电平转换
音频模块
编程器
Wiki工具
Wiki工具
特殊页面
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志