GP2Y1014AU粉尘传感器
GP2Y1014AU粉尘传感器在其中间有一个洞,空气可以自由流通,传感器内部邻角位置安装有红外发光二极管和光电晶体管,红外发光二极管定向发送红外光,当空气中有颗粒物阻碍红外线时,红外线发生漫反射,光电晶体管接收到红外光线,信号输出引脚电压会随之发生变化。该电压值在一定范围内与灰尘浓度成线性关系,因此在使用过程中,需要使用 ADC 采集该电压信号,并通过该电压值计算出空气中的灰尘浓度。
模块来源
规格参数
工作电压:5-7V
消耗电流:最大20mA
最小粒子检出值:0.8微米
灵敏度:0.5V(0.1mg/m3)
清洁空气中电压:0.9V (典型)
重量:15g
尺寸大小:46x30x17.6mm
硬件连接
将GP2Y1014AU的引脚按照以下方式连接到开发板:
c
GP2Y1014AU Pin -> ColorEasyDuino Pin
1 (V-LED) -> 5V
2 (LED-GND) -> GND
3 (LED) -> 2
4 (S-GND) -> GND
5 (Vo) -> A0
6 (Vcc) -> 5V
1
2
3
4
5
6
7
2
3
4
5
6
7
使用方法
c
/******************************************************************************
* 测试硬件:ColorEasyDuino开发板
* 版 本 号: V1.0
* 修改作者: www.lckfb.com
* 修改日期: 2024年04月11日
* 功能介绍:
*****************************************************************************
* 开发板软硬件资料与相关项目软硬件资料官网全部开源
* 开发板官网:www.lckfb.com
* 技术支持常驻论坛,任何技术问题欢迎随时交流学习
* 立创论坛:club.szlcsc.com
* 关注bilibili账号:【立创开发板】,掌握我们的最新动态!
* 不靠卖板赚钱,以培养中国工程师为己任
******************************************************************************/
// 定义GP2Y1014AU的引脚
const int ledPower = 2; // LED驱动引脚
const int measurePin = A0; // 模拟测量引脚
// 测量参数和定时器
unsigned long duration;
unsigned long starttime;
unsigned long sampletime_ms = 30000; // 测量周期为30秒
unsigned long lowpulseoccupancy = 0;
float ratio = 0;
float concentration = 0;
void setup() {
Serial.begin(9600);
pinMode(ledPower, OUTPUT);
digitalWrite(ledPower, LOW); // 低电平以确保LED不会亮起直到程序开始
starttime = millis(); // 获取当前时间
}
void loop() {
// 打开传感器LED
digitalWrite(ledPower, HIGH);
delayMicroseconds(280); // LED打开的时间
duration = pulseIn(measurePin, LOW); // 测量低电平持续的时间
delayMicroseconds(40); // 测量持续时间
digitalWrite(ledPower, LOW); // 关闭LED
lowpulseoccupancy += duration; // 累积低电平持续时间
// 测量周期结束后计算粉尘浓度
if ((millis()-starttime) > sampletime_ms) {
ratio = lowpulseoccupancy / (sampletime_ms * 10.0); // 低电平占空比
concentration = 1.1 * pow(ratio, 3) - 3.8 * pow(ratio, 2) + 520 * ratio + 0.62; // 使用夏普提供的计算公式
Serial.print("浓度: ");
Serial.print(concentration);
Serial.print(" pcs/0.01cf\n");
lowpulseoccupancy = 0;
starttime = millis();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56