INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
If- Bedingung DHT11
18.05.2015, 13:45
Beitrag #1
If- Bedingung DHT11
Hallo,

ich brauche eine If Bedingung das wenn z.b. das Hygrometer >90% Luftfeuchte anzeigt es mir einen kleinen Motor auf Pin 11 einschaltet.

Das Hygrometer soll ja werte von 0-255 liefer wobei z.b. 200 (keine ahnung) 80% rel. luftfeuchte entspricht.

wo komme ich an die werte 0-255 dran?
wie schreibe ich so einen if -Bedingung?

#include "DHT.h" //von ladyada: https://github.com/adafruit/DHT-sensor-library
#define DHTPIN 24 // benutzter ARDUINO-Pin (Analog-Pin 1)

#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 13, 9, 4, 5, 6, 7); // diese Pins werden benutzt

#define DHTTYPE DHT11 // DHT 11

DHT dht(DHTPIN, DHTTYPE);

void setup() {
Serial.begin(9600);
Serial.println("DHT11-Test");

lcd.clear(); // LCD löschen
lcd.begin(16, 2); // verfügbare Spalten und Zeilen

dht.begin();
}

void loop() {
// Das Erfassen von Temperatur und Luftfeuchtigkeit benoetigt ca. 250 Millisekunden.
float h = dht.readHumidity();
float t = dht.readTemperature();

// Check, ob die Daten Zahlen sind, falls nicht (NaN: not a number), ist was falsch gelaufen!
if (isnan(t) || isnan(h))
{
Serial.println("Fehler beim Lesen vom DHT-Sensor");
}
else
{

Serial.print("Feuchtigkeit: ");
Serial.print(h);
Serial.print(" %\t ");
Serial.print("Temperatur: ");
Serial.print(t);
Serial.println(" Grad Celsius");



lcd.setCursor(0,0);
lcd.print("Feuchtigk.:");
lcd.print(h);
lcd.setCursor(0,1);
lcd.print("Temperatur:");
lcd.print(t);
delay(1000);


}
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.05.2015, 15:08
Beitrag #2
RE: If- Bedingung DHT11
(18.05.2015 13:45)piper0931 schrieb:  Das Hygrometer soll ja werte von 0-255 liefer wobei z.b. 200 (keine ahnung) 80% rel. luftfeuchte entspricht.

In der Mathematik könnte man das mit einen Dreisatz lösen. Demnach entspricht ein Wert von 200 einer rLF von 78,4%. Big Grin

Und mit h hättest du ja den Wert der gelesen wird (0-255).

Gruß
Torsten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.05.2015, 15:26
Beitrag #3
RE: If- Bedingung DHT11
(20.05.2015 15:08)torsten_156 schrieb:  
(18.05.2015 13:45)piper0931 schrieb:  Das Hygrometer soll ja werte von 0-255 liefer wobei z.b. 200 (keine ahnung) 80% rel. luftfeuchte entspricht.

In der Mathematik könnte man das mit einen Dreisatz lösen. Demnach entspricht ein Wert von 200 einer rLF von 78,4%. Big Grin

Und mit h hättest du ja den Wert der gelesen wird (0-255).

Gruß
Torsten

Aber auch nur, wenn der Messbereich von 0% bis 100% ist und linear abgebildet wird Tongue
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.05.2015, 15:39
Beitrag #4
RE: If- Bedingung DHT11
Zitat:Aber auch nur, wenn der Messbereich von 0% bis 100% ist und linear abgebildet wird Tongue

Gibt es denn eine Luftfeuchtigkeit über 100%?
Wink
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.05.2015, 16:14 (Dieser Beitrag wurde zuletzt bearbeitet: 20.05.2015 16:29 von piper0931.)
Beitrag #5
RE: If- Bedingung DHT11
[quote='torsten_156' pid='17315' dateline='1432130898']
[quote='piper0931' pid='17225' dateline='1431953153']

habs hin bekommen.

man kann anscheindend die "normalen" werte benutzten also z.b. 70 für 70 % rel. und muss sie nicht umrechnen!

jetzt doch noch mal ne frage:

im moment wird nur eine LED damit ein und aus geschaltet. häng ich aber einen 3V motor dran tut sich gar nix mehr?

woran könnte das liegen?
Muss ich ein relais verwenden?





#include "DHT.h" //von ladyada: https://github.com/adafruit/DHT-sensor-library
#define DHTPIN 24 // benutzter ARDUINO-Pin (Analog-Pin 1)

#include <LiquidCrystal.h>

LiquidCrystal lcd(8, 13, 9, 4, 5, 6, 7); // diese Pins werden benutzt

#define DHTTYPE DHT11 // DHT 11

DHT dht(DHTPIN, DHTTYPE);


void setup() {
pinMode(28, OUTPUT);
Serial.begin(9600);
Serial.println("DHT11-Test");

lcd.clear(); // LCD löschen
lcd.begin(16, 2); // verfügbare Spalten und Zeilen

dht.begin();
}

void loop() {
// Das Erfassen von Temperatur und Luftfeuchtigkeit benoetigt ca. 250 Millisekunden.
float h = dht.readHumidity();
float t = dht.readTemperature();

// Check, ob die Daten Zahlen sind, falls nicht (NaN: not a number), ist was falsch gelaufen!

if ((h) > 70)
{
digitalWrite(28, HIGH);

}
else
{
digitalWrite(28, LOW);

}

if (isnan(t) || isnan(h))
{
Serial.println("Fehler beim Lesen vom DHT-Sensor");
}
else
{

Serial.print("Feuchtigkeit: ");
Serial.print(h);
Serial.print(" %\t ");
Serial.print("Temperatur: ");
Serial.print(t);
Serial.println(" Grad Celsius");



lcd.setCursor(0,0);
lcd.print("Feuchtigk.:");
lcd.print(h);
lcd.setCursor(0,1);
lcd.print("Temperatur:");
lcd.print(t);
delay(1000);


}


}

jetzt doch noch mal ne frage:

im moment wird nur eine LED damit ein und aus geschaltet. häng ich aber einen 3V motor dran tut sich gar nix mehr?

woran könnte das liegen?
Muss ich ein relais verwenden?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.05.2015, 20:31
Beitrag #6
RE: If- Bedingung DHT11
Zitat:man kann anscheindend die "normalen" werte benutzten also z.b. 70 für 70 % rel. und muss sie nicht umrechnen!

Du hast ja oben geschrieben, dass der Wert der gelesen wird zwischen 0-255 liegen kann. Prüfe doch mal, ob der Wert denn >100 wirdWink Also mal über eine Schüssel mit kochendem Wasser halten Huh

Zitat: häng ich aber einen 3V motor dran tut sich gar nix mehr?
woran könnte das liegen?

Der Motor benötigt vermutlich >40mA um anzulaufen. Der Arduino liefert am I/O-Pin nur 40mA (siehe Datenblatt). Das scheint wohl zu wenig zu sein Wink
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.05.2015, 20:51
Beitrag #7
RE: If- Bedingung DHT11
gebe ich eine Zahl > 100 ein geht es nicht. darauß schließe ich der wert irgendwo vorher schon umgewandelt wird und ich einfach die normale rel. luftfeuchtigkeit nehmen kann.

bei der temp. das gleiche spiel

hatte noch ein relais rumliegen und angeschloßen. läuft auch bzw die kontroll led zeigt dies an.

allerdings hat das relais 12 V auslöse spannung.

hab eins mit 5V bestellt damit müsste es dann klappen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.05.2015, 21:14
Beitrag #8
RE: If- Bedingung DHT11
Man könnte sich den Wert ja auch mal auf dem Serial-Monitor ausgeben lassen. Ist recht hilfreich Cool Somit kannst du den tatsächlichen Wert überprüfen.
Denn es wird immer mal Projekte geben, bei denen man einen gelesenen Wert sehen/überprüfen möchte.
Hier mal die Referenz dazu: hier klicken
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  If-Bedingung funktioniert nicht bei Serial1.write Datatom 6 226 16.09.2016 20:36
Letzter Beitrag: Datatom
  if Bedingung einfügen gronph 5 458 20.03.2016 13:56
Letzter Beitrag: gronph
  Bitte Hilfe bei IF-Bedingung DL1AKP 5 665 07.10.2015 21:04
Letzter Beitrag: hotsystems
  Probleme mit dht11 Sketch diode 8 1.606 04.02.2015 17:56
Letzter Beitrag: diode
  Switch Case, LEDs bleiben an, Bedingung aber falsch luto92 4 1.448 16.11.2014 16:52
Letzter Beitrag: luto92

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste