Advertisement
henrihenri

ertec mini pot dig 2 led interval

Aug 17th, 2016
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.25 KB | None | 0 0
  1. #include <OneWire.h>
  2. #include <DallasTemperature.h>
  3. #define ONE_WIRE_BUS 3
  4. OneWire oneWire(ONE_WIRE_BUS);
  5. DallasTemperature sensors(&oneWire);
  6. DeviceAddress thermometer = {
  7.   0x28, 0xFF, 0x26, 0xA7, 0x35, 0x16, 0x4, 0xCF };
  8.  
  9. unsigned long interval1 = 2000;
  10. unsigned long interval2 = 6000; // tuleb arvestada, et interval2 tegelikuks
  11. unsigned long prevTime = 0;    //pikkuseks jaab interval2 - interval1
  12. unsigned long curTime;
  13. int potPin = A0;
  14. float tempC;
  15. const int kollaPin = 4;
  16. const int siniPin = 6;
  17.  
  18. int kollaState = LOW;
  19. int siniState = LOW;
  20.  
  21. int val = 0;
  22.  
  23.  
  24. void setup()
  25. {
  26.   pinMode(kollaPin, OUTPUT);
  27.   pinMode(siniPin, OUTPUT);
  28.  
  29.  
  30.   Serial.begin(9600);
  31.   sensors.begin();
  32.   sensors.setResolution(thermometer, 12);
  33. }
  34. void printlnTemperature(DeviceAddress deviceAddress) {
  35.   tempC = sensors.getTempC(deviceAddress);
  36.  
  37.   Serial.println(tempC);
  38.  
  39.   val = analogRead(potPin);
  40.  
  41.   Serial.print("setTemp:  ");
  42.  
  43.   Serial.println(val*0.065+5);
  44.  
  45.  
  46.  
  47.  
  48. }
  49.  
  50.  
  51.  
  52. void loop(){
  53.   curTime = millis();
  54.  
  55.   sensors.requestTemperatures();
  56.   Serial.print("Temperature is: ");
  57.   printlnTemperature(thermometer);
  58.   Serial.print("\n\r");
  59.   delay(1);
  60.   //kontrollitakse, et kui temp erinevus ei ületa 1 kraadi siis ledid madalaks
  61.   if (val*0.065+5 - tempC <= 1 > 0)  {
  62.     digitalWrite(6, LOW);
  63.     digitalWrite(4, LOW);
  64.   }
  65.  
  66.   //could down  
  67.   if (val*0.065+5 + 1 < tempC) {
  68.  
  69.     if(curTime - prevTime < interval1) {
  70.       digitalWrite(6, LOW);
  71.       digitalWrite(4, HIGH);
  72.       delay(10);  
  73.     }
  74.     if(curTime - prevTime >= interval1) {
  75.       digitalWrite(4, LOW);
  76.     }
  77.     if(curTime - prevTime > interval2) { //peale teist intervali voib ka led
  78.       // digitalWrite(4, HIGH); // korgeks panna, kui progega edasi minna
  79.       prevTime = curTime;
  80.     }        
  81.   }
  82.  
  83.  
  84.   //warm up
  85.  
  86.   if(val*0.065+5 -1 > tempC) {
  87.  
  88.     if(curTime - prevTime < interval1) {
  89.       digitalWrite(4, LOW);
  90.       digitalWrite(6, HIGH);
  91.       delay(10);
  92.     }
  93.     if(curTime - prevTime >= interval1) {
  94.       digitalWrite(6, LOW);
  95.     }
  96.     if(curTime - prevTime > interval2) { //peale teist intervali voib ka led
  97.       //digitalWrite(6, HIGH); // korgeks panna, kui progega edasi minna
  98.       prevTime = curTime;                
  99.     }
  100.   }
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement