В этом уроке
- Кнопка Reset и её назначение
- Единоразовое выполнение кода
Видео версия урока
Назначение кнопки Reset
Бывает так, что по какой-то причине Вам необходимо перезапустить скетч, уже загруженный в контроллер. Для этого существует кнопка Reset («reset» с англ. — сброс).
После сброса микроконтроллер сначала ждёт поступления команд от ПК (новый скетч). Если команды есть, то загрузчик записывает получаемые данные, а потом запускает новую программу на выполнение.
Если же команд не поступает, то загрузчик запускает программу, которая была в микроконтроллере ранее. В случае, если никакой программы в микроконтроллере нет, он выполняет по кругу пустой цикл void loop().
Способ однократного выполнения команд
Давайте напишем скетч, который будет выполнять команды только один раз после нажатия кнопки reset. Для этого все необходимые команды указываются в блоке void setup().
/* Включаем и выключаем светодиод на одну секунду и так 3 раза подряд, но только при старте скетча*/ void setup () { pinMode (13, OUTPUT); // Настраиваем 13 вывод на работу в режиме выхода digitalWrite (13, HIGH); // установим на выходе логическую 1 delay (1000); // задержка 1 сек digitalWrite (13, LOW); // установим на выходе логический 0 delay (1000); // задержка 1 сек digitalWrite (13, HIGH); // установим на выходе логическую 1 delay (1000); // задержка 1 сек digitalWrite (13, LOW); // установим на выходе логический 0 delay (1000); // задержка 1 сек digitalWrite (13, HIGH); // установим на выходе логическую 1 delay (1000); // задержка 1 сек digitalWrite (13, LOW); // установим на выходе логический 0 delay (1000); // задержка 1 сек } void loop () { }
Мы настоятельно рекомендуем оставлять комментарии к своим скетчам (пусть даже не настолько подробные, как у нас). Это поможет Вам разобраться в программе при следующем запуске, а другим — быстрее понять Ваш код, если Вы захотите им с кем-то поделиться.
Блок setup(). Теперь мы разместили все функции в этом блоке. После загрузки скетча в микроконтроллер светодиод моргнёт 3 раза и погаснет. Для того, чтобы выполнить функцию повторно, Вам необходимо нажать кнопку RESET.
Блок loop(). В данном скетче блок остаётся пустым. После загрузки скетча в плату светодиод 3 раза включится и выключится. После этого Вы не увидите никаких действий, так как контроллер будет постоянно выполнять пустой цикл void loop().
Обсуждение