jp112

frsa

Mar 26th, 2020
1,039
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #define LCDREVERSED   // dreht die Anzeige des LCD um 180 Grad
  2. #include <AskSinPP.h>
  3. #include <displays/Lcd6749.h>
  4. #define LCD_CS_1   4
  5. #define LCD_CS_2   5
  6. #define LCD_WR     7
  7. #define LCD_DATA   3
  8.  
  9. #include <OneWire.h>
  10. #include <DallasTemperature.h>
  11.  
  12. using namespace as;
  13.  
  14. #define BAUD_RATE       9600
  15. #define ONE_WIRE_BUS    6
  16. OneWire oneWire(ONE_WIRE_BUS);
  17. DallasTemperature sensor(&oneWire);
  18. float temperatur = 0.0;
  19.  
  20. LCD6749<LCD_CS_1, LCD_WR, LCD_DATA> lcd1;
  21. LCD6749<LCD_CS_2, LCD_WR, LCD_DATA> lcd2;
  22.  
  23. enum _dots { NO_DOT, SINGLE_DOT, DOUBLE_DOT, BOTH_DOTS };
  24.  
  25. #define PauseMillis     1000 // Dauer delay
  26. #define LED_PIN         5    // Pin der Hintergrundbeleuchtung
  27. #define Helligkeit      50  // Helligkeit der Hintergrundbeleuchtung
  28. #define Alarm_PIN       8   // Ausgang Summer
  29. #define Alarm_Abstand   250
  30. #define Warnschwelle_1  25
  31.  
  32. bool Alarm_Zustand    = false;
  33.  
  34. void setup() {
  35.   sensor.begin();
  36.   Serial.begin(BAUD_RATE);
  37.   Serial.print("Anzahl Sensoren: ");
  38.   Serial.println(sensor.getDeviceCount());
  39.   pinMode (LED_PIN, OUTPUT);
  40.   pinMode (Alarm_PIN, OUTPUT);
  41. }
  42.  
  43. void loop() {
  44.   analogWrite (LED_PIN, Helligkeit);
  45.   sensor.requestTemperatures();
  46.   temperatur = sensor.getTempCByIndex(0);
  47.   Serial.println(temperatur);
  48.  
  49.   lcd1.init();
  50.   lcd2.init();
  51.   lcd1.printWithUnit(temperatur, SINGLE_DOT, 'C');
  52.   lcd2.printWithUnit(temperatur, SINGLE_DOT, 'C');
  53.  
  54.   if ((temperatur > Warnschwelle_1) && (Alarm_Zustand == false)) {
  55.     for (uint8_t i = 0; i < 4; i++) {
  56.       digitalWrite (Alarm_PIN, HIGH);
  57.       digitalWrite (LED_PIN, HIGH);
  58.       delay (Alarm_Abstand);
  59.       digitalWrite (Alarm_PIN, LOW);
  60.       digitalWrite (LED_PIN, LOW);
  61.       delay (Alarm_Abstand);
  62.     }
  63.     Alarm_Zustand = true;
  64.   } else {
  65.     delay(PauseMillis);
  66.   }
  67.  
  68.   if (temperatur <= Warnschwelle_1) {
  69.     Alarm_Zustand = false;
  70.   }
  71.  
  72. }
Advertisement
Add Comment
Please, Sign In to add comment