Разбор кода Arduino шаг за шагом: сначала пойми, потом измени
Разбор готового кода Arduino шаг за шагом в BlueGrays: краткое описание, шаги, «Если не получается», задания «Твоя очередь», план занятия на 15 минут и реальный проект с кнопкой.
Разбор кода — это вкладка в разделе «Исходный код» на странице каждого проекта BlueGrays, которая шаг за шагом объясняет готовый код Arduino. Чтобы понять, что на самом деле делает скопированный и загруженный код, иди в таком порядке: сначала прочитай краткое описание Что делает этот код?, затем найди в полном коде каждый фрагмент из раздела Шаг за шагом вместе с его объяснением, а если схема ведёт себя не так, как ожидалось, загляни в Если не получается; в конце выполни задание Твоя очередь: измени в коде что-то одно и посмотри на результат на плате. Эти четыре раздела — самый короткий путь от «работает, но непонятно почему» к «знаю, что будет, если изменить эту строку».
В этой статье мы проходим вкладку «Разбор кода» от начала до конца на реальном содержимом реального проекта: проект номер 10, Включение и выключение светодиода кнопкой (вкл/выкл). Он бесплатный, уровень «Новичок», и у него есть блочный вид, так что объяснение и кода, и блоков может открыть любой. Здесь ты найдёшь разделы вкладки, способ сопоставлять код с объяснением, план занятия на 15 минут, стратегию решения заданий «Твоя очередь», какое изменение какому понятию учит, вид «Разбор блоков», разницу между «Если не получается» и «Если не работает» и идеи для преподавателей, которые используют вкладку на уроках.
Где находится вкладка «Разбор кода» и кому она доступна?
Открой проект и пролистай до раздела Исходный код: вверху будет переключатель с двумя вкладками — Код и Разбор кода. Вкладка «Код» показывает программу целиком, и именно там находятся кнопки «Копировать» и «Копировать ссылку». Переключись на «Разбор кода», и откроется та же программа с пояснениями. Эта вкладка есть у каждого из 200+ проектов и устроена одинаково в проектах на Arduino, ESP32 и Raspberry Pi Pico. С доступом всё просто: в 60 бесплатных проектах (по 20 на каждую платформу) «Разбор кода» открыт для всех, так что даже с бесплатным аккаунтом видны краткое описание, все шаги, «Если не получается» и задание «Твоя очередь» вместе с решением. В проектах Premium на месте вкладки стоит карточка с замком: «Пошаговый разбор кода открывается с Premium.» Значит, способ из этой статьи можно применять к проектам «Мигающий светодиод», «Светофор», «Полицейская мигалка на светодиодах» и к проектам с кнопкой, ничего не платя.
Разделы: для чего нужен каждый
| Раздел | Что показывает | Как пользоваться |
|---|---|---|
| Что делает этот код? | Краткое описание в 2–3 предложениях: что делает программа, в каком порядке и почему всё время повторяется | Прочитав его, объясни программу одним предложением, не глядя на экран; если не выходит, прочитай ещё раз |
| Шаг за шагом | Пронумерованные шаги, у каждого есть заголовок, короткий фрагмент кода и объяснение (в большинстве проектов 5–6 шагов) | Читай шаги по порядку и находи фрагмент каждого шага в полном коде |
| Фрагмент кода | Только те строки, о которых говорит шаг, без остальной программы | Смотри на числа и номера пинов в нём: обычно именно их и можно менять |
| Если не получается | Частые симптомы в этом проекте и способы их устранить (обычно 4–5) | Если схема ведёт себя не так, как ожидалось, сначала ищи свой симптом здесь |
| Твоя очередь | Короткое задание, в котором нужно изменить в коде что-то одно | Сначала предскажи результат, потом внеси изменение и загрузи код |
| Подсказка | Одно предложение прямо под заданием, которое говорит, куда смотреть | Прочитай, если предсказание не сбывается: она указывает направление, но не даёт ответа |
| Показать решение | Блок РЕШЕНИЕ, который открывается по нажатию: какая строка во что превращается и какой будет результат | Открывай его последним и сравнивай со своим вариантом; закрыть его снова можно кнопкой «Скрыть решение» |
Порядок разделов выбран намеренно: сначала общая картина, потом детали, потом ошибки и в конце твой собственный эксперимент. Фрагменты кода — это не вся программа, а только строки, которые объясняет данный шаг; закрывающая фигурная скобка блока, открытого на одном шаге, может оказаться в следующем. Поэтому прочитать все шаги по порядку полезнее, чем мельком взглянуть на один. Подсказка видна сразу под текстом задания, а решение скрыто, пока не нажмёшь Показать решение. Такая раскладка оставляет время подумать, прежде чем увидеть ответ.
Пример: «Разбор кода» в проекте «Включение и выключение светодиода кнопкой (вкл/выкл)»
В проекте одна кнопка и один светодиод. Один вывод кнопки подключён к 5V, а противоположный — к пину 13 платы; этот же пин притянут к GND через резистор 10 kΩ. Длинная ножка светодиода идёт к пину 7, а короткая — к GND через резистор 330 Ω. Краткое описание в «Разборе кода» объясняет программу так: при каждом нажатии кнопки светодиод один раз меняет состояние — выключенный загорается, а горящий гаснет; даже если держать кнопку нажатой, светодиод меняется только один раз, а пауза 50 мс отсекает дребезг кнопки. Ниже вся программа целиком, с комментариями на двух языках.
1int ledState = 0; // LED durumu: 0 sönük, 1 yanık / LED state: 0 = off, 1 = on
2int lastButton = 0; // Butonun önceki okuması / Previous button reading
3
4void setup() {
5 pinMode(13, INPUT); // Buton girişi, harici pull-down / Button input, external pull-down
6 pinMode(7, OUTPUT); // LED çıkışı / LED output
7}
8
9void loop() {
10 int button = digitalRead(13); // Butonu oku / Read the button
11 if (button != lastButton) { // Buton durumu değişti / Button state changed
12 if (button == 1) { // Yalnız basış anında (LOW -> HIGH) / Only at the press (LOW -> HIGH)
13 ledState = !ledState; // Durumu tersine çevir / Flip the state
14 digitalWrite(7, ledState); // Yeni durumu LED'e yaz / Write the new state to the LED
15 }
16 delay(50); // Sıçramayı atlamak için kısa bekleme / Short wait to skip the bounce
17 lastButton = button; // Bu okumayı sakla / Store this reading
18 }
19}| Шаг | Фрагмент кода | Суть объяснения | Какому понятию учит |
|---|---|---|---|
| 1. Переменные, которые помнят светодиод и кнопку | int ledState = 0; int lastButton = 0; | ledState хранит текущее состояние светодиода, а lastButton — предыдущее показание кнопки; они объявлены вне функций, поэтому сохраняют значения на каждом проходе loop | Глобальная переменная |
| 2. setup(): готовим пины | pinMode(13, INPUT); pinMode(7, OUTPUT); | D13 — вход, D7 — выход; INPUT достаточно, потому что в схеме есть внешний стягивающий резистор (pull-down) 10 kΩ, иначе пин «висел» бы в воздухе | Вход, выход, стягивающий резистор (pull-down) |
| 3. loop(): читаем кнопку, ловим изменение | int button = digitalRead(13); if (button != lastButton) { if (button == 1) { (сравнение с прошлым показанием) | Если показание совпадает с предыдущим, ничего не происходит; если оно изменилось и теперь равно 1, значит, кнопку нажимают именно в этот момент | Обнаружение фронта (переход от LOW к HIGH) |
| 4. Переворачиваем состояние, пишем его в светодиод | ledState = !ledState; digitalWrite(7, ledState); | Оператор ! превращает 0 в 1, а 1 в 0; новое значение записывается в светодиод | Переключатель (toggle, вкл/выкл) |
| 5. Пауза 50 мс и сохранение последнего показания | delay(50); lastButton = button; | Механическая кнопка несколько миллисекунд дребезжит; пауза 50 мс отсекает это, затем показание сохраняется для следующего прохода | Антидребезг (debounce) |
При чтении шагов обрати внимание: объяснение говорит не только о том, что происходит, но и о том, что было бы без этой строки. Шаг 1 напоминает, что ledState начинается с 0, поэтому при включении платы светодиод выключен. Отсюда хороший вопрос: если поставить 1, загорится ли светодиод при старте? Нет, потому что эта строка меняет только переменную; setup() ничего не записывает в светодиод, так что он стартует выключенным, а при первом нажатии ledState возвращается к 0, и светодиод остаётся выключенным. Значение переменной и реальное состояние пина — две разные вещи. Шаг 2 связывает использование INPUT для кнопки с резистором 10 kΩ в схеме: пока кнопка не нажата, резистор притягивает пин к GND, и читается 0. Убери резистор — и пин «повиснет» в воздухе и будет читать случайные значения; симптом «светодиод сам включается и выключается» в «Если не получается» соответствует именно этому.
Шаги 3 и 5 нужно читать вместе. Сравнение в шаге 3 работает, только если lastButton обновляется после каждого изменения, а это обновление — строка lastButton = button в шаге 5. Когда эти два шага сопоставлены, становится ясна главная идея программы: код проверяет не то, нажата ли кнопка, а то, изменилось ли её состояние. Пока кнопку держат, на каждом проходе читается 1, но в lastButton тоже 1, поэтому сравнение ложно и светодиод не меняется. Оператор ! в шаге 4 — это выключатель вкл/выкл из двух строк. Шаг 5 заканчивается предупреждением: если пауза слишком короткая, светодиод иногда может переключиться больше одного раза за нажатие. Отсюда твой первый эксперимент ещё до задания: уменьши 50 до 5, нажми несколько раз и посмотри, не переключается ли светодиод время от времени дважды; результат зависит от качества кнопки. Подробнее об антидребезге — в статье как подключить кнопку к Arduino.

В разделе «Если не получается» этого проекта пять симптомов: светодиод никогда не загорается; светодиод меняется сам, без нажатия кнопки; при нажатии кнопки ничего не происходит; кнопка ведёт себя так, будто нажата всё время; код не загружается. Для каждого симптома есть конкретная проверка. Например, для симптома «всё время нажата» объясняется, что если ножки кнопки вставлены не той стороной, D13 всё время остаётся подключённым к 5V и кнопку нужно повернуть на 90 градусов. Задание «Твоя очередь» такое: сделай так, чтобы светодиод переключался не при нажатии, а при отпускании кнопки. Подсказка напоминает, что переменная button становится 1 в момент нажатия и 0 в момент отпускания. Решение — изменение одного символа: строка if (button == 1) превращается в if (button == 0). Это маленькое задание проверяет, по-настоящему ли понятна идея обнаружения фронта из шага 3.
Как читать: краткое описание, сопоставление, проверка
- Прочитай краткое описание и запиши его одним предложением: Прочитай «Что делает этот код?», затем, не глядя в телефон, запиши программу одним предложением в тетрадь. Для проекта с кнопкой: «Каждое нажатие один раз включает или выключает светодиод».
- Сопоставь код с шагами сверху вниз: Открой код в Arduino IDE (с этим помогает кнопка «Копировать ссылку» в «Исходном коде»), найди фрагмент каждого шага в полном коде и допиши номер шага рядом со строкой в виде комментария. Шаги идут в порядке кода: глобальные переменные, setup(), loop().
- Отметь строки без пары: Если какая-то строка не входит ни в один шаг (обычно остаются только закрывающие скобки), подумай, почему её не объясняют; если это не скобка, поищи её в объяснениях ещё раз.
- Проверь на схеме: Загрузи код и по очереди проверь поведение из краткого описания. Для проекта с кнопкой хватит трёх проверок: одно нажатие, удержание и быстрые повторные нажатия. Перед каждой проверкой скажи вслух, что произойдёт.
Сопоставление пропускают чаще всего, хотя именно оно даёт больше всего. Когда пишешь номера шагов рядом со строками, становится виден скелет кода: какая строка выполняется один раз, а какая постоянно, где каждая переменная читается и где записывается. В проекте с кнопкой lastButton встречается в двух местах: объявляется в шаге 1 и обновляется в шаге 5. То, что видишь своими глазами, запоминается гораздо лучше, чем фраза «переменная — это коробка». Если хочется отдельно разобраться с переменными, циклами и функциями, загляни в основы программирования Arduino.
План занятия с «Разбором кода» на 15 минут
| Минуты | Что делаешь | Где |
|---|---|---|
| 0–2 | Прочитай краткое описание «Что делает этот код?» и запиши программу одним предложением | Телефон, «Разбор кода» |
| 2–6 | Найди в полном коде каждый фрагмент из «Шаг за шагом» и допиши номера шагов к строкам в виде комментариев | Телефон + Arduino IDE |
| 6–8 | Загрузи код и по очереди проверь поведение из краткого описания | Компьютер + схема |
| 8–9 | Прочитай задание «Твоя очередь», предскажи результат и запиши его | Телефон + тетрадь |
| 9–12 | Внеси одно изменение, загрузи код и понаблюдай за результатом | Arduino IDE + схема |
| 12–13 | Если предсказание не сбылось, прочитай «Подсказку» и попробуй ещё раз | Телефон |
| 13–15 | Сравни свой вариант с решением через «Показать решение», затем попробуй второе изменение на свой выбор | Телефон + Arduino IDE |
Этот план рассчитан на проект, схема которого уже собрана. Если схема собирается впервые, добавь на неё ещё 10–15 минут или перенеси занятие с «Разбором кода» на следующий день. Последние две минуты — самая ценная часть: собственное небольшое изменение после просмотра решения проверяет понятую идею, а не заученный ответ. В проекте с кнопкой можно, например, перенести светодиод на другой пин или увеличить паузу 50 мс до 300 мс и посмотреть, что станет с быстрыми нажатиями. Один проект в день в таком темпе — это пять бесплатных проектов за неделю, причём действительно понятых. Для более длинного плана загляни в 30-дневную дорожную карту по Arduino.
Стратегия решения заданий «Твоя очередь»
Задания «Твоя очередь» короткие, но подобраны продуманно: каждое просит одно изменение, а результат можно увидеть или услышать. Если при их решении держаться такого порядка, пользы будет вдвое больше:
- Предскажи: Прочитай задание и скажи, какой строки кода коснёшься и что увидишь после изменения. Записанное предсказание не даст потом появиться иллюзии «это и так было понятно».
- Измени: Меняй только что-то одно. Если поменять две строки сразу, не понять, какое изменение к чему привело.
- Загрузи: Загрузи код в плату и дождись сообщения о том, что загрузка завершена. Если возникает ошибка компиляции, проверь точки с запятой и скобки в изменённой строке.
- Понаблюдай: Сравни результат со своим предсказанием. В заданиях на время считай секунды, в заданиях со звуком послушай старый и новый звук один за другим.
- Загляни в подсказку: Если предсказание не сбылось или не получается найти, какую строку трогать, прочитай подсказку. Подсказка видна сразу под заданием, поэтому при первом чтении полезно прикрыть её рукой.
- Открывай решение последним: Нажимай «Показать решение» только после собственной попытки. Если решение совпадает с твоим, подумай, почему оно верное; если отличается, подумай, почему два подхода дают разные результаты.
Ещё одна польза такого порядка в том, что ошибки становятся поучительными. Допустим, в задании проекта Светофор нужно растянуть жёлтый после зелёного до 1,5 секунды, но по ошибке меняется первая строка delay(300). Вместо ожидаемого ты увидишь, что длиннее становится жёлтый после красного. Такая ошибка гораздо лучше любого решения покажет, что в коде две отдельные жёлтые фазы и что loop() выполняется строка за строкой. Решение задания говорит ровно об этом: строка delay(300) в самом конце loop() превращается в delay(1500), а жёлтый после красного остаётся на 0,3 секунды.
Типы изменений: какое чему учит?
Посмотри на задания в бесплатных проектах, и станет видно, что каждое относится к одному из нескольких типов. Если узнавать тип, проще придумать собственное задание в новом проекте. Примеры в таблице взяты из реальных заданий «Твоя очередь» бесплатных проектов; строка про смену пина — эксперимент, который можно провести самостоятельно в том же проекте.
| Тип изменения | Пример | Какому понятию учит | Осторожно |
|---|---|---|---|
| Изменить число | Мигающий светодиод: сделай обе строки delay равными delay(1000); Работа с зуммером: подними частоту с 400 Hz до 1000 Hz | Единицы (мс, Hz) и то, как одно значение задаёт поведение | Время задаётся в миллисекундах: 1500 = 1,5 с. Для задания с частотой нужен пассивный зуммер |
| Изменить пин | В проекте с переключением светодиода кнопкой перенеси светодиод с D7 на D8: измени провод и строки pinMode(7, OUTPUT) и digitalWrite(7, ledState) | Связь кода со схемой; номер пина, который встречается в коде в нескольких местах | Переставляй провод при отключённом USB; меняй номер везде в коде |
| Изменить условие | Переключение кнопкой: button == 0 вместо button == 1; Ночник на LDR: порог с 50 на 300 | Сравнение, порог, обнаружение фронта | При изменении порога поведение меняется не постепенно, а скачком в определённой точке |
| Инвертировать поведение | Управление светодиодом кнопкой (удержание): светодиод обычно горит, а при нажатии гаснет | Логика HIGH и LOW, инверсия условия | Меняй либо условие, либо записываемые значения, но не то и другое сразу |
| Предел цикла | Полицейская мигалка на светодиодах: красный светодиод вспыхивает 5 раз вместо 3, for (int i = 0; i < 5; i++) | Цикл for, счётчик, число повторений | Меняй только первую строку for; синий продолжает вспыхивать 3 раза |
| Добавить нижнюю границу в выражение | Бегущие огни с регулируемой скоростью: delay(potValue + 50) вместо delay(potValue) | Использование показания в вычислении, нижняя граница | Пауза теперь от 50 до 1073 мс, поэтому за огнём легко следить даже на максимальной скорости |
Разбор блоков: то же объяснение, но с блоками
У проектов с блочным видом в разделе «Исходный код» есть переключатель Показать блоками. Включи его, и вместо кода та же программа появится в виде блоков на языке приложения, а соседняя вкладка сменит название с Разбор кода на Разбор блоков. В этом виде краткое описание, «Если не получается» и задание остаются прежними; меняется раздел «Шаг за шагом»: вместо фрагмента кода на каждом шаге видны его блоки, а нажатие на изображение открывает его на весь экран. Блочный вид есть у более чем 100 проектов, в том числе у более чем 30 бесплатных. Блоки нужны только для чтения: в приложении их нельзя редактировать или загрузить в плату, в плату всегда загружается настоящий код.
Лучше всего пользоваться «Разбором блоков», переключаясь туда и обратно между двумя видами. В проекте с кнопкой блоки шага 3 — это блок «установить button в прочитать пин 13» и два вложенных блока «если»; в коде это строка int button = digitalRead(13); и два вложенных if. Блок «установить ledState в не ledState» в шаге 4 — это в точности строка ledState = !ledState;. Сначала прочитай блок и скажи, что он делает, затем выключи переключатель и посмотри на фрагмент кода того же шага. Такое сопоставление блоков с кодом — самый надёжный путь от блочного кода к текстовому; чтобы начать тему с самого начала, загляни в статьи что такое блочный код и блок «если».
Чем «Если не получается» отличается от «Если не работает»
| Особенность | Если не получается | Если не работает |
|---|---|---|
| Где? | Внутри вкладки «Разбор кода», после «Шаг за шагом» | Отдельный раздел на странице проекта |
| Формат | Пары «симптом — решение»; в проекте с кнопкой их 5 | Упорядоченный чек-лист, который начинается с фразы «Если проект не работает, проверь шаги ниже.»; в проекте с кнопкой 10 шагов |
| Когда? | Симптом известен: «светодиод меняется сам» | Непонятно, что не так, и хочется проверить всё с самого начала |
| Фокус | Типичные ошибки, характерные для кода и схемы именно этого проекта | Общие проверки: питание, загрузка кода, номера пинов, соединения и GND |
| Доступ | В бесплатных проектах открыт для всех, в проектах Premium — с Premium | Есть более чем в 170 проектах, открывается с Premium |
На практике порядок такой: когда схема не работает, опиши симптом одним предложением и поищи его в «Если не получается». Если симптом есть в списке, решение обычно сводится к одному проводу, резистору или строке. Если его нет или предложенное решение не помогает, пройди шаги «Если не работает» по порядку: скорее всего, найдётся пропущенная базовая проверка (питание платы, правильный порт, общая земля GND). Если загвоздка на этапе загрузки, поможет статья код Arduino не загружается, а при ошибках компиляции — ошибки компиляции Arduino.
Для преподавателей: «Разбор кода» на уроке
- Совместное чтение на проекторе: В начале урока выведи экран телефона на проектор, вместе прочитайте краткое описание «Что делает этот код?» и попроси класс подытожить программу одним предложением. Затем покажи те же шаги в виде блоков, включив «Показать блоками»; для учеников, которые начинали с блоков, это станет мостиком.
- Одна группа на шаг: В проекте из 5 шагов раздели класс на 5 групп; каждая группа читает один шаг, находит фрагмент в полном коде и за две минуты объясняет его классу. Пока группа объясняет, остальные спрашивают: «А что было бы без этой строки?»
- Листок с предсказанием: Напиши задание «Твоя очередь» на доске; каждая группа перед изменением записывает своё предсказание на листке бумаги, затем меняет код и загружает его. Обсуждение разницы между предсказанием и результатом учит больше, чем само выполнение задания.
- Вопрос на выходе: В последние две минуты урока каждый отвечает на один вопрос. Примеры для проекта с кнопкой: что было бы при удержании кнопки, если бы не было lastButton? Что изменится, если удалить delay(50)? Почему светодиод может меняться сам, если убрать резистор 10 kΩ?
Планируя доступ, учти: раз в бесплатных проектах «Разбор кода» открыт для всех, ученики могут применять этот способ к проектам «Мигающий светодиод», «Светофор», «Полицейская мигалка на светодиодах» и к двум проектам с кнопкой, ничего не платя. В проектах Premium «Разбор кода» открывается с Premium; если хочется перевести класс на проекты Premium, можно раздать коды из пакетов для педагогов, а не оформлять подписку каждому ученику, как описано в статье Arduino-приложение для класса. Если хочется поделиться схемой собственной разработки, можно открыть на форуме тему в категории «Руководство»; шагов «Разбора кода» и блочного вида у неё не будет, поэтому объяснение пишется в тексте темы вручную, а код добавляется через «Добавить код» (урок на своём проекте). В приложении также нет панели, которая показывала бы, какие задания решены каждым учеником; задание проверяется на уроке — по работающей схеме или по фотографии.
Частые ошибки и простые решения
- Сразу открывать решение: Если нажать «Показать решение», едва прочитав задание, запомнится ответ, но не идея. Правило: сначала предсказание, потом попытка, потом подсказка и в самом конце решение.
- Копировать, не читая шагов: Взять код через «Копировать» и загрузить его — вариант рабочий, но если перейти к следующему проекту, не прочитав «Шаг за шагом», каждый раз придётся начинать с нуля. После загрузки прочитай хотя бы краткое описание и шаги.
- Принимать фрагмент кода за всю программу: Фрагменты — это только строки данного шага; если вставить один из них в IDE отдельно, он не скомпилируется. Всегда вноси изменения в полный код.
- Менять несколько вещей сразу: Если изменить две строки вместе и получить неожиданный результат, не понять, какая из них виновата. Одно изменение на одну загрузку.
- Менять номер пина только в одном месте: Изменить pinMode и забыть про digitalWrite или провод — одна из самых частых ошибок. Перед изменением отметь все места, где этот номер встречается в коде.
- Пропускать «Если не получается» и сразу спрашивать на форуме: Ответ часто уже есть в списке «Если не получается» этого проекта. Сначала загляни туда, потом в «Если не работает»; если проблема всё ещё не решена, спроси на форуме, приложив фото схемы и код.
- Выполнить задание и на этом остановиться: Если после сравнения с решением не сделать собственное небольшое изменение, новое знание останется привязанным к одному заданию. Выбери число, пин или условие самостоятельно.
Когда «Разбор кода» в таком порядке пройден на нескольких проектах, готовый код перестаёт быть закрытой коробкой: можно заранее сказать, какая строка за что отвечает и что будет, если её изменить. Проект «Включение и выключение светодиода кнопкой (вкл/выкл)» хорошо подходит, чтобы выработать эту привычку, потому что в коротком коде сразу видны глобальная переменная, обнаружение фронта, переключатель (toggle) и антидребезг. Если хочется попробовать, открой этот проект в приложении BlueGrays и начни с задания на вкладке «Разбор кода»; те же разделы есть во всех 60 бесплатных проектах.
Частые вопросы
Что такое «Разбор кода» в BlueGrays?
«Разбор кода» — это вкладка в разделе «Исходный код» на странице проекта BlueGrays, которая шаг за шагом объясняет код проекта. В ней есть краткое описание, пронумерованные шаги (у каждого фрагмент кода и объяснение), раздел «Если не получается» и задание «Твоя очередь» с подсказкой и решением. Эта вкладка есть у каждого проекта.
Вкладка «Разбор кода» бесплатная?
В 60 бесплатных проектах (по 20 на каждую платформу) «Разбор кода» открыт для всех: с бесплатным аккаунтом видны краткое описание, шаги, «Если не получается» и задание с решением. В проектах Premium вкладка открывается с Premium.
Как пошагово разобраться в готовом коде Arduino?
Сначала одним предложением сформулируй, что делает код, затем раздели его сверху вниз на части и запиши, что делает каждая: глобальные переменные, setup() и loop(). Обрати внимание на числа и номера пинов, затем измени одно значение и посмотри на результат на плате. «Разбор кода» даёт этот порядок в готовом виде для каждого проекта.
Как посмотреть решение задания «Твоя очередь»?
Нажми кнопку «Показать решение» под заданием: откроется блок РЕШЕНИЕ, где написано, какая строка во что превращается. Закрыть его снова можно кнопкой «Скрыть решение». Больше пользы, если сначала сделать собственную попытку, а решение открыть последним.
Что такое «Разбор блоков»?
В проектах с блочным видом при включении переключателя «Показать блоками» вкладка «Разбор кода» меняет название на «Разбор блоков». Тогда в разделе «Шаг за шагом» на каждом шаге вместо фрагмента кода видны его блоки. Блочный вид есть у более чем 100 проектов.
Разделы «Если не получается» и «Если не работает» — одно и то же?
Нет. «Если не получается» внутри «Разбора кода» — это список пар «симптом — решение», характерных для конкретного проекта; «Если не работает» — отдельный упорядоченный чек-лист на странице проекта. «Если не работает» есть более чем в 170 проектах и открывается с Premium.
Что собрать после прочтения
Все проекты
Включение и выключение светодиода кнопкой (вкл/выкл)
Нажми кнопку один раз — свет загорится, нажми ещё раз — погаснет, совсем как выключатель в твоей комнате. Arduino замечает каждое нажатие и переводит светодиод в противоположное состояние, выжидая кор

Управление светодиодом кнопкой (удержание)
Как дверной звонок: свет горит, пока ты нажимаешь, и гаснет, когда отпускаешь. Arduino всё время слушает кнопку; пока она нажата, светодиод горит, а как только ты убираешь палец, он гаснет. Эта просте

Светофор
Крошечная копия светофора, который ты каждый день видишь на дороге. Красный горит две секунды, жёлтый мигает на мгновение, зелёный горит две секунды, затем через жёлтый снова возвращается красный, и т

Мигающий светодиод
Самое первое «привет» в электронике: включение и выключение одного светодиода. Arduino включает и выключает светодиод через короткие промежутки, поэтому свет быстро мигает. Ты самым простым способом в

Полицейская мигалка на светодиодах
Как огни на полицейской машине: красный светодиод три раза быстро вспыхивает, затем три раза вспыхивает синий, и узор повторяется без перерыва. Нужны всего два светодиода и два резистора, подключённые

Ночник на LDR
Маленький ночник, который сам включается, когда темнеет, и гаснет, когда наступает утро. Датчик освещённости измеряет, насколько светло в комнате, и Arduino включает светодиод, когда достаточно темно,

Работа с зуммером
Интересно, как дверной звонок или сигнализация издают звук? Arduino заставляет маленький зуммер пищать через короткие промежутки: пик, пауза, пик, пауза. Ты видишь, как электричество превращается в зв

Бегущие огни с регулируемой скоростью
Шесть светодиодов загораются друг за другом, и кажется, что свет бежит от одного края к другому. Поверни ручку потенциометра, и скорость этого бега сразу меняется: в одну сторону свет мчится, в другую
Другие статьи
Приложение BlueGrays
Собери эту схему шаг за шагом в телефоне
Схема подключения, код и список деталей на одном экране. 200+ проектов на Arduino, ESP32 и Pico готовы к сборке.
Наведи камеру телефона
Наведи камеру на код — откроется магазин приложений на телефоне.
или открыть магазин

