Advertisement
henrihenri

ertec mini lcd nupud digi anal

Aug 24th, 2016
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.09 KB | None | 0 0
  1. #include <LiquidCrystal.h>
  2. #include <OneWire.h>
  3. #include <DallasTemperature.h>
  4. #define ONE_WIRE_BUS 5
  5. OneWire oneWire(ONE_WIRE_BUS);
  6. DallasTemperature sensors(&oneWire);
  7. DeviceAddress thermometer = {
  8.   // 0x28, 0xFF, 0x26, 0xA7, 0x35, 0x16, 0x4, 0xCF };
  9.   0x28, 0xFF, 0xCA, 0xE2, 0x35, 0x16, 0x3, 0xD6};
  10.  
  11. unsigned long interval1 = 2000;
  12. unsigned long interval2 = 6000; // tesversioon
  13. //unsigned long interval2 = 600000; // tuleb arvestada, et interval2 tegelikuks
  14. unsigned long prevTime = 0; //pikkuseks jaab interval2 - interval1
  15. unsigned long curTime;
  16. const int kollaPin = 4;
  17. const int siniPin = 3;
  18. int kollaState = LOW;
  19. int siniState = LOW;
  20. int val = 0;
  21.  
  22. int INtempPin = A0;
  23. float tempC;
  24. float SET = 25.0;
  25. float setk = 0.0;
  26. const int buttonPin = 2;
  27. const int button2Pin = 6;
  28. int buttonPushCounter =0;
  29. int button2PushCounter =0;
  30. int buttonState =0;
  31. int button2State =0;
  32. int lastButtonState =0;
  33. int lastButton2State =0;
  34.  
  35. //                BS  E  D4 D5  D6 D7
  36. LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
  37.  
  38. void setup()
  39. {
  40.   lcd.begin(16, 2);
  41.  
  42.     pinMode(kollaPin, OUTPUT);
  43.     pinMode(siniPin, OUTPUT);
  44.  
  45.     pinMode(buttonPin, INPUT);
  46.     pinMode(button2Pin,INPUT);
  47.     Serial.begin(9600);
  48.       sensors.begin();
  49.   sensors.setResolution(thermometer, 12);
  50.     }
  51. void printlnTemperature(DeviceAddress deviceAddress) {
  52.   tempC = sensors.getTempC(deviceAddress);
  53.   Serial.println(tempC);
  54.  
  55.    val = analogRead(INtempPin);
  56.  
  57.  Serial.print("setTemp:  ");
  58.  
  59.   Serial.println(val * 0.45);
  60.  
  61. }
  62.  
  63. void loop()  {
  64. unsigned long curTime = millis();
  65.   sensors.requestTemperatures();
  66.   Serial.print("Temperature is: ");
  67.   printlnTemperature(thermometer);
  68.   Serial.print("\n\r");
  69.   Serial.println(tempC);
  70.   delay(1);
  71.  
  72.   //int INtempReading = analogRead(INtempPin);
  73.   //delay(5);
  74.   //float INtempVolts = INtempReading * 5.0 / 1024.0;
  75.   //float INtempC = (INtempVolts - 0.5) * 100.0 + 50;
  76.  
  77.   lcd.print("I");
  78.   lcd.setCursor(1, 0);
  79.   lcd.print(val * 0.45);
  80.  
  81.   //int BACKtempReading = analogRead(BACKtempPin);
  82.   //delay(1);
  83.   //float BACKtempVolts = BACKtempReading * 5.0 / 1024.0;
  84.   //float BACKtempC = (BACKtempVolts - 0.5) * 100.0 + 50;
  85.  lcd.setCursor(5, 0);
  86.   lcd.print("B");
  87.   lcd.setCursor(6, 0);
  88.   lcd.print(tempC);
  89.   lcd.setCursor(10, 0);
  90.   lcd.print((char)223);
  91.  
  92.  
  93. buttonState = digitalRead(buttonPin);
  94. if (buttonState != lastButtonState){
  95.   if (buttonState ==HIGH) {
  96.     setk++;
  97.   }
  98.     }
  99.    
  100.     button2State = digitalRead(button2Pin);
  101.     if (button2State != lastButton2State){
  102.       if (button2State == HIGH) {
  103.         setk--;
  104.    // Serial.println(setk/10 + SET);
  105.  
  106.       }
  107.     }
  108.  
  109. lastButtonState = buttonState;
  110. lastButton2State = button2State;
  111.  
  112.   lcd.setCursor(11, 0);
  113.   lcd.print("S");
  114.   lcd.setCursor(12, 0);
  115.   lcd.print(setk/10 + SET);
  116.   lcd.setCursor(14, 1);
  117.  if (setk/10 + SET +1 < tempC) {
  118.  lcd.print("CO");
  119.  }
  120.  else if (setk/10 + SET > 1+ tempC){
  121.   lcd.print("WO");
  122.  }
  123.  else if ((setk/10 + SET - tempC) <1 > -1){
  124.   lcd.print("OK");
  125.    }
  126.  
  127.   lcd.setCursor(0, 1);
  128.   lcd.print("ERTEC");
  129.   lcd.setCursor(6, 1);
  130.   lcd.print(700*4.19*(val * 0.45-tempC)/3600);
  131.   lcd.setCursor(10, 1);
  132.  lcd.print(" KW ");
  133.  
  134.  
  135.  //could down
  136.   if (val * 0.45 + 1 < tempC) {
  137.  
  138.     if (curTime - prevTime < interval1) {
  139.       digitalWrite(4, LOW);
  140.       digitalWrite(3, HIGH);
  141.     }
  142.     if (curTime - prevTime >= interval1) {
  143.       digitalWrite(3, LOW);
  144.     }
  145.     if (curTime - prevTime > interval2) { //peale teist intervali voib ka led
  146.       // digitalWrite(4, HIGH); // korgeks panna, kui progega edasi minna
  147.       prevTime = curTime;
  148.     }
  149.   }
  150.  
  151.   //warm up
  152.   if (val * 0.45 - 1 > tempC) {
  153.     //if (val*0.065+5 - tempC <= 1 && val*0.065+5 - tempC > 0){
  154.  
  155.     if (curTime - prevTime < interval1) {
  156.       digitalWrite(3, LOW);
  157.       digitalWrite(4, HIGH);
  158.       delay(10);
  159.     }
  160.     if (curTime - prevTime >= interval1) {
  161.       digitalWrite(4, LOW);
  162.     }
  163.     if (curTime - prevTime > interval2) { //peale teist intervali voib ka led
  164.       //digitalWrite(6, HIGH); // korgeks panna, kui progega edasi minna
  165.       prevTime = curTime;
  166.  
  167.     }
  168.   }
  169. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement