本文最后更新于 2286 天前,其中的信息可能已经有所发展或是发生改变。
最近一个项目用到了
SLI3108
这个芯片,用起来其实也蛮简单的,文章这里稍微记录一下以免忘记
主控为Air268模块
SLI3108是一款可以测距离/光线强度的芯片,具体datasheet可以从此处查看:SLI3108 datasheet-Rev0
项目里用到的就是简单的测距功能,当距离靠,距离在设置阈值内,INT引脚就会触发一个低电平,重新对寄存器进行设置后,INT可以回到高电平等待下一次触发
引脚图如下:
读取也是简单的几步
依照手册,设备地址为0x44
,由于lua脚本接口的设置地址为7bit地址,所以右移一位为0x22
然后依据手册,开启距离检测,设定检测周期为200ms一次,寄存器表如下:
代码如下:
接下来设定阈值,经过从0x08地址直接读出数值进行测试,发现距离远近,数值越大,所以设置阈值最大值为10,最小值为0(大于最大值/小于最小值会触发)
具体相关寄存器表如下:
初始化代码如下:
接下来就是设置触发条件了,经测试,触发条件最终设置为了1次即触发,具体寄存器表如下:
因为触发中断后要重新配置该寄存器才能进行下次中断,所以把这句初始化语句写为一个函数:
最后配置一下中断接收引脚,就完成了