Skip to main content
Added spacing to break up the text and make the question more visible
Source Link
Greenonline
  • 3.2k
  • 7
  • 37
  • 49

I need help with my coding. I'm still learning on how to use interval millis()millis(). 

Currently I'm working on a water heater with a safety feature. This means that you can only pour water out when you activate the child-lock feature. The child-lock feature will turn on for 5 seconds and within that 5 secondseconds if you pour the water out, the timer will pause until you finish pouring your water and the 5 second timer will start again and the system goes off after that. 

If the child lock feature on for 5 second without any action, it will turn off the system again. My lecturer does not allow me from using delay()to use the delay() function so I already did my coding using millis()millis(). 

This is my code so far:

Now, I'm able to pour out water when child lock feature activated, but the problem is the timer  (interval) still ticking. 

Is there any solution on how can I pause the interval whenever I'm pouring water  (button2) and the interval startstarts back 5 sec when I release button2  (pouring water)? 

I would glad if someone can help me. Ask me anything about my code.

I need help with my coding. I'm still learning on how to use interval millis(). Currently I'm working on a water heater with a safety feature. This means that you can only pour water out when you activate the child-lock feature. The child-lock feature will turn on for 5 seconds and within that 5 second if you pour the water out, the timer will pause until you finish pouring your water and the 5 second timer will start again and the system goes off after that. If the child lock feature on for 5 second without any action, it will turn off the system again. My lecturer does not allow me from using delay() function so I already did my coding using millis(). This is my code so far:

Now, I'm able to pour out water when child lock feature activated, but the problem is the timer(interval) still ticking. Is there any solution on how can I pause the interval whenever I'm pouring water(button2) and the interval start back 5 sec when I release button2(pouring water)? I would glad if someone can help me. Ask me anything about my code.

I need help with my coding. I'm still learning on how to use interval millis(). 

Currently I'm working on a water heater with a safety feature. This means that you can only pour water out when you activate the child-lock feature. The child-lock feature will turn on for 5 seconds and within that 5 seconds if you pour the water out, the timer will pause until you finish pouring your water and the 5 second timer will start again and the system goes off after that. 

If the child lock feature on for 5 second without any action, it will turn off the system again. My lecturer does not allow me to use the delay() function so I already did my coding using millis(). 

This is my code so far:

Now, I'm able to pour out water when child lock feature activated, but the problem is the timer  (interval) still ticking. 

Is there any solution on how can I pause the interval whenever I'm pouring water  (button2) and the interval starts back 5 sec when I release button2  (pouring water)? 

I would glad if someone can help me. Ask me anything about my code.

Source Link

Water heater coding problem

I need help with my coding. I'm still learning on how to use interval millis(). Currently I'm working on a water heater with a safety feature. This means that you can only pour water out when you activate the child-lock feature. The child-lock feature will turn on for 5 seconds and within that 5 second if you pour the water out, the timer will pause until you finish pouring your water and the 5 second timer will start again and the system goes off after that. If the child lock feature on for 5 second without any action, it will turn off the system again. My lecturer does not allow me from using delay() function so I already did my coding using millis(). This is my code so far:

const int redLed = 2;
const int greenLed = 3;
const int yellowLed = 4;
const int greenbigLed = 7;

const int buttonPin1 = 5;
const int buttonPin2 = 6;

int buttonState1 = 0;
int buttonState2 = 0;
float tempC ;
int analogPin = A0;
int yellowLedState = 0;

const long interval1 =0;
const long interval2 = 5000;
unsigned long previousMillis = 0;   

void setup() {
  // put your setup code here, to run once:
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,INPUT);
pinMode(6,INPUT);
Serial.begin(9600);
digitalWrite(yellowLed,yellowLedState);

}

void loop() {
  // put your main code here, to run repeatedly:
int analogValue = analogRead(analogPin);
int buttonState1 = digitalRead(buttonPin1);
int buttonState2 = digitalRead(buttonPin2);
int yellowLedState = digitalRead(yellowLed);
tempC = analogValue / 10 ;
Serial.println(tempC);
unsigned long currentMillis = millis();
unsigned long currentMillis2 = millis();

if (tempC <= 89.9 && tempC >= 0){
  digitalWrite(redLed,HIGH);
  digitalWrite(greenLed,LOW);
}else if(tempC == 102){
  digitalWrite(redLed,LOW);
  digitalWrite(greenLed,HIGH);
}

if(currentMillis - previousMillis >= interval2){
  previousMillis = currentMillis;
  if(buttonState1 == HIGH){
   // if(currentMillis2 - previousMillis2 >=interval2){
     if (yellowLedState == LOW) {
          yellowLedState = HIGH;
} 
digitalWrite(yellowLed, yellowLedState);
  } else{
  digitalWrite(yellowLed,LOW);
    }
}


if (buttonState2 == HIGH && yellowLedState == HIGH){
  digitalWrite(greenbigLed, HIGH);
}else{
  digitalWrite(greenbigLed,LOW);
}

}

Now, I'm able to pour out water when child lock feature activated, but the problem is the timer(interval) still ticking. Is there any solution on how can I pause the interval whenever I'm pouring water(button2) and the interval start back 5 sec when I release button2(pouring water)? I would glad if someone can help me. Ask me anything about my code.