![]() | 欢迎关注「凌顺实验室」微信公众号 |
这次用到的这个模块,是SHARP GP2Y10(粉尘传感器,其实我在怀疑是否也叫PM2.5)
买到手的时候,除了传感器还有随附的一个150欧姆的电阻和一个220uf的电容
实验效果
这是摆放在房间中的数值,看到Dust Density的数值为0.02左右,说明空气中的粉尘很少
这是在传感器旁边点了一支香,让烟从传感器的孔洞中穿过看到的数值。说明空气粉尘严重。
(可以使用香烟,可以使用笔放进孔洞中看看数据的变化)
BOM表
Arduino Uno *1
粉尘传感器(GP2Y10) *1
电阻 150欧姆 *1
电容 220uf *1
面包板 *1
跳线若干
接线
程序
int measurePin = A5;
int ledPower = 12;
unsigned int samplingTime = 280;
unsigned int deltaTime = 40;
unsigned int sleepTime = 9680;
float voMeasured = 0;
float calcVoltage = 0;
float dustDensity = 0;
void setup(){
Serial.begin(9600);
pinMode(ledPower,OUTPUT);
}
void loop(){
digitalWrite(ledPower,LOW);
delayMicroseconds(samplingTime);
voMeasured = analogRead(measurePin);
delayMicroseconds(deltaTime);
digitalWrite(ledPower,HIGH);
delayMicroseconds(sleepTime);
calcVoltage = voMeasured*(5.0/1024);
dustDensity = 0.17*calcVoltage-0.1;
if ( dustDensity < 0)
{
dustDensity = 0.00;
}
Serial.println("Raw Signal Value (0-1023):");
Serial.println(voMeasured);
Serial.println("Voltage:");
Serial.println(calcVoltage);
Serial.println("Dust Density:");
Serial.println(dustDensity);
delay(1000);
}