The Article delay() vis millis() function complete understanding explains the difference between the use of delay() and mills() function on Arduino projects.

delay() Arduino function

A delay() function is a function that delays for a certain number of milliseconds. The programmer is the one who determines the time that the program stops.

The delay function gives the Arduino project a Rhythm and dynamism. This function will really stop the program that comes next.

This function can be used in Arduino sketches to give the microcontroller a brief break and can also be used to make animations smoother.

The limits of the delay() function for Arduino

There are some limitations when using this function, though. For example, if the delay is “delay(5000),” The limitation is that you cannot use any other commands while waiting.

This function does not work for long intervals. If you need to time longer intervals, use millis().

delay() function

The code of the project

// C++ codeint ledpin = 9;void setup(){pinMode(ledpin,OUTPUT);Serial.begin(9600);}

void loop(){digitalWrite(ledpin, HIGH);delay(800);digitalWrite(ledpin, LOW);delay(800);Serial.println(” Robotics “);}

delay() vis millis() function

Comment on the program

Comment on the program

When the word robotics appears on the screen, the program stops for a delay of 800 milliseconds then the second-word Robotics appearsagain.

millis() Arduino function

The millis() function is a built-in function in the Arduino programming language that returns the number of milliseconds since the program started running.

It can be used to determine which tasks should be carried out based on a time delay. The millis() function is never used to stop your code.

delay() vis millis() function for Arduino

The delay() function is used to pause the execution of a program for a specified number of milliseconds.

The millis() function is used to measure elapsed time in milliseconds.This function can display how long a particular action has taken or created a delay between each loop iteration.

A sketch of mills() function

Description of the project

Write some ligne of codes, and the user can see the time in milliseconds scrolling on the serial monitor.

Use the “Serial.begin(9600);” to enable the serial communication, and use the “Serial.println(millis());” to print the current value of millis() function on the serial monitor. The program prints the number in milliseconds.

The code of the sketch

// C++ codevoid setup(){Serial.begin(9600);}void loop(){Serial.println(millis());}

the time in milliseconds scrolling on the serial monitor

More understanding of the millis() function

The numbers of the millisecond are built on the timer counter of the Arduino board and especially on the microcontroller of the Arduino itself.

We can consider the display of the number of milliseconds as a timeline starting from 0 to more than 4 billion. We can ask the program to make an event at a special time on the timeline of the millis function.

millis() function

cont unsigned long firsEvent = 1000;cont unsigned long secondEvent = 10000;cont unsigned long thirdEvent = 100000;cont unsigned long fourthEvent = 1000000;cont unsigned long fifthEvent = 10000000;cont unsigned long sixthEvent = 100000000;led1 = 5;led1 = 6;led1 = 7;led1 = 8;led1 = 9;led1 = 10;

void setup() {}void loop(){if ( millis () )> firsEvent {make an action}if ( millis () )> secondEvent {make an action}

if ( millis () )> thirdEvent {make an action}if ( millis () )>fourthEvent {make an action}

if ( millis () )> fifthEvent {make an action}if ( millis () )> sixthEvent {make an action}

Another example


We are doing a subtraction: actualTime – previous. The present time that rises and rises, we subtract from it the present time, which starts from 0 and rises and rises with an operation compared to a fixed number equal to 100.

When the condition is met, the code will be executed. until we reach previous = actualTime. Then to re-check the condition again, Exiting from the program until the condition is fulfilled again, and the program is executed again, and so on.

The code of the project

// C++ codeconst unsigned long firstEvent = 100;unsigned long previous = 0;void setup(){Serial.begin(9600);}void loop(){unsigned long actualTime= millis();if(actualTime – previous >= firstEvent){Serial.println(“”);previous = actualTime;}}

When the condition is met, the code will be executed

Why Use millis() Instead of delay()?

When the Arduino programmer chooses to use the millis() function instead of the delay() function, he decides not to block the program for a while.

He decided to let his program continue running with the built-in Arduino function called millis().

Related concepts to be aware of

Long data type

take note

The long data type is a data type used in programming languages. It can store values that are larger than the range of integers and are usually signed.

A long data type has the same size as a 32-bit integer, which is 4 bytes. This means that it can store numbers from -2147483648 to 2147483647.

A long data type is generally used when you need to store numbers that have many digits or numbers with very large absolute values.

unsigned long

The unsigned long data type stores a number that is too large to be represented by an int. It is the same size as a pointer.

The unsigned long data type is used to store numbers without any negative signs. It can store numbers from 0 up to 4,294,967,295.

A summary of delay() and millis()

conclusion of the article

The function delay() is used to make the Arduino wait for a given amount of time.The function millis() is used to measure time in milliseconds. It is a built-in Arduino function.The delay() function takes a parameter that specifies the number of milliseconds it should wait.

The millis() takes a parameter that specifies the number of milliseconds since it was the last reset.Shortly, The millis() function returns the number of milliseconds since the Arduino was started.

The delay() function pauses for a specified number of milliseconds before continuing.

Pin It on Pinterest

Share This