欢迎光临散文网 会员登陆 & 注册

RA4M2开发(3)----读取ISL29035数据,并在OLED上显示,串口打印

2023-08-23 11:02 作者:记帖  | 我要投稿

概述

  1. 首先导入必要的库文件,包括I2C驱动和OLED驱动。

  2. 在代码中配置I2C接口,并初始化I2C驱动。

  3. 配置ISL29035传感器,包括配置传感器的工作模式和量程。

  4. 使用I2C读取ISL29035传感器的数据,并将其存储在变量中。

  5. 初始化OLED驱动,并在OLED屏幕上显示读取的数据。 请注意,这仅是一个大致的步骤,具体实现可能因硬件和软件环境而异。 对于OLED的配置,可以查看往期的博客。 最近在弄ST和瑞萨的课程,需要样片的可以加群申请:6_15061293 。

视频教学

https://www.bilibili.com/video/BV1wc411g7xU/


csdn课程

csdn课程更加详细。 https://edu.csdn.net/course/detail/36131

样品申请

https://www.wjx.top/vm/wBbmSFp.aspx#

硬件准备

首先需要准备一个开发板,这里我准备的是芯片型号R7FAM2AD3CFP的开发板: 

样品申请

https://www.wjx.top/vm/wBbmSFp.aspx#

IIC配置

配置RA4M2的I2C接口,使其作为I2C master进行通信。 对于OLED的IIC配置,可以查看往期的博客。 查看ISL29035说明书,最小电路图如下所示。 

由于需要读取ISL29035数据,需要使用IIC接口,这里使用PMOD2上的接口(P410和P411)。 

点击Stacks->New Stack->Connectivity -> I2C Master(r_sci_i2c)。 

查看说明书可以得知,ISL29035的地址为0x44(1000100)。 

设置IIC的配置。 

R_SCI_I2C_Open()函数原型

R_SCI_I2C_Open()函数为执行IIC初始化,开启配置如下所示。


R_SCI_I2C_Write()函数原型

R_SCI_I2C_Write()函数是向IIC设备中写入数据,写入格式如下所示。


R_SCI_I2C_Read()函数原型

R_SCI_I2C_Read()函数是向IIC设备中读取数据,读取格式如下所示。


sci_i2c_master_callback()回调函数

对于数据是否发送完毕,可以查看是否获取到I2C_MASTER_EVENT_TX_COMPLETE字段。 


ISL29035写数据

对于ISL29035写数据,手册上的操作方式如下所示。 设备地址+操作地址+数据 

初始化程序如下所示。


ISL29035读数据

对于ISL29035读数据,手册上的操作方式如下所示。 设备地址+操作地址+设备地址+数据读取 

读取操作函数如下所示,先发送操作地址,在进行读取。


ISL29035初始化

  1. 读取设备ID,查看是否链接上

  2. 清除标志位

  3. 确保芯片处于停止模式

  4. 设置分辨率

  5. 设置模式,如单次模式 读取设备ID使用0x0F指令,可以判断DEVICE ID BITS (B3-B5),之后需要对BROWNOUT STATUS BIT - BOUT (B7)清0。 

初始化的时候需要确保芯片处于停止模式,需要对0x00指令的OPERATION MODE BITS (B5-B7)写入000。 

设置分辨率可以通过0x01指令,光照强度有4种模式,1k, 4k, 16k和64k,通过FULL SCALE LUX RANGE (B0-B1)进行设置;ADC分辨率也有4种模式,通过ADC RESOLUTION (B3-B2)进行设置。

设置采样模式,可以通过0x00指令,对OPERATION MODE BITS (B5-B7)写入010。 


ISL29035读取光照强度

设置采样模式,可以通过0x00指令,对OPERATION MODE BITS (B5-B7)写入010。 

不同的ADC精度需要等待的时间不同,16位的等待时间最久,需要105ms。 

对于读取数据,可以使用Data Registers (Addresses: 0x02 and 0x03),高位字节通过0x03读取,低位字节通过0x02读取,之后进行组合,就是完整的数据。 

读取到原始数据之后,可以通过下面公式计算光照强度。 


实现效果

正常显示数据。 


同时可以通过串口打印数据。 


由于设置光照采样为1K,故只能读取到999。 


重新设置光照采样范围为4k,就可以读取0-4K的范围了,具体设置需要考虑使用环境。 


主程序


Digital_Light_ISL29035.h



RA4M2开发(3)----读取ISL29035数据,并在OLED上显示,串口打印的评论 (共 条)

分享到微博请遵守国家法律