Moin, ich bin noch ziemlich neu beim Arduino. Ich möchte mit einem DHT22 die Luftfeuchtigkeit messen und ab einem bestimmten Wert ein Relais ansteuern.
Ich habe es lange mit einem if (digitalRead(h) > 60) versucht.
(h habe ich natürlich als humidity definiert, diese kann ich mir im seriellen Monitor auch anzeigen lassen)
Bei der if Kette klapp das leider nicht. Kann ich die Digitalwerte irgendwie in einen if Befehl einbauen?
Zeigen Sie den Sketch, den Sie verwendet haben. Stellen Sie sicher, dass Sie Ihren Code mit < CODE > Button und Einfügen innerhalb der Triple-Back-Tics. Das sollte wie folgt aussehen:
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
int relayPin = 13;
void setup() {
Serial.begin(115200);
dht.begin();
}
void loop() {
int h = dht.readHumidity();
int c = dht.readTemperature();
Serial.print("Feuchtigkeit: ");
Serial.print(h);
Serial.print("% Temperatur: ");
Serial.print(c);
Serial.println("°C ");
if (h > 60)
digitalWrite(relayPin, HIGH);
else
digitalWrite(relayPin, LOW);
delay(2000);
}
digitalRead liest den Zustand eines Pins ob er HIGH oder LOW ist und liefert bei HIGH eine 1 und bei LOW eine 0.
Wenn dein h den Wert 6 hat, wird der Zustand des GPIOs 6 gelesen. Wenn dein h den Wert 8 hat, wird der Zustand des GPIOs 8 gelesen.
Es kann also so nicht funktionieren.
Was funktionieren könnte, ist
if(h > 60) {
// weiterer Code
}
else {
// weiterer Code
}
Für genauere Analyse braucht es dein Code in Code-Tags
Ich gehe mal davon aus, dass der Code im 2. Beitrag nicht der von Dir verwendeten Code ist.
Der DHT22 ist ein 1-Wire Sensor an einem Digital-Pin, benötigt zur Bereitstellung der entsprechenden Werte jedoch die DHT Library von Adafruit welche im o.g. Beispiel mit
#include "DHT.h"
eingebunden ist.
Einfach mal hier einlesen, dann sollte das klar sein:
https://learn.adafruit.com/dht
Viele Grüße
Warum sollte das aus #2 nicht funktionieren ?
Das es kein float nutzt?
Muss man nicht, in dem fall reicht auch int
Habe ich geschrieben dass es nicht funktioniert? Das scheinst Du falsch interpretiert zu haben.
Ich habe lediglich einen ergänzenden Hinweis auf die Library gegeben.
Ziel sollte es immer sein, zu verstehen wie etwas funktioniert und nicht nur den Code zu kopieren.
Viele Grüße
Ich bin mir sicher, dass @xfpd diese Belehrung nicht braucht.. ![]()
Ich habe dem Ersteller des Beitrags ergänzende Informationen geliefert, wo ist hier das Problem?
Ein Hinweis auf welchen zwei Belehrungen folgen?
Ich hatte die Community wohl falsch eingeschätzt...
Ich wollte lediglich darauf hinweisen, dass der Ersteller schon einige Jahre in diesem Forum aktiv ist und sich mit der Programmierung min. so gut auskennt, dass er das nicht mehr erklärt bekommen muss.
Tut mir leid, wenn Du dich dadurch möglicherweise angegriffen fühlst.
Dan sollte man direkt den @J0nasD ansprechen ![]()
Du hast aber Allgemein geantwortet, dadurch verstehe ich das als Kritik zu #2
Hättest auf Replay bei #1 gesetzt kämme es nicht zu den Antworten.
Ist aber jetzt egal, trotzdem Willkommen im Forum!
Dazu noch aus deinem Link kann man nichts lernen, hier aber schon.
Oh, danke für den Hinweis. Musstest Du wohl einfach loswerden. Ich halte mich künftig raus und lese nur wieder mit.
Sorry das Du sich soooo schnell angegriffen fühlst, das war nicht meine Absicht.
Dazu es sollte dir bei Lesen auffallen, das manchmal zu ziemlich irrer Kommunikation kommt, was fast an Beleidigung grenzt. Leben tun noch alle.
Wurde Sagen, das aus meiner Sicht ist alles geklärt.
Hallo und willkommen,
dann solltest du möglichst bald deinen Sketch hier einfügen. Auch um diese hitzige Debatte hier zu "beenden" ![]()
Tut mir Leid. Die Absicht war, zu zeigen, dass "h > 60" nicht "die Antwort" ist.... und Codeformatierung... Ich werde das nächste Mal Fahrenheit verwenden. ![]()
Fahrenheit ist doch für Temperatur.
Zeige doch was Du hast.
Normalerweise ist das kein Problem, nur die Frage verstehe nicht.
Ich vermute mal, der TO möchte einen Lüfter anschalten, wenn in einem Raum die Luftfeuchte zu hoch ist.
Die Beschreibung klingt sehr danach.
Ja, aber es hätte dem Geplänkel ein Ende gesetzt... was mich von der Beantwortung der anfänglichen Frage nach dem Wie ablenkte (H > 60). Ich habe nicht erklärt, dass (h > 60) die LED aufleuchtet.
Ist schon OK, habe dich mit dem TO verwechselt, das mit der LED im Skript habe gesehen.
Sorry für die Verwechslung.