OPT3001光照传感器驱动教学

news/2024/11/28 4:36:32/

OPT3001自学笔记

OPT3001是一款低功耗环境光照度采集IC,之前的项目中有用到这颗芯片,因此在这里给大家分享一下,如果这篇文章刚好能帮到你那就更好了。

一、OPT3001的寄存器

单片机是通过IIC协议读写OPT3001的寄存器来控制OPT3001的。所以我们要驱动这个芯片就必须先去了解它的寄存器。OPT3001有6个寄存器,都是16位寄存器,如图1所示。
图1 OPT3001寄存器
1、 结果寄存器(地址:0x00):OPT3001采集完之后,光照数据就是存在这里。
结果寄存器有16位,前4位是指数(用E[3:0]表示),后12位是尾数(用R[11:0]表示)。
计算光照强度的公式为:光照强度=0.01x2 E[3:0] x R[11:0] (单位:lx 勒克斯)
如:寄存器的数值为0x2356,2是指数,356是尾数,换算成十进制为854。那么光照强度为:0.01x22x854=34.16 lx

2、 配置寄存器(地址:0x01):配置OPT3001采集的方式
16位配置寄存器具体如表1所示:

15141312111009080706050403020100
RN[3]RN[2]RN[1]RN[0]CTM[1]M[0]OVFCRFFHFLLPOLMEFC[1]FC[0]

15~12 RN - 配置测量光照的范围,当配置位1100传感器测量范围自动选择
11 CT - 测量时间配置 0- 100Ms 1-800Ms
10:9 M[1:0] - 转换模式:00:关闭模式 01:单次转换 10、11:连续转换
8 OVF - 测量光照超出设定的范围或最大测量值 溢出标志
7 CRF - 转换就绪字段 1-转换完成
6 FH - 转换的光照值 大于上限值 置位
5 FL - 转换的光照值 小于下限值 置位
4 L - 中断输出的两种模式:1-窗口模式:这种模式下高限置位和低限置位INT输出,0-滞后模式:高限置位INT输出 具体看手册
3 POL - INT 中断被触发输出极性 0:拉低 1:拉高
2 ME - 掩码字段
0:1 FC - 超出上限范围故障计数,如果超出次数,大于等于计数设定次,INT输出中断

注:若要用窗口锁存模式,OPT3001触发中断后需要读取配置寄存器才能清除标志位。

3、 下限寄存器(地址:0x02):设置触发下限,如果要用中断方式触发,需要用到

4、 上限寄存器(地址:0x03):设置触发上限,如果要用中断方式触发,需要用到

5、 产商ID寄存器(地址:0x7E):只读寄存器,固定为0x5449

6、 设备ID寄存器(地址:0x7F):只读寄存器,固定为0x3001

二、OPT3001的工作模式

1、OPT3001自动采集转换数据,但不主动上报,单片机需要数据的时候去读取,计算。
测量时间可以设置为100ms或者800ms,转换方式配置为连续转换,配置寄存器可以设为:0xCE10或者0xC410。
2、OTP3001自动采集转换数据,超过上限或下限会触发中断,单片机可以通过读取配置寄存器清除OPT3001的中断。
测量时间可以设置为100ms或者800ms,转换方式配置为连续转换,中断输出极性可以是高电平也可以是低电平,配置寄存器可以设为:0xCE10或者0xCE18。

三、读写OPT3001的寄存器

1、写入数据的步骤如下:
1)IIC发送器件地址+读/写位,器件地址和ADDR的状态有关,具体如图2所示。如:ADDR接地,发送的读取命令为:10001000,即0x88,前7位是器件地址,最后一位0是读/写位,0是写入,1是读取。
2)IIC发送需要写入数据的寄存器地址。如:需要写入配置寄存器,则发送0x01。
3)IIC发送需要写入的数据(两个字节,分两次发送)。如往配置寄存器连续发送0xCE,
0x10。
2、读取的步骤如下:
1)IIC发送器件地址+读/写位,器件地址和ADDR的状态有关,具体如图2所示。如:ADDR接地,发送的读取命令为:0x88。
2)IIC发送需要读取数据的寄存器地址。如:需要读取结果寄存器,则发送0x00。
3)IIC发送器件地址+读/写位,器件地址和ADDR的状态有关,具体如图2所示。如:ADDR接地,读取的读取命令为:0x89。
4)IIC连续接收两个字节的数据。
图2 OPT3001器件地址

