Avatar von T100
  • T100

1 Beitrag seit 05.02.2018

Sollwert um +1 mit Taster erhöhen

Hallo ich hab ein großes Problem!
Bin relativ neu im Programmieren. Hab mir einen Code für eine Heizungssteuerung geschrieben, der auch funktioniert. Nun möchte ich mit Tastern die Minimum- bzw. Maximumtemperatur (tempMin bzw. tempMax) mittels Taster verändern – bis zum Loop bin ich gekommen - aber ich bring das einfach nicht hin. Kann mir wer von euch dabei helfen??? Zweite Frage: Brauche ich dazu wirklich 4 Taster? Wäre euch für Hilfe dankbar. Anbei der Code:
[code]
/* LCD 20x4 I2c
* DHT22 auf Pin 10
* Heizung auf Pin 9
* Taster 1 auf Pin 4 //Sollwerttaster für tempMin +1
* Taster 2 auf Pin 5 //Sollwerttaster für tempMin -1
* Taster 3 auf Pin 6 //Sollwerttaster für tempMax +1
* Taster 4 auf Pin 7 //Sollwerttaster für tempMax -1
* LCD-I2c-Anschluss: SCL - A5; SDA -A4
*/
#include <DHT.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4); //Display 20 Zeichen in 4 Zeilen
#define DHTPIN 8 //Sensor auf Pin 8 angeschlossen
#define DHTTYPE DHT22 //DHT22 Sensor ausgewählt
#define HEIZUNG 9 //Heizungsrelais auf Pin 9
#define Taster1 6
#define Taster2 7
DHT dht(DHTPIN, DHTTYPE); //Sensor heißt DHT"
int HEIZUNGStatus = LOW; //Heizungsstatus "AUS"
int tempMin = 20; //Einstellung minimale Temperatur
int tempMax = 23; //Einstellung maximale Temperatur

void setup() {
Serial.begin(9600); //Serielle Verbindung starten
dht.begin(); //DHT22 Sensor starten
lcd.begin(); //LCD-Modul starten
pinMode(HEIZUNG, OUTPUT); //setzt Pin 9 auf OUTPUT
pinMode(Taster1, INPUT);
pinMode(Taster2, INPUT);
pinMode(Taster3, INPUT);
pinMode(Taster4, INPUT);

digitalWrite(Taster1, LOW);
digitalWrite(Taster2, LOW);
digitalWrite(Taster3, LOW);
digitalWrite(Taster4, LOW);
digitalWrite(HEIZUNG, LOW); //HEIZUNG ist LOW
}
void loop() {

int t = dht.readTemperature(); //Temperatur auslesen und unter "t" speichern

/*Steuerung der Temperatur*/
if(t> tempMin && t<tempMax){ //wenn Temperatur >tempMin u. <tMax
digitalWrite(HEIZUNG, HIGH); //HIGH = Heizung ist "EIN"
lcd.setCursor(0,2);
lcd.print("H. ON");
}
else
{ //sonst
digitalWrite(HEIZUNG, LOW); //ist LOW = Heizung ist "AUS"
lcd.setCursor(0,2);
lcd.print("H. OFF");
}
}

[code]

LG Erich

Bewerten
- +
Anzeige