DHT11量产方案:湿度5%-95%,温度-20度到+60度,适用于Arduino及带源程序与原理图
·
DHT11量产方案,湿度为5%-95%,温度-20度到+60度;可在arduino上使用。 可提供源程序以及原理图.
玩过Arduino的小伙伴应该都接触过DHT11这个经典温湿度传感器。这货虽然便宜,但用起来偶尔会闹脾气——比如你正儿八经按照手册接线,它却给你返回个-999的蜜汁数值。今天咱们就来盘一盘怎么驯服这个倔强的小模块。
先上硬核干货,DHT11的工作电压3.3V-5V,数字信号输出,典型应用电路只需要在DATA脚接个4.7K上拉电阻。直接上代码:
#include <DHT.h>
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
dht.begin();
}
void loop() {
delay(2000);
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("读取失败!");
return;
}
Serial.print("湿度: ");
Serial.print(h);
Serial.print("%\t温度: ");
Serial.println(t);
}
这段代码的关键在时序控制。DHT11采用单总线协议,启动时需要18ms的低电平唤醒信号。库函数虽然封装了底层操作,但实测发现延时设置直接影响成功率。有个野路子:在read函数前加个5ms的delay,能显著提升稳定性。
硬件连接有个隐藏bug点——当供电电压低于4.5V时,DATA脚可能会检测不到高电平。遇到过数据乱跳的同学可以掏出万用表量量电压,必要时在VCC和DATA之间加个1N4148二极管做电平匹配。
DHT11量产方案,湿度为5%-95%,温度-20度到+60度;可在arduino上使用。 可提供源程序以及原理图.
量产方案要注意防潮处理。虽然DHT11标称湿度范围5%-95%,但长期处于高湿环境会导致探针氧化。有个骚操作:在传感器表面涂覆纳米防水层(比如氟素涂料),实测可将使用寿命延长3倍以上。
最后提醒:别用杜邦线!别用杜邦线!别用杜邦线!重要的事情说三遍。量产时直接焊接到PCB上,信号线长度不要超过20cm。曾经有个血泪教训——某批次产品因为杜邦线接触不良导致返修率高达30%,都是泪啊...
(原理图及完整代码包请私信获取,评论区见)

更多推荐

所有评论(0)