- /*
- 【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();
- }
- }
復制代碼
|