Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define LCDREVERSED // dreht die Anzeige des LCD um 180 Grad
- #include <AskSinPP.h>
- #include <displays/Lcd6749.h>
- #define LCD_CS_1 4
- #define LCD_CS_2 5
- #define LCD_WR 7
- #define LCD_DATA 3
- #include <OneWire.h>
- #include <DallasTemperature.h>
- using namespace as;
- #define BAUD_RATE 9600
- #define ONE_WIRE_BUS 6
- OneWire oneWire(ONE_WIRE_BUS);
- DallasTemperature sensor(&oneWire);
- float temperatur = 0.0;
- LCD6749<LCD_CS_1, LCD_WR, LCD_DATA> lcd1;
- LCD6749<LCD_CS_2, LCD_WR, LCD_DATA> lcd2;
- enum _dots { NO_DOT, SINGLE_DOT, DOUBLE_DOT, BOTH_DOTS };
- #define PauseMillis 1000 // Dauer delay
- #define LED_PIN 5 // Pin der Hintergrundbeleuchtung
- #define Helligkeit 50 // Helligkeit der Hintergrundbeleuchtung
- #define Alarm_PIN 8 // Ausgang Summer
- #define Alarm_Abstand 250
- #define Warnschwelle_1 25
- bool Alarm_Zustand = false;
- void setup() {
- sensor.begin();
- Serial.begin(BAUD_RATE);
- Serial.print("Anzahl Sensoren: ");
- Serial.println(sensor.getDeviceCount());
- pinMode (LED_PIN, OUTPUT);
- pinMode (Alarm_PIN, OUTPUT);
- }
- void loop() {
- analogWrite (LED_PIN, Helligkeit);
- sensor.requestTemperatures();
- temperatur = sensor.getTempCByIndex(0);
- Serial.println(temperatur);
- lcd1.init();
- lcd2.init();
- lcd1.printWithUnit(temperatur, SINGLE_DOT, 'C');
- lcd2.printWithUnit(temperatur, SINGLE_DOT, 'C');
- if ((temperatur > Warnschwelle_1) && (Alarm_Zustand == false)) {
- for (uint8_t i = 0; i < 4; i++) {
- digitalWrite (Alarm_PIN, HIGH);
- digitalWrite (LED_PIN, HIGH);
- delay (Alarm_Abstand);
- digitalWrite (Alarm_PIN, LOW);
- digitalWrite (LED_PIN, LOW);
- delay (Alarm_Abstand);
- }
- Alarm_Zustand = true;
- } else {
- delay(PauseMillis);
- }
- if (temperatur <= Warnschwelle_1) {
- Alarm_Zustand = false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment