17 unsigned long _starttime;
18 unsigned long _sampletime_ms;
19 unsigned long _lowpulseoccupancy;
22 DustSensor(
int port,
unsigned long sample_time_ms)
25 _sampletime_ms=sample_time_ms;
29 _starttime = millis();
31 const __FlashStringHelper* Name()
35 float LowMeasurementLimit()
39 float HighMeasurementLimit()
47 bool Measure(
float &data)
49 unsigned long duration = pulseIn(_port, LOW);
50 _lowpulseoccupancy += duration;
51 unsigned long cur_sample_time=millis()-_starttime;
52 if ((cur_sample_time > _sampletime_ms && _lowpulseoccupancy>0) || (cur_sample_time/_sampletime_ms)>10)
54 float ratio = _lowpulseoccupancy/(cur_sample_time*10.0);
55 _concentration = 1.1*pow(ratio,3)-3.8*pow(ratio,2)+520*ratio+0.62;
56 _lowpulseoccupancy = 0;
57 _starttime = millis();
Dust sensor from seeedstudio. No any external libraries are neccesary. Details to member functions se...
Definition: DustSensor.h:14