Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <LiquidCrystal.h>
- #include <OneWire.h>
- //#include <Wire.h>
- #include <DallasTemperature.h>
- #define ONE_WIRE_BUS 13
- OneWire oneWire(ONE_WIRE_BUS);
- DallasTemperature sensors(&oneWire);
- DeviceAddress intemp = {
- 0x28, 0xFF, 0x26, 0xA7, 0x35, 0x16, 0x4, 0xCF };
- //0x28, 0xFF, 0xCA, 0xE2, 0x35, 0x16, 0x3, 0xD6};
- DeviceAddress backtemp = {
- 0x28, 0xFF, 0xEE, 0xA3, 0x35, 0x16, 0x4, 0xDD };
- //0x28, 0xFF, 0x80, 0x5C, 0x35, 0x16, 0x3, 0x6};
- unsigned long interval1 = 2000;
- unsigned long interval2 = 10000; // 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;
- unsigned long prevTimeTemp;
- unsigned long prevTimeTemp2;
- 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 = 3;
- 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()
- {
- lcd.begin(16, 2);
- pinMode(kollaPin, OUTPUT);
- pinMode(siniPin, OUTPUT);
- pinMode(buttonPin, INPUT);
- pinMode(button2Pin,INPUT);
- Serial.begin(9600);
- 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);
- }
- void loop() {
- unsigned long curTime = millis();
- if (curTime - prevTimeTemp > interval1*2) {
- sensors.requestTemperatures();
- Serial.print("In temp: ");
- printlnTemperature(intemp);
- prevTimeTemp = curTime;
- }
- // Serial.print("\n\r");
- Serial.println(tempCin);
- delay(1);
- lcd.setCursor(0, 0);
- lcd.print("I");
- lcd.setCursor(1, 0);
- lcd.print(in);
- lcd.setCursor(5, 0);
- lcd.print("B");
- in = tempCin;
- if (curTime - prevTimeTemp2 > interval1*2) {
- sensors.requestTemperatures();
- Serial.print("Back temp: ");
- printlnTemperature(backtemp);
- prevTimeTemp2 = curTime;
- }
- //Serial.print("\n\r");
- Serial.println(tempCback);
- delay(1);
- Serial.println(in);
- lcd.setCursor(5, 0);
- lcd.print("B");
- lcd.setCursor(6, 0);
- //lcd.print(tempCback);
- lcd.print(back);
- 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 < back) {
- lcd.print("CO");
- }
- else if (setk/10 + SET > 1+ back){
- lcd.print("WO");
- }
- else if ((setk/10 + SET - back) <1 > -1){
- lcd.print("OK");
- }
- // lcd.setCursor(0, 1);
- // if(prevTime < interval2 ) {lcd.print(interval2/1000 - millis()/1000);
- //}
- 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 < back) {
- 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 > back) {
- //if (val*0.065+5 - tempC <= 1 && val*0.065+5 - tempC > 0){
- if (curTime - prevTime < interval1) {
- digitalWrite(5, LOW);
- digitalWrite(4, HIGH);
- }
- 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;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement