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
Lüftersteuerung ala Arduino
18.02.2020, 11:02
Beitrag #9
RE: Lüftersteuerung ala Arduino
Diese Ausgabe kommt nie:
Code:
if (isnan(h) || isnan(f)) {
    Serial.println(F("Failed to read from DHT sensor!"));
    return;
    lcd.setCursor(0, 0);                            //      Cursor setzen auf Position 0,0
    lcd.print("ERROR SENSOR 1!");                   //      Sensor Fehler 1 ausgeben
  }
Das return muss ans Ende.

int hat keine Nachkommastellen.
Code:
const int MaxTemp = 20.00;
const int MaxRFL = 70.00;

Warum liest Du zum if neu? Du hast doch den Wert in f bzw. h.
Was soll das return in den else-Zweigen? Das muss raus.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.02.2020, 14:27 (Dieser Beitrag wurde zuletzt bearbeitet: 19.02.2020 14:38 von Mango94.)
Beitrag #10
RE: Lüftersteuerung ala Arduino
Nun hab ich es endlich geschafft. Das Display tut genau das, was ich will, und das Relais arbeitet auch, so wie es soll.

Code:
// include the library code:
#include <LiquidCrystal.h>
#include "DHT.h"

// set the DHT Pin
#define DHTPIN 7

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
const int PINOUT = 7;
const int buttonPin1 = 8;
const int buttonPin2 = 9;
const int buttonPin3 = 10;
const int buttonPin4 = 6;
const int Relais1 = 13;

int MaxTemp = 28;
int MaxRFL = 60;

int button1State = 0;
int button2State = 0;
int button3State = 0;
int button4State = 0;

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  dht.begin();

  // Print a message to the LCD.
  lcd.setCursor(6, 0);
  lcd.print("^C");
  lcd.setCursor(6, 1);
  lcd.print("%RFL");
  lcd.setCursor(9, 0);
  lcd.print("Soll:");
  lcd.setCursor(14, 0);
  lcd.print(MaxTemp);
  lcd.setCursor(14, 1);
  lcd.print(MaxRFL);

  pinMode(PINOUT, OUTPUT);
  pinMode(buttonPin1, INPUT);
  pinMode(buttonPin2, INPUT);
  pinMode(buttonPin3, INPUT);
  pinMode(Relais1, OUTPUT);
}
void loop() {
  delay(500);
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
  // read humidity
  float h = dht.readHumidity();
  //read temperature in Fahrenheit
  float f = dht.readTemperature();
  if (isnan(h) || isnan(f)) {
    Serial.println(F("Failed to read from DHT sensor!"));
    lcd.setCursor(0, 0);                            //      Cursor setzen auf Position 0,0
    lcd.print("ERROR SENSOR 1!");                   //      Sensor Fehler 1 ausgeben
  }
  lcd.setCursor(0, 0);
  lcd.print(f);
  lcd.setCursor(0, 1);
  lcd.print(h);

  if (dht.readHumidity() > (MaxRFL) || (dht.readTemperature() > (MaxTemp))) {
    digitalWrite(Relais1, HIGH);
    delay(500);
  }
  if (dht.readHumidity() < (MaxRFL) && (dht.readTemperature() < (MaxTemp))) {
    digitalWrite(Relais1, LOW);
    delay(500);
  }
  if (dht.readHumidity() < (MaxRFL) && (dht.readTemperature() > (MaxTemp))) {
    digitalWrite(Relais1, HIGH);
    delay(500);
  }
  if (dht.readHumidity() > (MaxRFL) && (dht.readTemperature() < (MaxTemp))) {
    digitalWrite(Relais1, HIGH);
    delay(500);
  }
  button1State = digitalRead(buttonPin1);
  if (button1State == HIGH) {
    lcd.setCursor(14, 0);
    lcd.print(MaxTemp ++);
    delay(500);
  }
  button2State = digitalRead(buttonPin2);
  if (button2State == HIGH) {
    lcd.setCursor(14, 0);
    lcd.print(MaxTemp --);
    delay(500);
  }
  button3State = digitalRead(buttonPin3);
  if (button3State == HIGH) {
    lcd.setCursor(14, 1);
    lcd.print(MaxRFL++);
    delay(500);
  }
  button4State = digitalRead(buttonPin4);
  if (button4State == HIGH) {
    lcd.setCursor(14, 1);
    lcd.print(MaxRFL--);
    delay(500);
  }
}

Morgen sehe ich mir dann mal die Hysterese an. Mal schauen, was dabei rauskommtBig Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.02.2020, 14:31
Beitrag #11
RE: Lüftersteuerung ala Arduino
Wenn Du meine Beiträge weitgehend ignorierst, brauche ich Dir ja nicht mehr zu antworten.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.02.2020, 15:01
Beitrag #12
RE: Lüftersteuerung ala Arduino
(19.02.2020 14:31)Tommy56 schrieb:  Wenn Du meine Beiträge weitgehend ignorierst, brauche ich Dir ja nicht mehr zu antworten.

Gruß Tommy


Ignorieren ist relativ. Ich hab halt einfach weitergemacht, da es ja funktioniert...
Das mit dem int und else hab ich ja schon geändert... das war mir klarIdea


Aber was du mit:
"Warum liest Du zum if neu? Du hast doch den Wert in f bzw. h."
meintest, ist mir nicht wirklich klar...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.02.2020, 15:06
Beitrag #13
RE: Lüftersteuerung ala Arduino
Du hast doch
Code:
float f = dht.readTemperature();
Damit steht in f die Temperatur dasselbe mit h.

Ein paar Zeilen später liest Du die Temperatur erneut aus:
Code:
if (dht.readHumidity() > (MaxRFL) || (dht.readTemperature() > (MaxTemp)))
Du könntest effektiver schreiben:
Code:
if (h> MaxRFL || f > MaxTemp)

Wobei Du für f unh auch sinnvollere Namen wählen könntest.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.02.2020, 15:13
Beitrag #14
RE: Lüftersteuerung ala Arduino
Danke, jetzt ist mir das schon viel verständlicher.

Morgen mach ich dann weiter. Für heute raucht mein Kopf schon Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Wert von einem Arduino zu einem zweiten Arduino senden Thorsten_S 9 2.323 14.10.2019 14:48
Letzter Beitrag: Thorsten_S
  Lüftersteuerung mit dem gewissen Extra (Haken?) ank0m 4 800 06.09.2019 16:43
Letzter Beitrag: ank0m
  Firmata (Daten senden an den Arduino und empfangen vom Arduino) comfan 6 5.288 29.04.2017 14:29
Letzter Beitrag: hotsystems
  Arduino Ethernet mit USB 2 Serial Converter/Welche Einstellungen im Arduino-Sketch lociluke 1 4.494 05.05.2015 13:40
Letzter Beitrag: Bitklopfer
  Arduino Mega-Projekt mit EEPROM auf Arduino Due portieren Foto-Ralf 17 11.887 16.03.2015 12:06
Letzter Beitrag: Foto-Ralf

Gehe zu:


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