If / Else Problem

Salü zusammen,

Ich habe nun diverse sachen ausprobiert und mich versucht im Internet schlau zu machen aber ich bekomme irgendwie das mit If / Else nicht hin.

Er erkennt mir den eingang nicht obwohl ich 5V anstehend habe dort.
Aber er schreibt mir im Munitor auch nicht den serial.print.

Er sollte ja zumindest immer den else nehmen wen nicht if vorgabe vorhanden ist oder?

Ich bedanke mich schon im vorraus für die Hilfe.

#include <DHT.h> //DHT Bibliothek laden

#define DHT1PIN 7 
#define DHT2PIN 5 
 
#define DHTTYPE DHT22

DHT dht1(DHT1PIN, DHTTYPE);  // Initialisieren des DHTs
DHT dht2(DHT2PIN, DHTTYPE);


int ZUL_Schalter = 6;
int ZUL_Ventilator = 13;


///////////////////////////////////////////////////////
void setup(){
Serial.begin(9600); // Serielle Verbindung starten (Monitor)
dht1.begin();

delay(1000);

pinMode(ZUL_Schalter, INPUT);
pinMode(ZUL_Ventilator, OUTPUT);
}
///////////////////////////////////////////////////////
void loop(){
  ZUL_Sensor_auslesen();
  delay(10000);
  ABL_Sensor_auslesen();
  delay(10000);
  ZUL_Status;
}
///////////////////////////////////////////////////////
void ZUL_Sensor_auslesen(){
    float ZUL_Feuchtigkeit = dht1.readHumidity(); 
    float ZUL_Temperatur = dht1.readTemperature();

    Serial.print("Zuluft Feuchtigkeit: ");
    Serial.print(ZUL_Feuchtigkeit); 
    Serial.println(" %");
    Serial.print("Zuluft Temperatur: ");
    Serial.print(ZUL_Temperatur);
    Serial.println(" C");
}
///////////////////////////////////////////////////////
void ABL_Sensor_auslesen(){
    float ABL_Feuchtigkeit = dht2.readHumidity();
    float ABL_Temperatur = dht2.readTemperature();

    Serial.print("Abluft Feuchtigkeit: ");
    Serial.print(ABL_Feuchtigkeit); 
    Serial.println(" %");
    Serial.print("Abluft Temperatur: ");
    Serial.print(ABL_Temperatur);
    Serial.println(" C");
}
///////////////////////////////////////////////////////
void ZUL_Status(){
    if(digitalRead(ZUL_Schalter) == HIGH){ 
      digitalWrite(ZUL_Ventilator, HIGH);
      Serial.print("Zuluft Ventilator Ein");
      }
    else{
     digitalWrite(ZUL_Ventilator, LOW);
     Serial.print("Zuluft Ventilator Aus");
      }
}

Hi

Netter Fehler :slight_smile:
Damit Du Diesen auch angezeigt bekommst, musst Du in den Einstellungen ALLE WARNUNGEN ANZEIGEN anklicken - sowohl beim Kompilieren, wie beim Hochladen.

Lange Rede, kurzer Sinn: Du rufst die Funktion
ZUL_Status;
nicht auf ... das ginge per
ZUL_Status();

Deine ganzen INT solltest Du überdenken wie auch, Dinge, Die konstant sind, so zu benennen (const z.B. für Pin-Nummern).

MfG

Owje das ist ja peinlich haha.

Vielen dank!

Ich habe die INT zu CONST INT gewechselt.

Hi

Ein INT hat den Wertebereich -32768...32767.
Sofern Dein Arduino nun doch nicht sooo riesig ist und keine 128 Pins hat, würde hier char (-128...127) reichen.
Wenn Dein Arduino keine negativen Pin-Nummern hat, wäre byte (0...255) angeraten - dort dürften also sogar noch 'eine Hand voll Pins dazu kommen', bevor's Probleme gibt..
Wobei Das bei den const Variablen nicht weiter tragisch ist - Die kann der Kompiler komplett auflösen und direkt im Code einbauen.

MfG

Schau Dir das Makro F() an. Das hilft RAM sparen.

https://www.arduinoforum.de/arduino-Thread-F-Makro-für-Variablen-ein-kleiner-Tipp

Grüße Uwe