UV Sensor (B)

来自Waveshare Wiki
Waveshare-admin讨论 | 贡献2021年2月23日 (二) 17:08的版本 (Text replace - " EMAIL:3005722301@qq.com<br /> 电话:0755-83040712<br /> QQ:3005722301<br /> 微信:扫下方二维码添加<br /> 200px<br /> <small><nowiki>*</nowiki> 企业微信添加好友时软件无提示,我们无法及)
跳转至: 导航搜索
UV-Sensor (B)
{{{name2}}}
{{{name3}}}
功能简介
特性 紫外线传感器
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
接口 I2C

产品概述

UV_Sensor (B)是一个以测量紫外线为主的多功能光学测量模块,该模块使用的传感器为Si1145。该芯片测量紫外线可以直接输出紫外线指数的100倍整数,用户几乎不需要数据转换和校准,就可以得到较为精确的紫外线指数的值。该芯片还支持测量的环境光强度包括红外线强度和可见光强度。

产品特性

  • 使用Si1145为主控芯片,内置ADC,不仅可以测量紫外线,还能测环境光强
  • I2C接口可直接输出紫外线指数,无需标定
  • 支持中断信号输出,可编程上下限阈值
  • 内置电平转换电路,使模块可直接接入3.3V / 5V的MCU系统

管脚配置

功能引脚 描述
VCC 电源正
GND 电源地
SDA I2C的数据信号
SCL I2C的时钟信号
INT 中断信号

工作原理

Si1145仅支持I2C通信,但也支持输入和输出中断信号来辅助通信。主设备通过I2C对Si1145内的寄存器进行读写,从而设置芯片的参数和读取测量数据。

I2C通信协议

UV Sensor (B)- (1).png
在I2C通信时,先发送一个7bit的从设备地址+1bit的读写位,等待设备的响应。
在从设备应答后,接着发送一个控制字节,该字节决定了后面发送的字节是命令还是数据,然后再等待从设备应答。
在从设备再次应答之后,若发送命令,则只发送一字节的命令。若发送数据,可以只发送一个字节,也可以多个字节的数据连着发送,视情况而定。

使用说明

该模块提供STM32,Arduino,RaspberryPi的例程,但提供的例程中均未使用到中断,故INT引脚不会出现在配置列表中。

STM32的使用

1. 硬件配置
该例程使用的开发板为:XNUCLEO-F103RB

功能引脚 开发板
VCC 3V3/5V
GND GND
SDA SDA/D14/PB8
SCL SCL/D15/PB9

2. 工程文件说明
示例工程基于MDK-ARM V5,使用STM32CubeMX配置生成。
工程目录/Src下:
si1145.c : 为si1145的底层驱动文件,包含了芯片初始化,读写数据等函数。
工程目录/Inc下:
Si1145.h:为si1145头文件,包含了si1145所有用到的寄存器的地址,声明了所有函数,以供其他源文件调用。
3. 现象
将模块与开发板连接,将开发板的串口与电脑连接,烧录程序,打开串口助手,即可看到串口助手上接收到的数据。

Arduino的使用

1. 硬件配置
该例程使用的开发板为:UNO_PLUS

功能引脚 开发板
VCC 3V3/5V
GND GND
SDA SDA
SCL SCL

2. 文件说明
工程目录下:
Si1145.cpp:芯片的驱动源文件,包含了芯片初始化,读写数据等函数。
Si1145.h:为si1145头文件,包含了si1145所有用到的寄存器的地址,声明了所有函数,以供其他源文件调用。
UV_Sensor_demo.ino:Arduino的主函数源文件,包含了芯片初始化以及数据读写等函数的执行。
3. 使用说明
将模块与开发板连接好之后,打开Arduino的串口监视器,烧录程序后,可在串口监视器看到测量的数据。

RaspberryPi的使用

1. 硬件配置
该例程使用的开发板为:RaspberryPi

功能引脚 开发板
VCC 3V3/5V
GND GND
SDA SDA
SCL SCL

2. 开启树莓派的I2C

sudo raspi-config

选择 Interface Options -> I2C -> yes 启动 I2C 内核驱动
3. 库的安装
关于树莓派库的安装详细见微雪课堂:
https://www.waveshare.net/study/article-742-1.html
此处详细介绍了 wiringPi、bcm2835、python 的安装。
4. 使用
把对应的例程拷贝进树莓派中(可通过 samba 或者直接复制到 SD)即可,以下示例均复制 到了树莓派 pi 用户目录下。
5. 程序
5.1 BCM2835使用
(1) 安装bcm2835函数库
(2) 运行ls命令,可见如下文件
UV Sensor (B)- (2).png
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命令,可见如下文件
UV Sensor (B)- (3).png
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.3 Python使用
(1) 安装python函数库
(2) 运行ls命令,可见如下文件
UV Sensor (B)- (4).png
mian.py:为主函数的源文件。
Si1145.py:si1145芯片的驱动源文件,包含了芯片的初始化以及数据读写等函数。

(3) 运行程序:
sudo python main.py

(4) 现象:控制窗口则会显示打印芯片测量得到的数据。当用户想要停止运行程序时,按Ctrl+C键可以停止程序的运行。

文档

程序

软件

数据手册





联系人:陈工

EMAIL:3005722301@qq.com
QQ:3005722301
微信:扫下方二维码添加
Cjw.jpg

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