#include #include #include LiquidCrystal lcd(49, 48, 39,40,41,42,43,44,45,46,47); int blueBLED = 27; // Temperatur fŸr blaue LEDs ok int blueRLED = 28; // Temperatur fŸr blaue LEDs zu hoch int greenBLED = 29; // Temperatur fŸr grŸne LEDs ok int greenRLED = 30; // Temperatur fŸr grŸne LEDs zu hoch // Datenkabel der Sensoren auf Pin 9 vom Mega #define ONE_WIRE_BUS 50 // ONEwire bus _ alle Sensoren - ein Kabel OneWire oneWire(ONE_WIRE_BUS); // Signal an Dallas Ÿbergeben DallasTemperature sensors(&oneWire); // Adressen der Sensoren DeviceAddress greenThermometer = { 0x28, 0xCF, 0x95, 0xCD, 0x04, 0x00, 0x00, 0xFA}; DeviceAddress blueThermometer = { 0x28, 0xF9, 0x4E, 0xCB, 0x04, 0x00, 0x00, 0x82 }; int blue = 31; // Output fŸr Relais1 - IN1 int green = 32; // Output fŸr Relais2 - IN2 float bluetemp = 0; float greentemp = 0; void setup(void) { // Start Sensoren sensors.begin(); // 10bit Auflšsung sensors.setResolution(blueThermometer, 10); sensors.setResolution(greenThermometer, 10); // PINs von LEDs fŸr †berwachung Temperatur als Ausgang setzen pinMode(blueBLED, OUTPUT); pinMode(blueRLED, OUTPUT); pinMode(greenBLED, OUTPUT); pinMode(greenRLED, OUTPUT); // alle LEDs einschalten - Funktionstest digitalWrite(blueBLED, HIGH); digitalWrite(blueRLED, HIGH); digitalWrite(greenBLED, HIGH); digitalWrite(greenRLED, HIGH); delay(2000); //Display Hintergrundbeleuchtung ein pinMode(38, OUTPUT); digitalWrite(38,HIGH); lcd.begin(20,4); lcd.clear(); lcd.setCursor(3,0); lcd.print("Welcome to my"); delay(2000); lcd.setCursor(2,1); lcd.print("infintiy mirror"); lcd.setCursor(3,2); lcd.print("microprocessor"); lcd.setCursor(5,3); lcd.print("controlled"); delay(8000); lcd.clear(); lcd.setCursor(1,0); lcd.print("designed and built"); lcd.setCursor(8,1); lcd.print("by"); lcd.setCursor(5,2); lcd.print("MichelFibs"); delay(2000); lcd.setCursor(4,3); lcd.print("! have fun !"); delay(8000); lcd.clear(); // PINS fŸr Relais-Schalten als Ausgang setzen pinMode(blue, OUTPUT); pinMode(green, OUTPUT); } void printTemperature(DeviceAddress deviceAddress) { float tempC = sensors.getTempC(deviceAddress); float t1tempC = sensors.getTempC(blueThermometer); float t2tempC = sensors.getTempC(greenThermometer); if (tempC == -127.00) { lcd.print("000"); } else { // lcd.print(tempC); // lcd.print("/"); bluetemp = (t1tempC); greentemp = (t2tempC); lcd.print(tempC); } } void loop(void) { delay(2000); sensors.requestTemperatures(); // Ausgabe Display lcd.setCursor(0,0); lcd.print("LED blue: "); printTemperature(blueThermometer); lcd.print(" 'C"); lcd.setCursor(0,1); lcd.print("LED green: "); printTemperature(greenThermometer); lcd.print(" 'C"); lcd.setCursor(0,2); lcd.print("Relais 1:"); lcd.setCursor(0,3); lcd.print("Relais 2:"); // Schalten der Relais bei †bertemperatur if (bluetemp >= 10 && bluetemp <= 30.9) { digitalWrite(blue, HIGH); digitalWrite(blueRLED, LOW); digitalWrite(blueBLED, HIGH); lcd.setCursor(11,2); lcd.print("on "); } if (bluetemp >= 31) { digitalWrite(blue, LOW); digitalWrite(blueRLED, HIGH); digitalWrite(blueBLED, LOW); lcd.setCursor(11,2); lcd.print("off"); } if (greentemp >= 10 && greentemp <= 30.9) { digitalWrite(green, HIGH); digitalWrite(greenRLED, LOW); digitalWrite(greenBLED, HIGH); lcd.setCursor(11,3); lcd.print("on "); } if (greentemp >= 31) { digitalWrite(green, LOW); digitalWrite(greenRLED, HIGH); digitalWrite(greenBLED, LOW); lcd.setCursor(11,3); lcd.print("off"); } }