//define pins
#define relayPin PB1
#define RunledPin PB2
//define timing variables
unsigned long onTime = 3000; //time in milliseconds for the device to stay on
unsigned long offTime = 2000; //time in milliseconds for the device to stay off
unsigned long currentTime;
unsigned long previousTime = 0;
//define state variable
int relayState = LOW;
void setup()
{
pinMode(relayPin, OUTPUT); //set relay pin as output
pinMode(RunledPin, OUTPUT); //pin2 Output
}
void loop()
{
Runled_interval(1000); // led blink time
currentTime = millis(); //get current time
//turn on relay if off time has passed
if (relayState == LOW && currentTime - previousTime >= offTime) {
relayState = HIGH;
digitalWrite(relayPin, relayState);
previousTime = currentTime;
}
//turn off relay if on time has passed
if (relayState == HIGH && currentTime - previousTime >= onTime) {
relayState = LOW;
digitalWrite(relayPin, relayState);
previousTime = currentTime;
}
}
void Runled_interval (int interval){
static long prevMill = 0;
if ((millis() - prevMill) >= interval){
prevMill = millis();
digitalWrite(RunledPin, !digitalRead(RunledPin));
}
}