Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [code]
- #include <LiquidCrystal.h>
- #include <LiquidCrystal_I2C.h>
- #include <OneWire.h>
- #include <Wire.h>
- #include <DallasTemperature.h>
- #define ONE_WIRE_BUS 3
- OneWire oneWire(ONE_WIRE_BUS);
- DallasTemperature sensors(&oneWire);
- DeviceAddress intemp = {
- 0x28, 0xFF, 0x26, 0xA7, 0x35, 0x16, 0x4, 0xCF };
- DeviceAddress backtemp = {
- 0x28, 0xFF, 0xEE, 0xA3, 0x35, 0x16, 0x4, 0xDD };
- //0x28, 0xFF, 0x80, 0x5C, 0x35, 0x16, 0x3, 0x6};
- LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
- unsigned long interval1 = 2000;
- unsigned long interval2 = 6000; // tesversioon
- //unsigned long interval2 = 600000; // tuleb arvestada, et interval2 tegelikuks
- unsigned long prevTime = 0; //pikkuseks jaab interval2 - interval1
- unsigned long curTime;
- unsigned long prevTimeButton;
- unsigned long prevTimeButton2;
- const int kollaPin = 4;
- const int siniPin = 5;
- int kollaState = LOW;
- int siniState = LOW;
- int val = 0;
- //int INtempPin = A0;
- float tempCin;
- float tempCback;
- float in;
- float back;
- float SET = 25.0;
- float setk = 0.0;
- const int buttonPin = 2;
- const int button2Pin = 6;
- int buttonPushCounter =0;
- int button2PushCounter =0;
- int buttonState =0;
- int button2State =0;
- int lastButtonState =0;
- int lastButton2State =0;
- // BS E D4 D5 D6 D7
- //LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
- void setup()
- {
- Serial.begin(9600);
- lcd.begin(16, 2);
- for(int i = 0; i< 5; i++)
- {
- lcd.backlight();
- delay(50);
- lcd.noBacklight();
- delay(50);
- }
- lcd.backlight();
- pinMode(kollaPin, OUTPUT);
- pinMode(siniPin, OUTPUT);
- pinMode(buttonPin, INPUT);
- pinMode(button2Pin,INPUT);
- sensors.begin();
- sensors.setResolution(intemp, 12);
- sensors.setResolution(backtemp, 12);
- }
- void printlnTemperature(DeviceAddress deviceAddress) {
- tempCin = sensors.getTempC(deviceAddress);
- // Serial.println(tempCin);
- tempCback = sensors.getTempC(deviceAddress);
- //Serial.println(tempCback);
- }
- void loop() {
- unsigned long curTime = millis();
- sensors.requestTemperatures();
- Serial.print("In temp: ");
- printlnTemperature(intemp);
- // Serial.print("\n\r");
- Serial.println(tempCin);
- delay(1);
- lcd.setCursor(0, 0);
- lcd.print("I");
- lcd.setCursor(1, 0);
- lcd.print(tempCin);
- lcd.setCursor(5, 0);
- lcd.print("B");
- in = tempCin;
- sensors.requestTemperatures();
- Serial.print("Back temp: ");
- printlnTemperature(backtemp);
- //Serial.print("\n\r");
- Serial.println(tempCback);
- delay(1);
- lcd.setCursor(5, 0);
- lcd.print("B");
- lcd.setCursor(6, 0);
- lcd.print(tempCback);
- lcd.setCursor(10, 0);
- lcd.print((char)223);
- back =tempCback;
- buttonState = digitalRead(buttonPin);
- if (buttonState != lastButtonState) {
- if (buttonState == HIGH) {
- setk++;
- }
- }
- else if (buttonState == lastButtonState && curTime - prevTimeButton > interval1) {
- if (buttonState == HIGH) {
- SET++;
- }
- }
- if (buttonState == LOW) {
- prevTimeButton = curTime;
- }
- button2State = digitalRead(button2Pin);
- if (button2State != lastButton2State) {
- if (button2State == HIGH) {
- setk--;
- }
- }
- else if (button2State == lastButton2State && curTime - prevTimeButton2 > interval1) {
- if (button2State == HIGH) {
- SET--;
- }
- }
- if (button2State == LOW) {
- prevTimeButton2 = curTime;
- }
- lastButtonState = buttonState;
- lastButton2State = button2State;
- lcd.setCursor(11, 0);
- lcd.print("S");
- lcd.setCursor(12, 0);
- lcd.print(setk/10 + SET);
- lcd.setCursor(14, 1);
- if (setk/10 + SET +1 < tempCback) {
- lcd.print("CO");
- }
- else if (setk/10 + SET > 1+ tempCback){
- lcd.print("WO");
- }
- else if ((setk/10 + SET - tempCback) <1 > -1){
- lcd.print("OK");
- }
- lcd.setCursor(0, 1);
- lcd.print("ERTEC");
- lcd.setCursor(6, 1);
- lcd.print(700*4.19*(in-back)/3600);
- lcd.setCursor(10, 1);
- lcd.print(" KW ");
- //could down
- if (setk/10 + SET + 1 < tempCback) {
- if (curTime - prevTime < interval1) {
- digitalWrite(4, LOW);
- digitalWrite(5, HIGH);
- }
- if (curTime - prevTime >= interval1) {
- digitalWrite(5, LOW);
- }
- if (curTime - prevTime > interval2) { //peale teist intervali voib ka led
- // digitalWrite(4, HIGH); // korgeks panna, kui progega edasi minna
- prevTime = curTime;
- }
- }
- //warm up
- if (setk/10 + SET - 1 > tempCback) {
- //if (val*0.065+5 - tempC <= 1 && val*0.065+5 - tempC > 0){
- if (curTime - prevTime < interval1) {
- digitalWrite(5, LOW);
- digitalWrite(4, HIGH);
- delay(10);
- }
- if (curTime - prevTime >= interval1) {
- digitalWrite(4, LOW);
- }
- if (curTime - prevTime > interval2) { //peale teist intervali voib ka led
- //digitalWrite(6, HIGH); // korgeks panna, kui progega edasi minna
- prevTime = curTime;
- }
- }
- }
- [/code]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement