找了网上关于DSM501A的源程序,似乎都没有STM32系列的呢,所以自己写了一个发上来,先简单介绍一下原理,方便还没有编程的师弟们!
1、DSM501A实现原理介绍
首先供电电压必须要在5V,否则用3.3V供电的话,收集到的数据时极其不准确的,而且传感器对周围环境的感应也会变得很微弱。
DSM501A内部自带加热,加速空气流动,空气中粒子经过传感时,传感内LED会被较大颗粒的粒子挡住,从而在输出口产生低电平,所以要计算灰尘浓度,只需要将低电平时间累加,最后除以总时间30s 就可以了。(中间当然有误差。。但是,便宜嘛,没办法)
2、编程思路:
比较简单,用到两个通用TIM,一个作为30s总计时的TIM2,一个作为低电平计时的TIM3,整个开发比较简单,源码放百度网盘里了,自己下载吧。
http://pan.baidu.com/s/1kT1g4XT
主要重点就是,30s计时后要停止所有的中断。
如果不懂可以问我:我的QQ:565625257