Перейти к содержанию

Функция delay в Ардуино, delayMicroseconds

Функция delay в Ардуино

Функции Arduino delay() и delayMicroseconds() играют важную роль, и без этих команд практически невозможно написать большинство программ. На нашем сайте вы найдете множество примеров, где нужно управлять временем с помощью delay, например, чтобы контакт кнопки не дребезжал при нажатии. Рассмотрим назначение и применение команд delay и delayMicroseconds в программировании микроконтроллера Ардуино.

Необходимые компоненты:

  • Arduino Uno / Arduino Nano / Arduino Mega
  • светодиод и резистор
  • макетная плата
  • коннекторы

Дополнительные материалы на эту тему:

  1. Функция millis, многозадачность в Ардуино
  2. Мигание светодиодом на Ардуино с delay
  3. Функция #define, пример использования

Функция delayMicroseconds останавливает выполнение программы на заданное количество микросекунд (1 секунда считается за 1 000 000 микросекунд). Если в коде необходима задержка более чем на несколько тысяч микросекунд, рекомендуется использовать функцию delay. Далее рассмотрим на простом примере использование функций delayMicroseconds и delay в Arduino IDE, чтобы заставить мигать светодиод.

Функции delayMicroseconds и delay в языке Ардуино

Функция delay в Ардуино

Функция задержки delay Ардуино останавливает выполнение программы на заданное количество миллисекунд (1 секунда соответствует 1000 миллисекунд). Пока программа останавливается с помощью команды delay(), нельзя опрашивать датчики, подключенные к плате, или выполнять другие операции, такие как запись данных в EEPROM Arduino. В этом случае следует использовать функцию millis для активации многозадачности.

Функция delay Ардуино, пример использования в скетче

Функция delay Ардуино, пример использования

Задержка delay() Arduino часто встречается в программах. Если вы хотите узнать, как заменить delay на millis в языке программирования Arduino, мы также рассмотрели этот вопрос в другой статье. Сейчас мы разберем основное назначение функции задержки delay на примере мигающего светодиода. Вам понадобится только сама плата Arduino Uno, но вы можете подключить светодиод к контакту 13, как показано на картинке выше.

Скетч для мигающего светодиода с delay() Arduino


#define LED 13

void setup() {
  pinMode(LED, OUTPUT);
}
 
void loop() {
  digitalWrite(LED, HIGH);
  delayMicroseconds(1000);
  digitalWrite(LED, LOW);
  delayMicroseconds(1000);

  digitalWrite(LED, HIGH);
  delay(1000);
  digitalWrite(LED, LOW);
  delay(1000);
}

Заключение. Функция Arduino millis не останавливает выполнение программы, а заново начинает отсчет миллисекунд с обнулением счетчика. В отличие от них, delay и delayMicroseconds останавливают выполнение программы на заданное количество миллисекунд или микросекунд соответственно. Применение той или иной функции паузы в программе для микроконтроллера зависит от поставленной для вас задачи.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

newzaym
➜