四、完整的IIC通讯过程

1、 写入过程
1)发送起始信号
2)发送发送器件地址+0
3)发送应答位
4)发送寄存器地址
5)发送应答位
6)发送数据高8位
7)发送应答位
8)发送数据低8位
9)发送应答位
10)发送停止信号

2、读取过程
1)发送起始信号
2)发送发送器件地址+0
3)发送应答位
4)发送寄存器地址
5)发送应答位
6)发送发送器件地址+1
7)接收数据高8位
8)发送应答位
9)发送数据低8位
10)不发送应答位
11)发送停止信号
IIC读取和写入的时序图如图3所示。
图3 IIC时序图
关于OPT3001这款芯片就介绍到这里,具体的代码要怎么写我这里就不详细说了,想要驱动源码的同学可以在下面的链接下载,如果还有什么问题或者文章中有哪些地方写的不对,都可以联系我,大家相互学习相互进步。

驱动源码下载链接:
https://download.csdn.net/download/shenzhen_zixian/11705851
https://download.csdn.net/download/shenzhen_zixian/11939529


http://www.ppmy.cn/news/706452.html

相关文章

【十大视觉传感器厂家排名】

我们今天先不从视觉检测解决方案的角度出发,而是从ccd视觉传感器检测产品的角度来评选出机器视觉龙头企业。众所周知,整个视觉系统我们所用到的软硬件产品有:光源、镜头、工业相机、视觉软件等,那么在这些领域哪些公司做的比较好呢…

光照强度传感器BH1750

一、芯片介绍 BH1750FVI是一款数字型光强度传感器集成芯片。BH1750的内部由光敏二极管、运算放大器、ADC采集、晶振等组成。 结构图 PD二极管通过光生伏特效应将输入光信号转换成电信号,经运算放大电路放大后,由ADC采集电压,然后通过逻辑电…

浅析光电式传感器

浅析光电式传感器 写在前面:近几天听过几场有关光学的前沿报告之后,感触颇深!让我对电子技术有了重新的理解,但更多的是我对光学的敬仰之情顿时增加了3个dB啊!所谓电子技术,就是对电子信号进行处理的技术。…

传感模块:MATEKSYS Optical Flow LIDAR 3901-L0X

传感模块:MATEKSYS Optical Flow & LIDAR 3901-L0X 1. 模块介绍2. 规格参数3. 使用方法Step1: 接线方式Step2: 安装方式Step3: 使用范围 4. 存在问题(思考)4.1 MATEK 3901-L0X 输出协议格式?4.1.1 支持光流计协议(CXOF)4.1.2 支持光流计激光测距协议…

OpenMV4开发笔记1-感光元件初始化

import sensor, image, time #引入此例程依赖的模块&#xff0c; #sensor 是与摄像头参数设置相关的模块&#xff0c; #image 是图像处理相关的模块&#xff0c; #time 时钟控制相关的模块。 #import 相当于 c 语言的#include <>,模块相当于 c 语言的库。sensor.reset() …

义嘉泰带你了解环境光和接近传感器

义嘉泰代理-------台湾昇佳光感 从可穿戴设备到手持设备再到工业设备&#xff0c;大多数消费和工业产品的设计工程师总是在寻找各种方法来实现其期望的目标。这些应用程序之间的一个共同点是&#xff0c;它们需要某种类型的传感器&#xff0c;执行器或决策引擎来确定要采取的措…

深度相机和激光雷达的融合标定(Autoware)

深度相机和激光雷达是智能汽车上常用的传感器。但深度相机具有特征难以提取&#xff0c;容易受到视角影响。激光雷达存在数据不够直观且容易被吸收&#xff0c;从而丢失信息。因此在自动驾驶领域&#xff0c;需要对于不同传感器做数据的融合和传感器的标定。 相机内参标定 内…

工业视觉——打光

在机器视觉光源&#xff0c;主要的打光方式有以下几种&#xff1a; ①直射光 主要来自于一个方向的光&#xff0c;可以在亮色和暗色阴影之间产生相 对高的对比度图像。 ②漫射光(扩散光) 各种角度的光源混合在一起的光。日常的生活用光几乎都是扩 散光。 ③偏光 在垂直于传播方…