Robofun 機器人論壇

 找回密碼
 申請會員
搜索
熱搜: 活動 交友 discuz
查看: 3239|回復: 6
打印 上一主題 下一主題

請教各位前輩~ DHT11 光敏

[複製鏈接]
跳轉到指定樓層
1#
發表於 2014-11-21 21:58:11 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最後由 小牙 於 2014-11-21 22:03 編輯

各位前輩您好,最近小弟剛接觸ARDUINO UNO想做一個隨著亮度變暗LED較便亮,還有當霧氣產生時LED也會同時變亮,因為找不到可以量測霧氣感測器,所以想說可不可以用露點計算

知道相對濕度以及實際氣溫時,露點可以透過以下公式求得近似值:

當中的則是:

溫度 和露點 單位為攝氏、相對濕度 為百分比, 則代表自然對數。常數 分別是:

此公式是基於 Magnus-Tetens 近似法( Magnus-Tetens Approximation),當中把飽和水氣壓視為溫度的函數。[2]此方法僅在以下範圍時有效:

0℃ < < 60℃1% < < 100%0℃ < < 50℃簡易近似法[編輯]

當知道乾球溫度、而相對濕度大於50%時,露點可以用下列的公式求得,其誤差值僅為 ±1℃。

或者

但就不知道如何用。或者限定到某種上下線也可以
下面是我打的程式,我把光敏跟DHT11程式做結合但還是沒辦法同步沒辦法說溼度和溫度到某種程度LED就會變亮
int lightLevel;
float humidity;
float temperature;
#include "DHT.h"
#define DHTPIN 8
#define DHTTYPE DHT11
#define LED_PIN 12
#define SERIAL_BAUDRATE 115200DHT dht(DHTPIN, DHTTYPE);
void setup(void){  dht.begin();  
Serial.begin(115200) ;  
Serial.begin(SERIAL_BAUDRATE);}
void loop(void)

{  float humidity = dht.readHumidity();
   float temperature = dht.readTemperature()  
  int lightLevel = analogRead(A0);  
  Serial.print("Temperature: ");  
  Serial.println(temperature);   
  Serial.print("Humidity: ");  
  Serial.println(humidity);
  Serial.print("Light level: ");  
  Serial.println(lightLevel);
  Serial.println("");   
  delay(2000);  
  int r = analogRead(lightLevel);
  int b = map(r, 0, 1023, 0, 255);  
  // 環境光線越弱強,LED就越亮  
  analogWrite(LED_PIN, b);
}
懇請各位前輩能幫忙,真的很想完成第一項自己所做的

2#
發表於 2014-11-22 01:41:31 | 只看該作者
有個問題,你是要光敏跟溫濕度感測同時在一顆 pin_LED=12 上面嗎?
3#
 樓主| 發表於 2014-11-24 22:40:46 | 只看該作者
本帖最後由 小牙 於 2014-11-24 23:12 編輯

回復 2# ates1687


是的,只用一顆有辦法嗎,試了很久了還是想不出問題出在哪,請大大幫幫忙TT
4#
發表於 2014-11-25 01:41:58 | 只看該作者
我做個整理↓
光敏:亮度越暗,LED越亮
反之:亮度越亮,LED越暗
還有當霧氣產生時LED也會同時變亮
變亮是指恆亮,還是像光敏電阻那樣
隨著值亮暗變化?
5#
 樓主| 發表於 2014-11-27 23:16:00 | 只看該作者
本帖最後由 小牙 於 2014-11-27 23:19 編輯

回復 4# ates1687


   我做個整理↓
光敏:亮度越暗,LED越亮     對
反之:亮度越亮,LED越暗     對
還有當霧氣產生時LED也會同時變亮
變亮是指恆亮,還是像光敏電阻那樣
隨著值亮暗變化?                                   有霧氣就變最亮
感謝你關住我的問題,再麻煩你摟
6#
發表於 2014-11-28 00:03:48 | 只看該作者
本帖最後由 ates1687 於 2014-11-28 00:25 編輯

以下是我的大概程式結構圖
建議你把最暗跟最亮的值跟濕度跟LED亮度拆成5等份,進行交叉判斷
只是大概怎麼寫而已
光敏  level(光小)1 2 3 4 5(光亮)  = 0, 205, 410, 615, 820, 1025
濕度  level(乾燥)1 2 3 4 5(最濕)  = 0,  20,   40,   60,  80,   100
LED  level(最暗)1 2 3 4 5(最亮)  = 0, 200, 400, 600, 800, 1000(1K)

以此類推
光亮度跟濕度交叉組合排列,決定LED的亮度就是這樣
如果是大型程式碼,可能就要個逐擊破(演算法)簡化程式碼這樣!
那你真正要寫的概念是

如果(光線在範圍內&&濕度在範圍內){
     相對LED亮度為多少;
}
不然就是(光線在範圍內&&濕度在範圍內){
     相對LED亮度為多少;
}
不然就是(光線在範圍內&&濕度在範圍內){
     相對LED亮度為多少;
..............自己要去寫在紙上設定!
7#
 樓主| 發表於 2014-11-29 22:54:53 | 只看該作者
回復 6# ates1687


  謝謝你,我大概知道要如何下手
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

小黑屋|手機版|Archiver|機器人論壇 from 2005.07

GMT+8, 2024-4-29 07:53 , Processed in 0.247557 second(s), 7 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表