Основные преимущества использования функций millis() и micros() для создания задержек в Arduino-проектах:
  - Millis() позволяет более гибко использовать вычислительные возможности платы Arduino, не прибегая к полному останову программы.                                                                          microkontroller.ru                       Функция возвращает количество миллисекунд, прошедших с момента запуска Arduino, и не блокирует выполнение других задач                                                                          dzen.ru                                                                                               microkontroller.ru                                                                                               dzone.com                      .
- Micros() даёт возможность измерять время с более высокой точностью, чем millis().                                                                          dzen.ru                       Функция возвращает количество микросекунд, прошедших с момента запуска Arduino.                                                                          dzen.ru                                                                                               arduino-technology.ru                      
Недостатки использования функций millis() и micros():
  Выбор между этими функциями зависит от конкретных требований проекта: если нужно высокое разрешение или интервал времени меньше миллисекунды, то следует использовать micros(), а для больших временных интервалов (в диапазоне миллисекунд) — millis().                                                                          deepbluembedded.com