Основные различия между функциями delay и millis в Arduino:
- delay() останавливает выполнение программы на заданное временное значение перед следующим действием или циклом. 1 В отличие от millis(), это блокирующая функция, то есть во время задержки нельзя выполнять другие задачи. 2
- millis() возвращает число миллисекунд, прошедших с момента запуска программы. 23 Эта функция неблокирующая, то есть во время ожидания можно выполнять другие коды. 3
Таким образом, millis() рекомендуется использовать для циклов, содержащих несколько переменных и условий, а delay() — в более простых программах и циклах, содержащих действия с одной переменной, где не требуется возвращаться к начальному значению времени. 1