“光照传感器”的版本间的差异
(Created page with "== 目的 == 本教程将教大家使用Microduino-Weather扩展板上集成的TSL2561光照传感器,结果将在Microduino OLED中显示。 == ...") |
(→TSL2561传感器) |
||
(未显示同一用户的1个中间版本) | |||
第16行: | 第16行: | ||
== 原理 == | == 原理 == | ||
=== TSL2561传感器 === | === TSL2561传感器 === | ||
− | + | TSL2561是TAOS公司推出的第二代光强数字转换芯片,具有高速、低功耗、宽量程、可编程灵活配置等优点。TSL2561具有I2C接口,用于将光照强度转换成数字信号输出。 | |
[[File:sensor3_1.jpg|600px|center|thumb]] | [[File:sensor3_1.jpg|600px|center|thumb]] | ||
''' 主要特点: ''' | ''' 主要特点: ''' | ||
第34行: | 第34行: | ||
器件地址选择引脚状态: | 器件地址选择引脚状态: | ||
[[File:sensor3_4.jpg|600px|center|thumb]] | [[File:sensor3_4.jpg|600px|center|thumb]] | ||
− | '''注意:[[Microduino-Weather/zh|Microduino-Weather扩展板]] | + | '''注意:[[Microduino-Weather/zh|Microduino-Weather扩展板]]上的TSL2561的器件访问地址选择引脚接地了,所以器件地址为0x29。 ''' |
''' 内部结构和工作原理 ''' | ''' 内部结构和工作原理 ''' | ||
第43行: | 第43行: | ||
内部16个寄存器的功能如下所示: | 内部16个寄存器的功能如下所示: | ||
[[File:sensor3_6.jpg|600px|center|thumb]] | [[File:sensor3_6.jpg|600px|center|thumb]] | ||
+ | |||
=== 原理图 === | === 原理图 === | ||
[[File:sensor3_7.jpg|600px|center|thumb]] | [[File:sensor3_7.jpg|600px|center|thumb]] |
2015年2月7日 (六) 07:51的最新版本
目的
本教程将教大家使用Microduino-Weather扩展板上集成的TSL2561光照传感器,结果将在Microduino OLED中显示。
设备
Microduino-CoreSTM32小巧精悍,其内核来自于ARM公司具有突破性的Cortex-M3内核的32位闪存微控制器。该内核是专门设计于满足集高性能、低功耗、实时应用、具有竞争性价格于一体的嵌入式领域的要求。
Microduino Weather模块集成了三种传感器,分别是光照强度传感器(TSL2561),数字气压传感器(BMP180),数字温湿度传感器(AM2321)。采用I2C接口与核心相连。广泛用于气象监测。
Microduino-Oled是基于SSD1306的0.96吋128x64 OLED显示模块。采用I2C接口,3.3V 电源供电。像素为128*64(128列*64行)。
- 其他硬件设备
- OLED转接线 一根
- USB数据线 一根
文档
- TSL2561光照传感器数据手册: 文件:TSL2561.pdf
原理
TSL2561传感器
TSL2561是TAOS公司推出的第二代光强数字转换芯片,具有高速、低功耗、宽量程、可编程灵活配置等优点。TSL2561具有I2C接口,用于将光照强度转换成数字信号输出。
主要特点:
- 可编程配置许可的光强度上下阈值,当实际光照度超过该阈值时给出中断信号;
- 数字输出符合标准的I2C(TSL2561)总线协议;
- 模拟增益和数字输出时间可编程控制;
- 1.25 mm×1.75 mm 超小封装, 在低功耗模式下, 功耗仅为 0.75 mW;
- 自动抑制 50 Hz/60 Hz 的光照波动。
TSL2561引脚功能:
TSL2561传感器引脚如下图所示:
各个引脚的功能:
器件地址选择引脚状态:
注意:Microduino-Weather扩展板上的TSL2561的器件访问地址选择引脚接地了,所以器件地址为0x29。
内部结构和工作原理
其内部结构如下图所示。通道 0 和通道 1 是两个光敏二极管,其中通道 0 对可见光和红外线都敏感,而通道 1 仅对红外线敏感。积分式 A/D 转换器对流过光敏二极管的电流进行积分,并转换为数字量,在转换结束后将转换结果存入芯片内部通道 0 和通道 1 各自的寄存器中。 当一个积分周期完成之后,积分式 A/D 转换器将自动开始下一个积分转换过程。
微控制器可通过 I2C 总线协议访问。对 TSL2561的控制是通过对其内部的 16 个寄存器的读写来实现的。 内部16个寄存器的功能如下所示:
原理图
TSL2561光照传感器模块集成在了Microduino-Weather扩展板 上,所以无需外部接线,直接通过I2C与其通信即可。
Microduino-CoreSTM32/zh叠加在Microduino-Weather扩展板上,OLED屏通过转接线与Microduino-Weather扩展板连接。
注意:数据线需插在Microduino-CoreSTM32/zh上,不能插在扩展板上,不然会无法下载程序。
程序
需要用到的库:
测试程序:
程序说明:
程序在初始化OLED和TSL2561后通过getLuminosity (&Channel0,&Channel1)函数读取TSL2561传感器通道0和通道1的数据。根据读取到的通道0和通道1的数据计算出光照度的大小,光照度的单位lux。 此外传感器的积分时间和增益都采取默认设置,即积分时间为402ms,增益为low gain (1×),具体请参见数据手册“Timing Register”寄存器。
调试
步骤一:数据线连接到Microduino-CoreSTM32/zh,OLED显示屏通过传接线连接到Microduino-Weather扩展板。
步骤二:下载TSL2561库,把TSL2561文件夹拷贝到Maple IDE安装文件下的libraries中,打开测试程序sensor3_illuminationSensor。
步骤三:编译程序,下载程序。
步骤四:打开串口监视界面,观察串口监视界面和OLED显示屏上光照度的变化。
结果
较暗环境下光照度几乎为0,开白炽灯后光照度增加,用手机强光LED照射后光照度变为1000多。