2.5. Использование цикла
На практике часто необходимо циклически изменять значения переменных для выполнения заданного алгоритма. В предыдущем примере можно реализовать цикл, чтобы увидеть, как влияют на частоту мигания разные значения задержки. Вы можете реализовать разные скорости мигания, задавая с помощью переменной цикла различные значения задержки. Пример иллюстрирует код из листинга 2.2.
Листинг 2.2. Изменение частоты мигания светодиода
const int LED=9; // Константа - номер контакта светодиода
void setup()
{
pinMode (LED, OUTPUT); // Конфигурируем контакт светодиода как выход
}
void loop()
{
for (int i=100; i<=1000; i=i+100)
{
digitalWrite(LED, HIGH);
delay(i);
digitalWrite(LED, LOW);
delay(i);
}
}
Скомпилируйте код листинга 2.2, загрузите его на свою плату Arduino и посмотрите, что происходит. Теперь разберемся, как это работает.
- 49 -
Оператор for всегда содержит три выражения, разделенные точкой с запятой:
• первое выражение присваивает начальное значение переменной-счетчику цикла.
В нашем примере переменная i получает начальное значение 100;
• второе выражение указывает, когда цикл должен остановиться. Операторы в теле цикла будут выполняться снова и снова, пока условие истинно. Запись <= означает меньше или равно. Таким образом, этот цикл будет выполняться тех пор, пока переменная i меньше или равна 1000;
• последнее выражение указывает, что должно произойти с переменной i каждый раз после выполнения операторов тела цикла. В нашем примере, значение счетчика цикла увеличивается на 100.
Чтобы лучше понять работу оператора for, подробно рассмотрим, что происходит за два прохода цикла:
1. Значение переменной i равно 100, 100 меньше или равно 1000, значит выполнять код в теле цикла.
2. На контакте 9 установлено значение HIGH, светодиод горит 100 мс (текущее значение i).
3. На контакт 9 подано значение LOW, светодиод потушен 100 мс (текущее значение i).
4. В конце цикла значение переменной i увеличивается на 100, теперь i равно 200.
5. 200 меньше или равно 1000, цикл повторяется снова.
6. На контакте 9 установлено значение HIGH, светодиод горит 200 мс (текущее значение i).
7. На контакт 9 подано значение LOW, светодиод потушен 200 мс (текущее значение i).
8. В конце цикла значение переменной i увеличивается на 100, теперь i равно 300.
9. Этот процесс повторяется, пока i не превосходит 1000 и затем i снова принимает значение 100 и все повторяется заново.
Итак, вы разобрались с работой цифровых контактов платы Arduino. Далее мы расскажем, как с помощью ШИМ сформировать аналоговые сигналы на цифровых контактах платы Arduino.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОК