- /*
- 【Arduino】66种传感器模块系列实验(43)
- 实验四十三:DSM501A韩国三瀛PM2.5灰尘粉尘传感器模块
- */
- int pin = 8;
- unsigned long duration;
- unsigned long starttime;
- unsigned long sampletime_ms = 30000;
- unsigned long lowpulseoccupancy = 0;
- float ratio = 0;
- float concentration = 0;
- void setup() {
- Serial.begin(9600);
- pinMode(8,INPUT);
- starttime = millis();
- }
- void loop() {
- duration = pulseIn(pin, LOW);
- lowpulseoccupancy = 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(lowpulseoccupancy);
- // Serial.print(",");
- Serial.print(ratio);
- Serial.print(",");
- Serial.println(concentration);
- lowpulseoccupancy = 0;
- starttime = millis();
- }
- }
复制代码
|