Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "DHT.h"
- #include <LiquidCrystal_I2C.h>
- #define DHTPIN 11
- #define DHTTYPE DHT22
- #define potentiometer A0
- #define ledr 2
- #define ledg 3
- #define ledb 4
- int led[] = {ledr, ledg, ledb};
- int maxwertanpassung = 0;
- float temperatur = 0.0;
- float feuchtigkeit = 0.0;
- float maxwert = 24.0;
- float minwert = 20.0;
- DHT dht(DHTPIN, DHTTYPE);
- LiquidCrystal_I2C lcd(0x27,16,2);
- void Displayausgabe (String, String);
- void ledeinstellen (float, float);
- float potentiometer_auslesen ();
- void setup() {
- dht.begin(); //Sensor übertragung beginnen
- lcd.init(); // LCD initialisieren
- lcd.backlight(); //Hintergrund beleuchtung einschalten
- for (int i = 0; i <= 2; i++){
- pinMode(led[i], OUTPUT);
- }
- }
- void loop() {
- DHT22lesen(); //Funktion zum auslesen des Sensors aufrufen
- Displayausgabe ("Celsius: " + String(temperatur) + "C", "Humidity: " + String (feuchtigkeit) + "%"); //Der Funktion zum anzeigen von Text auf dem LCD Bildschirm, Parameter übergeben
- ledeinstellen (minwert, (maxwert + potentiometer_auslesen ())); //Der Funktion Parameter übergeben um die LEDs einzustellen.
- delay (2000); //Zwei Sekunden verzögerung
- }
- void DHT22lesen () {
- temperatur = dht.readTemperature(); //Temperaturwert in Variable schrieben
- feuchtigkeit = dht.readHumidity(); //feuchtigkeitswert in Variable schreiben
- }
- void Displayausgabe (String z1, String z2){
- lcd.setCursor(0,0); //Couser auf Position 0 in Line 0 setzten
- lcd.print(z1); // Anzeigetext für die erste Zeile festlegen
- lcd.setCursor(0,1); //Couser auf Position 0 in Line 0 setzten
- lcd.print(z2); // Anzeigetext für die erste Zeile festlegen
- }
- void resetled () {
- // Arry durchgehen und alle LEDs auschalten
- for (int i = 0; i <=2 ; i++){
- digitalWrite(led[i], LOW);
- }
- }
- void ledeinstellen(float minw, float maxw) {
- if (temperatur < minw){ //mindestwert: blaue LED
- resetled();
- digitalWrite(led[2], HIGH);
- }
- else if (temperatur > maxw){ //maxwert: rote LED
- resetled();
- digitalWrite(led[0], HIGH);
- }
- else { //normalwert: grüne LED
- resetled();
- digitalWrite(led[1], HIGH);
- }
- }
- float potentiometer_auslesen (){ //Potentiometer auslesen
- int tmp = 0;
- int ausgabe = 0;
- if (analogRead(potentiometer) >= 512){
- tmp = map((analogRead(potentiometer)),512,1023,0,10); //Werte von 512 bis 1023 in sektionen von 0 bis 10 einteilen und "umrechnen"
- }
- else {
- tmp = map((analogRead(potentiometer)),0,511,-10,0); //Werte von 0 bis 511 in sektionen von -10 bis 0 einteilen und "umrechnen"
- }
- if (tmp != maxwertanpassung){ //Überprüfung ob der Wert verändert wurde
- maxwertanpassung = tmp; //Überschreiben der Prüfvariable
- if ((maxwert + tmp) < minwert) { //Überprüfung ob der neue Maxwert unter dem Minwert ist
- ausgabe = (minwert - maxwert); //Wert darf den Minwert nicht unterschreiten. Somit wird maxwert auf minwert gebracht
- }
- else {ausgabe = tmp;} //Wert anpassung
- Displayausgabe ("Maxwert: " + String(maxwert + ausgabe) + "C", "Minwert: " + String (minwert) + "C"); //Anzeige auf dem LCD Display des neuen Max und Min wertes
- delay(5000); //Delay damit man die Werte auf dem Display sieht
- return ausgabe; //Rückgabe des Faktors um den der Maxwert angepasst werden muss
- }
- }
Add Comment
Please, Sign In to add comment