hello! thank you so much for your suggestions!!!
...but i still cant understand how can i use millis as 22 seconds timer.so please do help me
so far this is the program i have but the timer doesnt seem to work
#include <TimerOne.h>
//Reads and analog sensor and displays the value
int sensePin = A0;
int relayA = 6;
int senseUp = A1;
int senseDown = A2; //1ST-2ND FLOOR IN
int relayB = 9; //1ST-2ND FLOOR OUT
int relayC = 12;
void setup(){
//Allows us to listen to serial communications from the arduino
Serial.begin(9600);
pinMode(relayA,OUTPUT);
pinMode(sensePin,INPUT);
Timer1.initialize(2200000);
Timer1.stop();
//Timer1.restart();
}
void loop(){
int val = analogRead(sensePin);
val = constrain(val, 276, 960);
int ledLevel = map(val, 276, 960, 0, 255);
if(ledLevel < 14 ){
Serial.println("off");
digitalWrite(relayA,LOW);}
else{
//Serial.println("on");
digitalWrite(relayA,HIGH);
int valDown = analogRead(senseDown);
Serial.println(analogRead(senseDown));
valDown = constrain(valDown, 790, 970);
int ledLevelDown = map(valDown, 790, 970, 0, 255);
//int valUp = (analogRead(senseUp));
if(ledLevelDown > 12){
//digitalWrite(relayB,HIGH);
Timer1.restart();
Timer1.start();
Timer1.attachInterrupt(OnDown);}
else{
digitalWrite(relayB,LOW);}
int valUp = analogRead(senseUp);
Serial.println(analogRead(senseUp));
valUp = constrain(valUp, 790, 970);
int ledLevelUp = map(valUp, 790, 970, 0, 255);
//int valUp = (analogRead(senseUp));
if(ledLevelUp > 120){
//digitalWrite(relayC,HIGH);
Timer1.restart();
Timer1.start();
Timer1.attachInterrupt(OnUp);}
else{
digitalWrite(relayC,LOW);}}}
void OnDown(){
digitalWrite(relayB,HIGH);
}
void OnUp(){
digitalWrite(relayC,HIGH);}