极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4967|回复: 2

求助帖:PM25 检测求平均值

[复制链接]
发表于 2016-4-18 11:38:27 | 显示全部楼层 |阅读模式
本帖最后由 magicpotato 于 2016-4-23 22:56 编辑

各位好:
新接触Arduino,纯新手,有个小白问题。
不会求平均值,试过很多次也不行。
想从灰尘传感器里读6次数据,然后取个平均值。





// for average

for(i=0;i<6;i++)
{
  digitalWrite(ledPower,LOW);  
  delayMicroseconds(delayTime);
  dustVal=analogRead(dustPin);  
  delayMicroseconds(delayTime2);
  digitalWrite(ledPower,HIGH);  
  delayMicroseconds(offTime);   
  delay(1000);

// for average
sum=PM25;
}
for(o=0;o<6;o++)
{
  b=b+sum;
}
avg=b/6;

Serial.println(PM25);//实际的颗粒数
Serial.println(avg);//实际的颗粒数

}


回复

使用道具 举报

发表于 2016-4-18 19:37:11 | 显示全部楼层
给你一种思路,希望有帮助
定义数组temp[6]或6个变量
当接收到新数据data_new后
temp[0]=temp[1];
temp[1]=temp[2];
...
temp[5]=data_new;
avg=(temp[0]+temp[1]+...+temp[5])/6
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-4-23 22:49:48 | 显示全部楼层
zlucas 发表于 2016-4-18 19:37
给你一种思路,希望有帮助:
定义数组temp[6]或6个变量
当接收到新数据data_new后

谢谢啊
我用这个了,可以了,每10s出一个平均值。
在尝试用for作这个
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊 ( 浙ICP备09023225号 )

GMT+8, 2020-9-23 18:50 , Processed in 0.049554 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表