粉尘传感器ZPH01驱动


title: ZPH01驱动

1 传感器说明

1.1 电气特性

这里写图片描述

1.2 管脚说明

这里写图片描述

1.3 驱动方式

这里写图片描述

1.4 数据处理

这里写图片描述
这里写图片描述
这里写图片描述

1.5 注意事项

这里写图片描述

2 驱动代码

2.1前言

该驱动使用的是串口方式,需要将模式脚拉低,封装最后输出的是浓度,单位是ug/m3。demo是基于和小伙伴一起封装的STM32f103C8系列单片机的底层驱动,编写语言是C++,平台是keil5。

2.2正文

该传感器是已经封装过一次的,他会每间隔1秒通过串口发送一次数据。而我要做的便是使使用者更加简单的获取到需要的数据。也就是进行了二次封装,将数据更新封装为updata()函数,数据获取封装成getdata()函数。
首先我们先来看下.H文件
这里写图片描述
由于该驱动与串口密切相关,所以我们的构造函数就传入一个串口。
mData由于暂存读出的一桢数据,mData_H 和L 是为了方便将数据传出到上位机添加的。用户在主函数在需要更新的时候调用updata 在需要得到数据时调用getdata就可以了。


接下来我们来看下updata函数
这里写图片描述
虽然模块一直给我们传输数据,但是调用更新函数是只保存最新的一组数据,并且进行校验和,如果正确取出浓度数据则返回true ,否则返回false。中间使用了一些usart封装的函数。


最后我们看下如何使用吧
这里写图片描述

3 实验结果

该实验结果有点意思,波动超级大,前一张图是没遮挡盒子中间三角空的数据,最高处是对其吹起的结果,后一个是用卫生纸挡住的效果。由于该传感器是光感,并且买了时间有点久,盒子里的镜头有写灰尘,影响了结果吧,好久找个棉签擦拭了再测试下。
这里写图片描述
这里写图片描述
这里写图片描述

4 相关下载

Github地址
CSDN下载
由于我将删掉GITHUB的这个仓库,所以把东西转移到了CSDN上

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值