Advertisement
henrihenri

ertec mini lcd I2C nupud 2digi long

Sep 6th, 2016
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.86 KB | None | 0 0
  1. [code]
  2. #include <LiquidCrystal.h>
  3. #include <LiquidCrystal_I2C.h>
  4. #include <OneWire.h>
  5. #include <Wire.h>
  6. #include <DallasTemperature.h>
  7. #define ONE_WIRE_BUS 3
  8. OneWire oneWire(ONE_WIRE_BUS);
  9. DallasTemperature sensors(&oneWire);
  10. DeviceAddress intemp = {
  11.    0x28, 0xFF, 0x26, 0xA7, 0x35, 0x16, 0x4, 0xCF };
  12. DeviceAddress backtemp = {
  13.    0x28, 0xFF, 0xEE, 0xA3, 0x35, 0x16, 0x4, 0xDD };
  14.   //0x28, 0xFF, 0x80, 0x5C, 0x35, 0x16, 0x3, 0x6};
  15.  
  16.   LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
  17.  
  18. unsigned long interval1 = 2000;
  19. unsigned long interval2 = 6000; // tesversioon
  20. //unsigned long interval2 = 600000; // tuleb arvestada, et interval2 tegelikuks
  21. unsigned long prevTime = 0; //pikkuseks jaab interval2 - interval1
  22. unsigned long curTime;
  23. unsigned long prevTimeButton;
  24. unsigned long prevTimeButton2;
  25. const int kollaPin = 4;
  26. const int siniPin = 5;
  27. int kollaState = LOW;
  28. int siniState = LOW;
  29. int val = 0;
  30.  
  31. //int INtempPin = A0;
  32. float tempCin;
  33. float tempCback;
  34. float in;
  35. float back;
  36. float SET = 25.0;
  37. float setk = 0.0;
  38. const int buttonPin = 2;
  39. const int button2Pin = 6;
  40. int buttonPushCounter =0;
  41. int button2PushCounter =0;
  42. int buttonState =0;
  43. int button2State =0;
  44. int lastButtonState =0;
  45. int lastButton2State =0;
  46.  
  47. //                BS  E  D4 D5  D6 D7
  48. //LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
  49.  
  50. void setup()
  51. {
  52.    Serial.begin(9600);
  53.   lcd.begin(16, 2);
  54.    for(int i = 0; i< 5; i++)
  55.   {
  56.     lcd.backlight();
  57.     delay(50);
  58.     lcd.noBacklight();
  59.     delay(50);
  60.   }
  61.   lcd.backlight();
  62.  
  63.     pinMode(kollaPin, OUTPUT);
  64.     pinMode(siniPin, OUTPUT);
  65.  
  66.     pinMode(buttonPin, INPUT);
  67.     pinMode(button2Pin,INPUT);
  68.    
  69.       sensors.begin();
  70.   sensors.setResolution(intemp, 12);
  71.   sensors.setResolution(backtemp, 12);  
  72.     }
  73. void printlnTemperature(DeviceAddress deviceAddress) {
  74.   tempCin = sensors.getTempC(deviceAddress);
  75.  // Serial.println(tempCin);
  76.  
  77.   tempCback = sensors.getTempC(deviceAddress);
  78.   //Serial.println(tempCback);
  79. }
  80.  
  81. void loop()  {
  82. unsigned long curTime = millis();
  83.   sensors.requestTemperatures();
  84.   Serial.print("In temp: ");
  85.   printlnTemperature(intemp);
  86.  // Serial.print("\n\r");
  87.   Serial.println(tempCin);
  88.   delay(1);
  89.  
  90.  lcd.setCursor(0, 0);
  91.     lcd.print("I");
  92.   lcd.setCursor(1, 0);
  93.   lcd.print(tempCin);
  94.    lcd.setCursor(5, 0);
  95.   lcd.print("B");
  96.   in = tempCin;
  97.   sensors.requestTemperatures();
  98.   Serial.print("Back temp: ");
  99.   printlnTemperature(backtemp);
  100.   //Serial.print("\n\r");
  101.   Serial.println(tempCback);
  102.   delay(1);
  103.  
  104.  
  105.  
  106.  lcd.setCursor(5, 0);
  107.   lcd.print("B");
  108.   lcd.setCursor(6, 0);
  109.   lcd.print(tempCback);
  110.   lcd.setCursor(10, 0);
  111.   lcd.print((char)223);
  112. back =tempCback;  
  113.  
  114.  buttonState = digitalRead(buttonPin);
  115.   if (buttonState != lastButtonState) {
  116.     if (buttonState == HIGH) {
  117.       setk++;
  118.     }
  119.   }
  120.   else if (buttonState == lastButtonState && curTime - prevTimeButton > interval1) {
  121.     if (buttonState == HIGH) {
  122.       SET++;
  123.     }
  124.   }
  125.   if (buttonState == LOW) {
  126.     prevTimeButton = curTime;
  127.   }
  128.  
  129.   button2State = digitalRead(button2Pin);
  130.   if (button2State != lastButton2State) {
  131.     if (button2State == HIGH) {
  132.       setk--;
  133.     }
  134.   }
  135.   else if (button2State == lastButton2State && curTime - prevTimeButton2 > interval1) {
  136.     if (button2State == HIGH) {
  137.       SET--;
  138.     }
  139.   }
  140.   if (button2State == LOW) {
  141.     prevTimeButton2 = curTime;
  142.   }
  143.   lastButtonState = buttonState;
  144.   lastButton2State = button2State;
  145.  
  146.   lcd.setCursor(11, 0);
  147.   lcd.print("S");
  148.   lcd.setCursor(12, 0);
  149.   lcd.print(setk/10 + SET);
  150.   lcd.setCursor(14, 1);
  151.  if (setk/10 + SET +1 < tempCback) {
  152.  lcd.print("CO");
  153.  }
  154.  else if (setk/10 + SET > 1+ tempCback){
  155.   lcd.print("WO");
  156.  }
  157.  else if ((setk/10 + SET - tempCback) <1 > -1){
  158.   lcd.print("OK");
  159.    }
  160.  
  161.   lcd.setCursor(0, 1);
  162.   lcd.print("ERTEC");
  163.   lcd.setCursor(6, 1);
  164.   lcd.print(700*4.19*(in-back)/3600);
  165.   lcd.setCursor(10, 1);
  166.  lcd.print(" KW ");
  167.  
  168.  
  169.  //could down
  170.   if (setk/10 + SET + 1 < tempCback) {
  171.  
  172.     if (curTime - prevTime < interval1) {
  173.       digitalWrite(4, LOW);
  174.       digitalWrite(5, HIGH);
  175.     }
  176.     if (curTime - prevTime >= interval1) {
  177.       digitalWrite(5, LOW);
  178.     }
  179.     if (curTime - prevTime > interval2) { //peale teist intervali voib ka led
  180.       // digitalWrite(4, HIGH); // korgeks panna, kui progega edasi minna
  181.       prevTime = curTime;
  182.     }
  183.   }
  184.  
  185.   //warm up
  186.   if (setk/10 + SET - 1 > tempCback) {
  187.     //if (val*0.065+5 - tempC <= 1 && val*0.065+5 - tempC > 0){
  188.  
  189.     if (curTime - prevTime < interval1) {
  190.       digitalWrite(5, LOW);
  191.       digitalWrite(4, HIGH);
  192.       delay(10);
  193.     }
  194.     if (curTime - prevTime >= interval1) {
  195.       digitalWrite(4, LOW);
  196.     }
  197.     if (curTime - prevTime > interval2) { //peale teist intervali voib ka led
  198.       //digitalWrite(6, HIGH); // korgeks panna, kui progega edasi minna
  199.       prevTime = curTime;
  200.  
  201.     }
  202.   }
  203. }
  204. [/code]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement