光照传感器

来自Microduino Wikipedia
跳转至: 导航搜索

目的

本教程将教大家使用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是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多。

视频