UV Sensor (B)用户手册
UV Sensor (B)
用户手册
产 品 概 述
UV_Sensor (B)是一个以测量紫外线为主的多功能光学测量模块,该模块使用的传感器为
Si1145。该芯片测量紫外线可以直接输出紫外线指数的 100 倍整数,用户几乎不需要数据转换
和校准,就可以得到较为精确的紫外线指数的值。该芯片还支持测量的环境光强度包括红外线强
度和可见光强度。
产 品 特 性
⚫ 使用 Si1145 为主控芯片,内置 ADC,不仅可以测量紫外线,还能测环境光强
⚫
I2C 接口可直接输出紫外线指数,无需标定
⚫ 支持中断信号输出,可编程上下限阈值
⚫ 内置电平转换电路,使模块可直接接入 3.3V / 5V 的 MCU 系统
管 脚 配 置
功能引脚
VCC
GND
SDA
SCL
INT
描述
电源正
电源地
I2C 的数据信号
I2C 的时钟信号
中断信号
1 / 6
UV Sensor (B)用户手册
工 作 原 理
Si1145 仅支持 I2C 通信,但也支持输入和输出中断信号来辅助通信。主设备通过 I2C 对
Si1145 内的寄存器进行读写,从而设置芯片的参数和读取测量数据。
I2C 通 信 协 议
在 I2C 通信时,先发送一个 7bit 的从设备地址+1bit 的读写位,等待设备的响应。
在从设备应答后,接着发送一个控制字节,该字节决定了后面发送的字节是命令还是数据,
然后再等待从设备应答。
在从设备再次应答之后,若发送命令,则只发送一字节的命令。若发送数据,可以只发送
一个字节,也可以多个字节的数据连着发送,视情况而定。
使 用 说 明
该模块提供 STM32,Arduino,RaspberryPi 的例程,但提供的例程中均未使用到中断,
故 INT 引脚不会出现在配置列表中。
STM32 的 使 用
1. 硬件配置
该例程使用的开发板为:XNUCLEO-F103RB
功能引脚
VCC
GND
SDA
开发板
3V3/5V
GND
SDA/D14/PB8
2 / 6
UV Sensor (B)用户手册
SCL
SCL/D15/PB9
2. 工程文件说明
示例工程基于 MDK-ARM V5,使用 STM32CubeMX 配置生成。
工程目录/Src 下:
si1145.c : 为 si1145 的底层驱动文件,包含了芯片初始化,读写数据等函数。
工程目录/Inc 下:
Si1145.h:为 si1145 头文件,包含了 si1145 所有用到的寄存器的地址,声明了所有
函数,以供其他源文件调用。
3. 现象
将模块与开发板连接,将开发板的串口与电脑连接,烧录程序,打开串口助手,即可看
到串口助手上接收到的数据。
ARDUINOD 的 使 用
1. 硬件配置
该例程使用的开发板为:UNO_PLUS
功能引脚
VCC
GND
SDA
SCL
开发板
3V3/5V
GND
SDA
SCL
2. 文件说明
工程目录下:
Si1145.cpp:芯片的驱动源文件,包含了芯片初始化,读写数据等函数。
Si1145.h:为 si1145 头文件,包含了 si1145 所有用到的寄存器的地址,声明了所有
函数,以供其他源文件调用。
UV_Sensor_demo.ino:Arduino 的主函数源文件,包含了芯片初始化以及数据读写
等函数的执行。
3. 使用说明
3 / 6
UV Sensor (B)用户手册
将模块与开发板连接好之后,打开 Arduino 的串口监视器,烧录程序后,可在串口监
视器看到测量的数据。
REAPBERRPI 的 使 用
1. 硬件配置
该例程使用的开发板为:RaspberryPi
功能引脚
开发板
VCC
GND
SDA
SCL
3V3/5V
GND
SDA
SCL
2. 开启树莓派的 I2C
sudo raspi-config
选择 Interface Options -> I2C -> yes 启动 I2C 内核驱动
3. 库的安装
关于树莓派库的安装详细见微雪课堂:
http://www.waveshare.net/study/article-742-1.html
此处详细介绍了 wiringPi、bcm2835、python 的安装。
4. 使用
把对应的例程拷贝进树莓派中(可通过 samba 或者直接复制到 SD)即可,以下示例均
复制 到了树莓派 pi 用户目录下。
5. 程序
5.1 BCM2835 使用
(1) 安装 bcm2835 函数库
(2) 运行 ls 命令,可见如下文件
4 / 6
UV Sensor (B)用户手册
mian.c:为主函数的源文件。
Si1145.c:si1145 芯片的驱动源文件,包含了芯片的初始化以及数据读写等函数。
Si1145.h:为 si1145 头文件,包含了 si1145 所有用到的寄存器的地址,声明了所有函数,
以供其他源文件调用。
Makefile:为源代码文件交叉编译脚本,用于编译代码并生成可执行文件。若您修改了源
代码,则需要先运行 sudo make clean 来删除所有已经生成的文件,再运行 sudo make
命令来生成可执行文件。
UV_demo:为编译生成的可执行文件。
其他的.o 文件则是编译过程中生产的中间文件,一般不需要理会。
(3) 运行程序: sudo ./UV_demo
(4) 现象:控制窗口则会显示打印芯片测量得到的数据。当用户想要停止运行程序时,按
Ctrl+C 键可以停止程序的运行。
5.2 wiringPi 使用
(1) 安装 wiringPi 函数库
(2) 运行 ls 命令,可见如下文件
mian.c:为主函数的源文件。
Si1145.c:si1145 芯片的驱动源文件,包含了芯片的初始化以及数据读写等函数。
Si1145.h:为 si1145 头文件,包含了 si1145 所有用到的寄存器的地址,声明了所有
函数,以供其他源文件调用。
Makefile:为源代码文件交叉编译脚本,用于编译代码并生成可执行文件。若您修改
了源代码,则需要先运行 sudo make clean 来删除所有已经生成的文件,再运行 sudo
make 命令来生成可执行文件。
UV_demo:为编译生成的可执行文件。
其他的.o 文件则是编译过程中生产的中间文件,一般不需要理会。
(3) 运行程序: sudo ./UV_demo
(4) 现象:控制窗口则会显示打印芯片测量得到的数据。当用户想要停止运行程序时,
按 Ctrl+C 键可以停止程序的运行。
5 / 6
UV Sensor (B)用户手册
5.3 Python 使用
(1) 安装 python 函数库
(2) 运行 ls 命令,可见如下文件
mian.py:为主函数的源文件。
Si1145.py:si1145 芯片的驱动源文件,包含了芯片的初始化以及数据读写等函数。
(3) 运行程序:sudo python main.py
(4) 现象:控制窗口则会显示打印芯片测量得到的数据。当用户想要停止运行程序时,
按 Ctrl+C 键可以停止程序的运行。
6 / 6