База знаний · Примеры и обучение

Управление программой: логика решений

Шесть примеров про если, циклы и массивы — грамматика, на которой пишутся все устройства.

Шесть примеров раздела «05. Управление программой» — это грамматика кода: условия, циклы и массивы. Скучно звучит, бесценно работает: именно эти конструкции превращают набор команд в поведение — «если темно и движение, включи свет на минуту».

Три кита раздела

  • Условияif/else: программа принимает решения. Примеры показывают пороги («если больше — включи»), развилки и комбинации условий — сердце любой автоматики.
  • Циклыfor и while: программа повторяет действия. Пробежаться по светодиодам, опросить все датчики, плавно изменить яркость — всё это циклы.
  • Массивы — списки значений: ноты мелодии, пины гирлянды, история измерений. Массив плюс цикл — формула обработки любого набора данных.
Примеры управления программой в Trema IDE: условия, циклы и массивы с русскими комментариями
Грамматика кода с русскими пояснениями: каждая конструкция — на живом примере.

Самый полезный приём раздела — мигать без delay(). Программа не останавливается, а просто поглядывает на часы:

unsigned long previous = 0;   // когда переключали в прошлый раз
const unsigned long PERIOD = 500;  // период мигания, миллисекунды
bool ledOn = false;           // текущее состояние светодиода

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  // millis() — сколько миллисекунд плата работает с момента включения.
  unsigned long now = millis();

  // Пора переключать? Тогда переключаем и запоминаем момент.
  if (now - previous >= PERIOD) {
    previous = now;
    ledOn = !ledOn;
    digitalWrite(LED_BUILTIN, ledOn ? HIGH : LOW);
  }

  // Здесь плата свободна: можно читать кнопку, порт, датчики —
  // в отличие от delay(), который останавливает всю программу.
}

Разница принципиальна: во время delay(500) плата глухая и слепая, а здесь она в любой момент готова заметить нажатие кнопки или сообщение из порта.

Как учить это на железе

Секрет раздела в том, что абстракции здесь щупаются руками: цикл — это бегущий огонёк, условие — включившийся по порогу светодиод, массив — сыгранная мелодия. Идеи, на которых спотыкаются в «бумажном» программировании, на плате понимаются за вечер — поведение видно глазами.

Проверка себя

После раздела попробуйте задачу-синтез: бегущий огонёк, который меняет скорость от потенциометра и замирает по кнопке. Здесь встретятся все три кита плюс прошлые разделы. Получилось — вы готовы к строкам и настоящим проектам; идеи — в разделе «Полезное».

Обновлено: 19 июля 2026