Is this unsigned long function enough to hold 43,200,000 milisecod/12 days

/* Blink without Delay

Turns on and off a light emitting diode (LED) connected to a digital
pin, without using the delay() function. This means that other code
can run at the same time without being interrupted by the LED code.

The circuit:

  • LED attached from pin 13 to ground.
  • Note: on most Arduinos, there is already an LED on the board
    that's attached to pin 13, so no hardware is needed for this example.

created 2005
by David A. Mellis
modified 8 Feb 2010
by Paul Stoffregen
modified 11 Nov 2013
by Scott Fitzgerald

This example code is in the public domain.

*/

// constants won't change. Used here to set a pin number :
const int ledPin = 13; // the number of the LED pin

// Variables will change :
int ledState = LOW; // ledState used to set the LED

// Generally, you should use "unsigned long" for variables that hold time
// The value will quickly become too large for an int to store
unsigned long previousMillis = 0; // will store last time LED was updated

// constants won't change :
const long interval = 43,200,000; // interval at which to blink (milliseconds)

void setup() {
// set the digital pin as output:
pinMode(ledPin, OUTPUT);
}

void loop() {
// here is where you'd put code that needs to be running all the time.

// check to see if it's time to blink the LED; that is, if the
// difference between the current time and last time you blinked
// the LED is bigger than the interval at which you want to
// blink the LED.
unsigned long currentMillis = millis();

if (currentMillis - previousMillis >= interval) {
// save the last time you blinked the LED
previousMillis = currentMillis;

// if the LED is off turn it on and vice-versa:
if (ledState == LOW) {
ledState = HIGH;
} else {
ledState = LOW;
}

// set the LED with the ledState of the variable:
digitalWrite(ledPin, ledState);
}
}

Here is the code, it does not need to be precise, it only needs to be HIGH for 12 hours, and then LOW for 12 hours.. I don't have any working RTC.. :slight_smile: I'm buying DS3231 soon.. Is it good?

Luka

Did you try to compile it?
What did the compiler say about the commas?

Where are the code tags?

Well i only modified BlinkWithoutDelay example so please dont be rude.. Can you say me if this will be able to turn relay off and on for aproximetly 12 hours?

Can you say me if this will be able to turn relay off and on for aproximetly 12 hours?

No, because it won't compile.

Ok i removed commas, will it be good now?

lukapetko2:
Well i only modified BlinkWithoutDelay example so please dont be rude.. Can you say me if this will be able to turn relay off and on for aproximetly 12 hours?

Yes, it's possible up to a little bit more than 49 days.
Accuracy will be plus or minus up to 0.8% of specified time with many Arduino boards.

But you cannot specify a long or unsigned long variable with "thousands seperator" in it.

Leave out the thousands seperator kommas in your number declaration within the code!

The language of the AVR GCC compiler is C/C++ and not US american English, so you have to provide C/C++ syntax in your code and not american English code with kommas as thousands group seperators in the middle of a number!

lukapetko2:
Well i only modified BlinkWithoutDelay example so please dont be rude..

I see nothing rude in what I wrote.

OK, i removed commas, now it compiles.. 0.8 accuracy is okay for me! It looks rude to me, but it does not matter, thank you for solving my problem :slight_smile: