“UV Sensor (B)”的版本间的差异
Waveshare-eng11(讨论 | 贡献) |
小 (文本替换 - 替换“<h1>售后</h1>”为“<h1>技术支持</h1>”) |
||
(未显示4个用户的22个中间版本) | |||
第1行: | 第1行: | ||
+ | <div class="wiki-pages blue-color"> | ||
+ | <div class="tabberlive newwsnav" id="wsnavbar"> | ||
+ | <ul class="tabbernav"> | ||
+ | <li class="nav-link">[[#myintro|说明]]</li> | ||
+ | <li class="nav-link">[[#myresources|资料]]</li> | ||
+ | <li class="nav-link">[[#myfaq|FAQ]]</li> | ||
+ | <li class="nav-link">[[#mysupport|售后]]</li> | ||
+ | </ul> | ||
+ | </div> | ||
<div class="tabber"> | <div class="tabber"> | ||
− | |||
− | |||
{{外围模块|colorscheme=blue | {{外围模块|colorscheme=blue | ||
− | |img=[[File:UV-Sensor-B-1.jpg|360px |alt=UV-Sensor (B) |link= | + | |img=[[File:UV-Sensor-B-1.jpg|360px |alt=UV-Sensor (B) |link=https://{{SERVERNAME}}/shop/UV-Sensor-B.htm]] |
|category1=传感器 | |category1=传感器 | ||
|category2=光传感器 | |category2=光传感器 | ||
第10行: | 第17行: | ||
| interface1 =I2C | | interface1 =I2C | ||
}} | }} | ||
+ | <div class="tabbertab" title="说明" id="myintro"> | ||
+ | |||
+ | <h1>说明</h1> | ||
+ | |||
+ | ==产品概述== | ||
+ | UV_Sensor (B)是一个以测量紫外线为主的多功能光学测量模块,该模块使用的传感器为Si1145。该芯片测量紫外线可以直接输出紫外线指数的100倍整数,用户几乎不需要数据转换和校准,就可以得到较为精确的紫外线指数的值。该芯片还支持测量的环境光强度包括红外线强度和可见光强度。<br /> | ||
+ | ==产品特性== | ||
+ | *使用Si1145为主控芯片,内置ADC,不仅可以测量紫外线,还能测环境光强 | ||
+ | *I2C接口可直接输出紫外线指数,无需标定 | ||
+ | *支持中断信号输出,可编程上下限阈值 | ||
+ | *内置电平转换电路,使模块可直接接入3.3V / 5V的MCU系统 | ||
+ | ==管脚配置== | ||
+ | {|border=2; style="width:700px;" | ||
+ | |-style="background:#abc; color:black;" align="center" | ||
+ | |功能引脚||描述 | ||
+ | |- align="center" | ||
+ | |VCC||电源正 | ||
+ | |- align="center" | ||
+ | |GND||电源地 | ||
+ | |- align="center" | ||
+ | |SDA||I2C的数据信号 | ||
+ | |- align="center" | ||
+ | |SCL ||I2C的时钟信号 | ||
+ | |- align="center" | ||
+ | |INT||中断信号 | ||
+ | |} | ||
+ | ==工作原理== | ||
+ | Si1145仅支持I2C通信,但也支持输入和输出中断信号来辅助通信。主设备通过I2C对Si1145内的寄存器进行读写,从而设置芯片的参数和读取测量数据。<br /> | ||
+ | ===I2C通信协议=== | ||
+ | [[File:UV Sensor (B)- (1).png|800px]]<br /> | ||
+ | 在I2C通信时,先发送一个7bit的从设备地址+1bit的读写位,等待设备的响应。<br /> | ||
+ | 在从设备应答后,接着发送一个控制字节,该字节决定了后面发送的字节是命令还是数据,然后再等待从设备应答。<br /> | ||
+ | 在从设备再次应答之后,若发送命令,则只发送一字节的命令。若发送数据,可以只发送一个字节,也可以多个字节的数据连着发送,视情况而定。<br /> | ||
+ | =使用说明= | ||
+ | 该模块提供STM32,Arduino,RaspberryPi的例程,但提供的例程中均未使用到中断,故INT引脚不会出现在配置列表中。<br /> | ||
+ | ===STM32的使用=== | ||
+ | 1. 硬件配置<br /> | ||
+ | 该例程使用的开发板为:[https://{{SERVERNAME}}/shop/XNUCLEO-F103RB.htm XNUCLEO-F103RB]<br /> | ||
+ | {|border=2; style="width:700px;" | ||
+ | |-style="background:#abf; color:black;" align="center" | ||
+ | |功能引脚||开发板 | ||
+ | |- align="center" | ||
+ | |VCC||3V3/5V | ||
+ | |- align="center" | ||
+ | |GND||GND | ||
+ | |- align="center" | ||
+ | |SDA||SDA/D14/PB8 | ||
+ | |- align="center" | ||
+ | |SCL||SCL/D15/PB9 | ||
+ | |} | ||
+ | 2. 工程文件说明<br /> | ||
+ | 示例工程基于MDK-ARM V5,使用STM32CubeMX配置生成。<br /> | ||
+ | 工程目录/Src下:<br /> | ||
+ | si1145.c : 为si1145的底层驱动文件,包含了芯片初始化,读写数据等函数。<br /> | ||
+ | 工程目录/Inc下:<br /> | ||
+ | Si1145.h:为si1145头文件,包含了si1145所有用到的寄存器的地址,声明了所有函数,以供其他源文件调用。<br /> | ||
+ | 3. 现象<br /> | ||
+ | 将模块与开发板连接,将开发板的串口与电脑连接,烧录程序,打开串口助手,即可看到串口助手上接收到的数据。<br /> | ||
+ | ===Arduino的使用=== | ||
+ | 1. 硬件配置<br /> | ||
+ | 该例程使用的开发板为:[https://{{SERVERNAME}}/shop/UNO-PLUS.htm UNO_PLUS] | ||
+ | {|border=2; style="width:700px;" | ||
+ | |-style="background:#fab; color:black;" align="center" | ||
+ | |功能引脚||开发板 | ||
+ | |-align="center" | ||
+ | |VCC||3V3/5V | ||
+ | |-align="center" | ||
+ | |GND||GND | ||
+ | |-align="center" | ||
+ | |SDA||SDA | ||
+ | |-align="center" | ||
+ | |SCL||SCL | ||
+ | |} | ||
+ | 2. 文件说明<br /> | ||
+ | 工程目录下:<br /> | ||
+ | Si1145.cpp:芯片的驱动源文件,包含了芯片初始化,读写数据等函数。<br /> | ||
+ | Si1145.h:为si1145头文件,包含了si1145所有用到的寄存器的地址,声明了所有函数,以供其他源文件调用。<br /> | ||
+ | UV_Sensor_demo.ino:Arduino的主函数源文件,包含了芯片初始化以及数据读写等函数的执行。<br /> | ||
+ | 3. 使用说明<br /> | ||
+ | 将模块与开发板连接好之后,打开Arduino的串口监视器,烧录程序后,可在串口监视器看到测量的数据。<br /> | ||
+ | ===RaspberryPi的使用=== | ||
+ | 1. 硬件配置<br /> | ||
+ | 该例程使用的开发板为:RaspberryPi<br /> | ||
+ | {|border=2; style="width:700px;" | ||
+ | |-style="background:#8f8; color:black;" align="center" | ||
+ | |功能引脚||开发板 | ||
+ | |-align="center" | ||
+ | |VCC||3V3/5V | ||
+ | |-align="center" | ||
+ | |GND||GND | ||
+ | |-align="center" | ||
+ | |SDA||SDA | ||
+ | |-align="center" | ||
+ | |SCL||SCL | ||
+ | |} | ||
+ | 2. 开启树莓派的I2C<br /> | ||
+ | sudo raspi-config | ||
+ | 选择 Interface Options -> I2C -> yes 启动 I2C 内核驱动<br /> | ||
+ | 3. 库的安装<br /> | ||
+ | 关于树莓派库的安装详细见微雪课堂:<br /> | ||
+ | https://{{SERVERNAME}}/study/article-742-1.html<br /> | ||
+ | 此处详细介绍了 wiringPi、bcm2835、python 的安装。<br /> | ||
+ | 4. 使用<br /> | ||
+ | 把对应的例程拷贝进树莓派中(可通过 samba 或者直接复制到 SD)即可,以下示例均复制 到了树莓派 pi 用户目录下。<br /> | ||
+ | 5. 程序<br /> | ||
+ | 5.1 BCM2835使用<br /> | ||
+ | (1) 安装bcm2835函数库<br /> | ||
+ | (2) 运行ls命令,可见如下文件<br /> | ||
+ | [[File:UV Sensor (B)- (2).png|800px]]<br /> | ||
+ | mian.c:为主函数的源文件。<br /> | ||
+ | Si1145.c:si1145芯片的驱动源文件,包含了芯片的初始化以及数据读写等函数。<br /> | ||
+ | Si1145.h:为si1145头文件,包含了si1145所有用到的寄存器的地址,声明了所有函数,以供其他源文件调用。<br /> | ||
+ | Makefile:为源代码文件交叉编译脚本,用于编译代码并生成可执行文件。若您修改了源代码,则需要先运行sudo make clean来删除所有已经生成的文件,再运行sudo make命令来生成可执行文件。<br /> | ||
+ | UV_demo:为编译生成的可执行文件。<br /> | ||
+ | 其他的.o文件则是编译过程中生产的中间文件,一般不需要理会。<br /> | ||
+ | (3) 运行程序:<pre> sudo ./UV_demo</pre> | ||
+ | (4) 现象:控制窗口则会显示打印芯片测量得到的数据。当用户想要停止运行程序时,按Ctrl+C键可以停止程序的运行。<br /> | ||
+ | 5.2 wiringPi使用<br /> | ||
+ | (1) 安装wiringPi函数库<br /> | ||
+ | (2) 运行ls命令,可见如下文件<br /> | ||
+ | [[File:UV Sensor (B)- (3).png|800px]]<br /> | ||
+ | mian.c:为主函数的源文件。<br /> | ||
+ | Si1145.c:si1145芯片的驱动源文件,包含了芯片的初始化以及数据读写等函数。<br /> | ||
+ | Si1145.h:为si1145头文件,包含了si1145所有用到的寄存器的地址,声明了所有函数,以供其他源文件调用。<br /> | ||
+ | Makefile:为源代码文件交叉编译脚本,用于编译代码并生成可执行文件。若您修改了源代码,则需要先运行sudo make clean来删除所有已经生成的文件,再运行sudo make命令来生成可执行文件。<br /> | ||
+ | UV_demo:为编译生成的可执行文件。<br /> | ||
+ | 其他的.o文件则是编译过程中生产的中间文件,一般不需要理会。<br /> | ||
+ | (3) 运行程序:<pre> sudo ./UV_demo</pre> | ||
+ | (4) 现象:控制窗口则会显示打印芯片测量得到的数据。当用户想要停止运行程序时,按Ctrl+C键可以停止程序的运行。<br /> | ||
+ | 5.3 Python使用<br /> | ||
+ | (1) 安装python函数库<br /> | ||
+ | (2) 运行ls命令,可见如下文件<br /> | ||
+ | [[File:UV Sensor (B)- (4).png|800px]]<br /> | ||
+ | mian.py:为主函数的源文件。<br /> | ||
+ | Si1145.py:si1145芯片的驱动源文件,包含了芯片的初始化以及数据读写等函数。 | ||
+ | (3) 运行程序:<pre>sudo python main.py</pre> | ||
+ | (4) 现象:控制窗口则会显示打印芯片测量得到的数据。当用户想要停止运行程序时,按Ctrl+C键可以停止程序的运行。<br /> | ||
+ | </div> | ||
+ | <div class="tabbertab" title="资料" id="myresources"> | ||
+ | |||
+ | <h1>资料</h1> | ||
+ | |||
+ | |||
===文档=== | ===文档=== | ||
− | *[ | + | *[https://{{SERVERNAME}}/w/upload/b/b6/UV_Sensor_%28B%29_User_Manual.pdf 用户手册] <br> |
− | *[ | + | *[https://{{SERVERNAME}}/w/upload/1/1f/UV_Sensor_%28B%29_Schematic.pdf 原理图]<br> |
===程序=== | ===程序=== | ||
− | *[ | + | *[https://{{SERVERNAME}}/w/upload/f/f0/UV_Sensor_%28B%29_Code.7z 示例程序]<br> |
===软件=== | ===软件=== | ||
− | *[ | + | *[https://{{SERVERNAME}}/w/upload/5/5f/Sscom.7z 串口调试助手] |
===数据手册=== | ===数据手册=== | ||
− | *[ | + | *[https://{{SERVERNAME}}/w/upload/9/99/Si1145-46-47.pdf Si1145] |
− | < | + | |
+ | |||
+ | |||
+ | </div> | ||
+ | <div class="tabbertab" title="FAQ" id="myfaq"> | ||
+ | |||
+ | <h1>FAQ</h1> | ||
+ | <br /> | ||
</div> | </div> | ||
− | <div class="tabbertab" title=" | + | <div class="tabbertab" title="售后" id="mysupport"> |
+ | |||
+ | <h1>技术支持</h1> | ||
+ | <br /> | ||
+ | {{Service20}}</div> | ||
</div> | </div> | ||
− |
2022年8月16日 (二) 16:02的最新版本
| ||||||||||||||||||||
|
说明
产品概述
UV_Sensor (B)是一个以测量紫外线为主的多功能光学测量模块,该模块使用的传感器为Si1145。该芯片测量紫外线可以直接输出紫外线指数的100倍整数,用户几乎不需要数据转换和校准,就可以得到较为精确的紫外线指数的值。该芯片还支持测量的环境光强度包括红外线强度和可见光强度。
产品特性
- 使用Si1145为主控芯片,内置ADC,不仅可以测量紫外线,还能测环境光强
- I2C接口可直接输出紫外线指数,无需标定
- 支持中断信号输出,可编程上下限阈值
- 内置电平转换电路,使模块可直接接入3.3V / 5V的MCU系统
管脚配置
功能引脚 | 描述 |
VCC | 电源正 |
GND | 电源地 |
SDA | I2C的数据信号 |
SCL | I2C的时钟信号 |
INT | 中断信号 |
工作原理
Si1145仅支持I2C通信,但也支持输入和输出中断信号来辅助通信。主设备通过I2C对Si1145内的寄存器进行读写,从而设置芯片的参数和读取测量数据。
I2C通信协议
在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命令,可见如下文件
mian.c:为主函数的源文件。
Si1145.c:si1145芯片的驱动源文件,包含了芯片的初始化以及数据读写等函数。
Si1145.h:为si1145头文件,包含了si1145所有用到的寄存器的地址,声明了所有函数,以供其他源文件调用。
Makefile:为源代码文件交叉编译脚本,用于编译代码并生成可执行文件。若您修改了源代码,则需要先运行sudo make clean来删除所有已经生成的文件,再运行sudo make命令来生成可执行文件。
UV_demo:为编译生成的可执行文件。
其他的.o文件则是编译过程中生产的中间文件,一般不需要理会。
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文件则是编译过程中生产的中间文件,一般不需要理会。
sudo ./UV_demo
(4) 现象:控制窗口则会显示打印芯片测量得到的数据。当用户想要停止运行程序时,按Ctrl+C键可以停止程序的运行。
5.3 Python使用
(1) 安装python函数库
(2) 运行ls命令,可见如下文件
mian.py:为主函数的源文件。
Si1145.py:si1145芯片的驱动源文件,包含了芯片的初始化以及数据读写等函数。
sudo python main.py
(4) 现象:控制窗口则会显示打印芯片测量得到的数据。当用户想要停止运行程序时,按Ctrl+C键可以停止程序的运行。
FAQ