极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8367|回复: 3

尝试DIY一个空气净化器 (6) 控制器第一次合体

[复制链接]
发表于 2014-3-2 23:51:12 | 显示全部楼层 |阅读模式
本帖最后由 hi55234 于 2014-3-3 09:24 编辑

IMG_20140302_231902.jpg

IMG_20140302_232430.jpg


PWM手工电调 ——这是个坑,我不要手动挡啊

ACS712电流检测——这个可以有,看整体功率一目了然

DC-DC可调降压模块(kis-3r33改造)——听起来很厉害的样子

2个DIY洞洞板,主要是6v、5v、gnd的扩展——OLED一不小心就喊成外部升压了,5v不够亮,但是其他设备要5v

DS1307时钟——这个很好很强大,循环都不用millis()了,直接数秒

GP2Y1010——经过约100小时的曲线,发现PM2.5曲线相似性有的,模块之间稳定性也有,不过检测最好锁定在50--150ug这个区间,因为一旦电压硬减下来,量程必定减少。150ug以上跟上不去,40ug以下下不去

DHT11价格低廉,温度、湿度仅供娱乐(要精确温度上DS18B20 、湿度方面传说HS1101还不错)

OLED的库最后还是用Adafruit_SSD1306,加上划线,可以做5点的粉尘变化折线图

---------------------------------


没连上的:
MQ-135/MQ-2
UVM-30A(紫外线防侧漏检测,不过是254nm的紫外灯和二氧化钛都还没买)
LC-05 这玩意就用手机看了一下,不过不论是客户端,还是自动调速都还不会弄

先睡了················




up.jpg
回复

使用道具 举报

 楼主| 发表于 2014-3-2 23:56:27 | 显示全部楼层

MQ-2的思考

本帖最后由 hi55234 于 2014-3-3 22:35 编辑

PS:ACS712电流检测——用的5A量程,185ma/A

至于为啥 28/185取浮点会是0.00A这是个问题~~~囧~~~最开始float/int没问题的,目测int/int也不该有问题吧

实测:  float=int/int=带.00的int,float=float/int=float;

用的19v适配器供电,电流也是19v输出的电流

-------------------------------------------

奢侈的MQ-2来的,加热功耗 ≤900mW

Features:
ATmega328P @ 16MHz (external resonator)
compatible with Arduino pro mini
5V voltage regulator
max. 150mA output
over current protected
DC input 5V - 12V
Made in Germany

对比pro mini的供电能力,捉急啊·········
——————————————————————————

参考电路:
up8.JPG

坑爹的地方来了:
up9.JPG

Rs:元件在不同气体,不同浓度下的电阻值。
R0: 元件在洁净空气中的电阻值。

这个RS与R0看似说得很明白,元件电阻值,那啥叫元件电阻值?是总供电Vcc/总电流I=R?是这个等效电阻R值??可是不对啊···

加热功耗 ≤900mW,5v电压,怎么看电阻也得27.7欧往上走啊(加热电阻 31Ω±3Ω),如此功率(以U*U/R算),等效电阻是不可能上250欧,否则功率不会大于100mw,同时也和

Rs 敏感体表面电阻 3KΩ-30KΩ(1000ppm 异丁烷 )

相矛盾,加之测量原理为气体还原过程导致导电率增加,由此,可以判断这个RS是A、B两个脚之间的电阻,那么RL也就是相当于串联分压了,检测点Vout正好处于等效电阻Rab与RL之间,测量的是:

Vcc减轻等效电阻Rab的降压的值,由此反推Rab的电阻

以RL=5k欧,Rs 3KΩ-30KΩ(1000ppm 异丁烷 ),Vcc=5V,

洁净空气中 Vout=5*(1-30/(5+30))=0.714285714 V  约146个电压单位
1000ppm 异丁烷污染的情况下 Vout=5*(1-3/(5+3))=3.125 V  约640个电压单位

当然,如果浓度继续增大,那么当RS变得足够小的时候,Vout就会输出近似于5v,1023个电压单位的值

  1. 检测气体中电阻-Rdg
  2. 检测气体中电压-Vdg
  3. Rdg与 Vdg的关系:Rdg=RL(VC/Vdg-1)
复制代码


那么这个坑爹公式就变成了  Rs=RL(Vcc/(Vcc-V(Rab))-1)

Rs=RL(Vcc-Vcc+V(Rab)))/(Vcc-V(Rab))

Rs=RL*V(Rab)/(Vcc-V(Rab))

RS/RL=V(Rab)/(Vcc-V(Rab))  

分压电压之等于串联电阻之比,我说,能说人话吗?搞这么个玄乎的公式?高大上能吃吗???

另外

  1. void setup()
  2. {
  3.   Serial.begin(9600); // 9600 bps
  4. }
  5. void loop()
  6. {
  7.   int val;
  8.   val=analogRead(0);
  9.   Serial.println(val [color=Red],DEC[/color]);//
  10.   delay(100);
  11. }
复制代码



这个十进制输出不也是废话么?dfrobot你家arduino使用analogRead()所返回的值不是10进制?需要转换?然后3.9RMB的MQ-2加个板子就变成42RMB了,对此我只能呵呵~~~
up10.JPG

呵呵归呵呵,不过依旧感谢dfrobot对这个模块所做的测试,以及分享精神

----------------------------------------------
以下为引用:


代码功能是,通过模拟口0采集气体传感器的信号,然后通过串口输出到电脑上,我们可以使用串口助手看到结果。
根据气体传感器内部构造,加上电后需要等待1分钟预热后才能进行测量,预热后能感受到探头有明显的温度。下面我们演示3种气体的检测。
首先我们看看探头暴露在空气中的数据。当探头预热完成后,数据将在120之间(该数据只作参考,因环境不同,数据会有所不同),由探头参数可知,在清洁空气中,该数据值应该小于310。如下图。
up11.jpg

接下来检测几种气体试试,第一种是口气检测,对着探头吹气,我们就可以通过串口助手观察到数据。
up12.jpg
第二种是烟雾检测,将点燃的纸熄灭,放到探头下方,产生的烟雾会被探头检测到,我们可以通过串口助手观察到数据。
up13.jpg
up14.jpg
第三种是丁烷检测,我们常用的气体打火机就是使用的丁烷,把打火机放到探头下方,放出丁烷气体,探头就会检测到,我们通过串口助手观察数据。
up15.jpg
up16.jpg
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-3 22:47:19 | 显示全部楼层
up17.JPG

至于H2段为啥是5V,那是因为:

1、厂家给的曲线是5v的

2、arduino在没分压的情况下,也就是最大检测5v~~~
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2020-9-29 06:47 , Processed in 0.051546 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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