匿名
未登录
登录
丢石头百科
搜索
查看“Arduino系列教程八:PM2.5灰尘传感器”的源代码
来自丢石头百科
名字空间
页面
讨论
更多
更多
页面选项
查看
查看源代码
历史
←
Arduino系列教程八:PM2.5灰尘传感器
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
[[File:180624jd7kk3pi7dt1wws0.jpg]] 本教程实现功能:通过传感器获取当前空气PM2.5的值,并通过串口发送给上位机显示。 <b>PM2.5传感器概述:</b> 可以检测直径大于0.8um的灰尘颗粒浓度,作为一名创客,想了解空气质量?想DIY一个PM2.5检测仪?想设计一个空气净化器?,那么这款传感器就是你的必备神器 <b>硬件准备:</b> <li> UNO PLUS </li><li> I/O Expansion Shield </li><li> Dust Sensor </li> <b>硬件连接:</b> 1. 将IO Expansion 扩展板接入UNO PLUS,用跳线帽将两个板子的电压都配置为 5V 2. Dust Sensor 与IO Expansion的连接 VCC -- VCC GND -- GND AOUT -- A5 ILED -- D2 3. 连接效果如下图 [[File:182933mti1bzrt3oqt3tz4.jpg]] <b>程序:</b> <syntaxhighlight lang="python"> #define COV_RATIO 0.2 //ug/mmm / mv #define NO_DUST_VOLTAGE 400 //mv #define SYS_VOLTAGE 5000 //ADC参考电压 /* I/O define */ const int iled = 2; //drive the led of sensor const int vout = 5; //analog input /* variable */ float density, voltage; int adcvalue; /* private function */ int Filter(int m) { static int flag_first = 0, _buff[10], sum; const int _buff_max = 10; int i; if(flag_first == 0) { flag_first = 1; for(i = 0, sum = 0; i < _buff_max; i++) { _buff[i] = m; sum += _buff[i]; } return m; } else { sum -= _buff[0]; for(i = 0; i < (_buff_max - 1); i++) { _buff[i] = _buff[i + 1]; } _buff[9] = m; sum += _buff[9]; i = sum / 10.0; return i; } } void setup(void) { pinMode(iled, OUTPUT); digitalWrite(iled, LOW); //iled default closed Serial.begin(9600); //send and receive at 9600 baud Serial.print("*********************************** WaveShare ***********************************\n"); } void loop(void) { /* get adcvalue */ digitalWrite(iled, HIGH); delayMicroseconds(280); adcvalue = analogRead(vout); digitalWrite(iled, LOW); adcvalue = Filter(adcvalue); /* covert voltage (mv) */ voltage = (SYS_VOLTAGE / 1024.0) * adcvalue * 11; /* voltage to density */ if(voltage >= NO_DUST_VOLTAGE) { voltage -= NO_DUST_VOLTAGE; density = voltage * COV_RATIO; } else density = 0; /* display the result */ Serial.print("The current dust concentration is: "); Serial.print(density); Serial.print(" ug/m3\n"); delay(1000); }</syntaxhighlight> <b>实现输出:</b> [[File:183005f800q94zshv8s0v3.jpg]] <b>程序代码下载:</b> <a class="attach" href="portal.php?mod=attachment&id=33" target="_blank">DustSensor.zip
返回至
Arduino系列教程八:PM2.5灰尘传感器
。
导航
导航
首页
最近更改
随机页面
MediaWiki帮助
首页
首页
树莓派
主机
配件包
外壳
键鼠
电源
扩展板
显示屏
墨水屏
摄像模块
通信模块
继电器
电机驱动板
游戏机
产品分类
树莓派
Arduino
micro:bit
STM32
Espressif
WiFi模块
蓝牙模块
无线模块
LoRa模块
4G模块
GSM
GPRS
以太网
导航模块
北斗卫星
GPS
LCD
墨水屏
OLED
摄像头
USB模块
串口模块
RS232
RS485
CAN
传感器
温度模块
湿度模块
气压模块
继电器
电机模块
指纹模块
电平转换
音频模块
编程器
Wiki工具
Wiki工具
特殊页面
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志