Первые шаги · статья

Первая программа для Arduino

Классика жанра — мигаем встроенным светодиодом. Разберём пример Blink построчно: что такое setup() и loop(), как собрать программу, загрузить её в плату и что изменить, чтобы поэкспериментировать.

Что понадобится

  • Программа. Trema IDE — русская среда для Arduino-совместимых плат, дома бесплатна. Как поставить — инструкция по установке.
  • Плата. Подойдёт любая Arduino-совместимая: Uno, Nano, Mega, российская ELBEAR ACE-UNO. Ничего паять не нужно — светодиод уже есть на самой плате.
  • Кабель USB — обязательно «с данными», а не только для зарядки.

Платы под рукой нет? Не беда: написать и проверить программу можно и без неё — просто пропустите шаг с загрузкой.

Шаг 1. Откройте пример Blink

В Trema IDE нажмите «Новый проект» и выберите «Выбрать из примеров». В разделе «01. Основы» найдите Blink — «Мигает встроенным светодиодом платы». Все встроенные примеры переведены: у каждой строки — русский комментарий.

Каталог встроенных примеров Arduino в Trema IDE, раздел Основы с примером Blink
Пример Blink живёт в разделе «01. Основы».

Код целиком

/*
  Blink — «Маячок»

  Мигает встроенным светодиодом платы: секунду горит, секунду не горит.
  Это самый первый пример для проверки, что плата работает
  и прошивка загружается.

  Схема подключения: не требуется — используется светодиод на самой плате.
*/

// Функция setup() выполняется один раз — при включении платы или после сброса.
void setup() {
  pinMode(LED_BUILTIN, OUTPUT);  // Настраиваем пин встроенного светодиода как выход.
}

// Функция loop() повторяется снова и снова, пока плата включена.
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);  // Высокий уровень — светодиод загорается.
  delay(1000);                      // Ждём 1000 миллисекунд (одну секунду).
  digitalWrite(LED_BUILTIN, LOW);   // Низкий уровень — светодиод гаснет.
  delay(1000);                      // Снова ждём секунду.
}

Как это работает

Каждая программа для Arduino состоит из двух обязательных функций:

  • setup() выполняется один раз при включении платы. Здесь мы говорим плате, что пин со встроенным светодиодом (LED_BUILTIN) будет выходом — мы будем подавать на него напряжение.
  • loop() повторяется бесконечно, пока плата включена. Внутри — четыре команды: включить светодиод, подождать секунду, выключить, снова подождать. Получается мигание.

Команда digitalWrite(LED_BUILTIN, HIGH) подаёт на пин «высокий уровень» — светодиод загорается. delay(1000) останавливает программу на 1000 миллисекунд, то есть на одну секунду.

Шаг 2. Проверьте программу

Нажмите кнопку «Проверить» (галочка в верхней панели). Программа соберёт прошивку и напишет в консоли, сколько памяти она занимает. Первая сборка длится минуту-другую — компилируется ядро платы, дальше будет быстрее.

Успешная сборка первой программы для Arduino в Trema IDE
Сборка прошла: прошивка занимает меньше трёх процентов памяти Uno.

Если вместо успеха появилась ошибка — над консолью будет русская карточка с объяснением. Самые частые случаи мы разобрали в статье про ошибки компиляции.

Шаг 3. Загрузите в плату

Подключите плату по USB, выберите её модель и порт в верхней панели (если порта нет — поставьте драйвер) и нажмите кнопку загрузки. Через несколько секунд светодиод на плате начнёт мигать: секунда горит, секунда — нет.

Что покрутить дальше

  • Замените delay(1000) на delay(100) — светодиод замигает в десять раз быстрее.
  • Сделайте паузы разными: например, 200 миллисекунд «горит» и 800 «не горит» — получится короткая вспышка, как у маяка.
  • Загляните в другие примеры раздела «Основы»: Fade плавно меняет яркость, а DigitalReadSerial читает кнопку.

Вопросы

Частые вопросы новичков

Что-то не получается? Напишите в поддержку

Нужна ли плата, чтобы попробовать?

Написать и собрать программу можно без платы — кнопка «Проверить» покажет, что код верный. А чтобы увидеть мигающий светодиод, понадобится любая Arduino-совместимая плата, например Uno или Nano.

Почему именно мигание светодиодом?

Это традиция мира Arduino: пример Blink — самый короткий способ убедиться, что среда, плата и кабель работают. Встроенный светодиод есть почти на каждой плате, ничего паять не нужно.

Что менять в программе, чтобы поэкспериментировать?

Начните с числа в delay(1000) — это миллисекунды. Поставьте 100, и светодиод замигает в десять раз быстрее. Затем попробуйте разные значения для «горит» и «не горит» — получится неровное мигание, как маяк.

Скетч не собирается — что делать?

Прочитайте сообщение над консолью: Trema IDE объясняет ошибки по-русски и показывает строку, где проблема. Чаще всего это потерянная точка с запятой или опечатка в имени функции.

Готовы попробовать?

Скачайте Trema IDE — пример Blink уже внутри, интернет не нужен. Все статьи — в базе знаний, раздел «Примеры и обучение».