Программирование Arduino с нуля: Arduino IDE, первый скетч и ночник на датчике

Ставим Arduino IDE и разбираемся, что делать, если arduino.cc из России не открывается.

Дальше первый скетч Blink, функции setup() и loop(), основы языка и ночник на датчике освещённости.

Все примеры собраны под Arduino Uno и запущены в симуляторе Wokwi.

Статью написал:
Ваня Буявец, продюсер, основатель Checkroi
Ваня Буявец
Основатель Checkroi, продюсер, эксперт в выборе онлайн-курсов
Все 2891 статья автора Подписаться на Телеграм-канал
Одобрено экспертом:
Наташа Буявец, основатель Checkroi, эксперт по онлайн-курсам
Наташа Буявец
Основательница Checkroi, продюсер Youtube-каналов, эксперт по онлайн-курсам
Все 3545 экспертных мнений Подписаться на Телеграм-канал
Обложка: Программирование Arduino с нуля: Arduino IDE, первый скетч и ночник на датчике

Arduino программируют в Arduino IDE: это бесплатная среда, где пишут код на упрощённом C++ и одной кнопкой заливают его в плату. Порядок такой: установить IDE, подключить плату по USB, выбрать её и порт в меню «Инструменты», написать скетч из функций setup() и loop() и нажать «Загрузить на плату».

Одна поправка для России: сайт arduino.cc сейчас отсюда не открывается, а Arduino IDE 2 при запуске может зависнуть. Ниже разберём, какую версию ставить и откуда её взять, соберём первый скетч и ночник, который сам включается в темноте. Если Arduino для вас первый шаг в профессию, загляните в план как стать робототехником с нуля.

CheckroiCheckroiПодборка курсов по Arduino8 курсов • 3 школыСравните цены, школы, программу и найдите выгодные предложения по обучениюСравнить→

Что понадобится для первого скетча

Рой за рабочим столом с платой Arduino Uno и ноутбуком

Набор минимальный. Для старта удобнее всего Arduino Uno или её клон: у неё встроенный светодиод на 13-м выводе, и первый скетч работает без единого провода.

Что Зачем На что обратить внимание
Плата Arduino Uno или Nano На ней выполняется программа У клонов часто стоит USB-чип CH340, ему нужен драйвер
USB-кабель Питание и загрузка скетча Кабель должен передавать данные, а не только заряжать
Компьютер с Windows, macOS или Linux Здесь пишут и компилируют код IDE 2 работает только на 64-битных системах
Arduino IDE Редактор, компилятор и загрузчик в одном окне Версию выбираем в следующем разделе
Датчик освещённости (для ночника) Мини-проект в конце статьи Модуль с выходом AO, три провода

Платы пока нет? Код можно запускать в браузерном симуляторе Wokwi: он открывается без регистрации и показывает виртуальную Uno с мигающим светодиодом и монитором порта. Все скриншоты в этой статье сделаны в нём.

Курсы, где Arduino разбирают с наставником, собраны в каталоге на странице курсов по Arduino: там видно программу, длительность и цену каждого.

Как установить Arduino IDE в России

Сейчас живут две ветки: классическая 1.8.19 (вышла 21 декабря 2021 года и больше не обновляется) и 2.3.10 от 9 июня 2026 года. Даты взяты со страницы релизов Arduino IDE на GitHub, она из России открывается.

С официальным сайтом сложнее. 11 октября 2026 года мы проверили его с сервера в России: arduino.cc, docs.arduino.cc и downloads.arduino.cc отвечают кодом 403 и страницей блокировки Cloudflare. С зарубежного адреса те же ссылки открываются нормально, то есть закрыт именно российский трафик.

Почему это важно: IDE 2 при запуске скачивает списки плат и библиотек как раз с downloads.arduino.cc. Без ответа сервера программа может бесконечно висеть на заставке.

Какую версию выбрать

Версия Плюсы Минусы Кому подойдёт
Arduino IDE 1.8.19 Запускается в России без настроек, поддержка AVR-плат (Uno, Nano, Mega) встроена Старый редактор без автодополнения, обновлений не будет Новичку с Uno или Nano
Arduino IDE 2.3.10 Подсказки кода, тёмная тема, отладчик для поддерживаемых плат Из России при запуске нужно настроить зеркало каталогов Тем, кто готов один раз выполнить скрипт

Для первого знакомства берите 1.8.19. Перейти на вторую версию можно позже: скетчи у обеих одинаковые, файлы .ino открываются в любой.

Установка по шагам

  1. Скачайте установщик. Обе версии лежат на странице Arduino IDE у Амперки: магазин хранит копии дистрибутивов и заявляет, что они идентичны официальным. Версия 2.3.10 есть и на GitHub.
  2. Windows: запустите установщик и, если он предложит поставить драйверы, согласитесь. Для флешки или компьютера без прав администратора есть ZIP-архив.
  3. macOS: распакуйте архив и перенесите Arduino в «Программы». Для 2.x выбирайте сборку под свой процессор: Intel или Apple M.
  4. Linux: для 1.8.19 распакуйте архив и запустите ./install.sh (у 2.x вместо него AppImage) и добавьте себя в группу dialout командой sudo usermod -a -G dialout $USER, иначе порт платы будет недоступен.
  5. Если поставили IDE 2 и она висит при запуске, закройте её и выполните скрипт для своей системы со страницы Амперки. Он прописывает в настройках зеркало списка плат и кладёт рядом каталог библиотек, после этого программа стартует.

Как включить русский язык

IDE сама берёт язык системы. Если интерфейс открылся на английском:

  • в 1.8.19: «Файл» → «Настройки» → список «Язык редактора»;
  • в 2.x: «Файл» → «Параметры» → выпадающий список языка.

После выбора перезапустите программу. Учтите, что переводится только интерфейс: сообщения компилятора остаются на английском, поэтому разбор частых ошибок ниже мы дали с оригинальным текстом.

Канал основателя Checkroi Вани Буявца3 700 человек читают мой Телеграм-канал про нейросетиСобрал промпты для Claude Code и ChatGPT, разборы ИИ-инструментов и лайфхаки по продвижению бизнеса в одном местеПрисоединиться

Первая программа: мигаем светодиодом

Программа для Arduino называется скетч. Любой скетч состоит минимум из двух функций, и IDE создаёт их сама, когда вы открываете новый файл:

void setup() {
  // этот код выполнится один раз после включения платы
}

void loop() {
  // а этот будет повторяться, пока на плату подано питание
}

В setup() настраивают выводы и связь с компьютером. В loop() живёт вся логика устройства: плата выполняет эту функцию по кругу, снова и снова, пока её не обесточат.

Классический первый скетч мигает встроенным светодиодом. Его можно не набирать: он лежит в «Файл» → «Примеры» → «01.Basics» → «Blink», там же десятки других готовых кодов для Ардуино с комментариями. С этой мигалки начинается почти любой учебный план, в том числе путь от Arduino до разводки плат. Вот наш вариант с комментариями:

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);     // встроенный светодиод работает как выход
}

void loop() {
  digitalWrite(LED_BUILTIN, HIGH);  // включить
  delay(1000);                      // подождать 1000 мс
  digitalWrite(LED_BUILTIN, LOW);   // выключить
  delay(1000);
}

Имя LED_BUILTIN обозначает встроенный светодиод. У Uno это вывод 13: так записано в файле описания выводов платы в ядре ArduinoCore-avr.

Как загрузить скетч в плату

  1. Подключите плату кабелем. На ней загорится индикатор питания ON.
  2. «Инструменты» → «Плата» → выберите свою модель, например Arduino Uno.
  3. «Инструменты» → «Порт» → выберите порт с платой. В Windows это COM3, COM4 и так далее, в macOS и Linux ищите строку с usbserial, usbmodem или ttyUSB.
  4. Нажмите «Проверить» (кнопка с галочкой). IDE скомпилирует код и покажет, сколько памяти он занял.
  5. Нажмите «Загрузить на плату» (стрелка вправо). После надписи «Загрузка завершена.» светодиод L начнёт мигать раз в секунду.

Под Uno этот скетч занимает 924 байта из 32 256 доступных под программу. Пустой скетч из двух функций весит 444 байта, это служебный код ядра. Памяти у Uno хватит на десятки таких программ, ограничивать начнёт скорее оперативная память на 2 048 байт.

Тот же порядок работает и для плат с Wi-Fi вроде ESP32: их добавляют в IDE через «Менеджер плат», а скетчи пишут теми же функциями. На таких платах собирают устройства умного дома, и этим уже занимаются IoT-разработчики.

Скетч Blink в симуляторе Wokwi: встроенный светодиод L на Arduino Uno горит
Скетч Blink в симуляторе Wokwi. Красная точка у буквы L на плате и есть встроенный светодиод на 13-м выводе, он загорается и гаснет раз в секунду

Чтобы повторить это в Wokwi, откройте новый проект Arduino Uno, вставьте код во вкладку sketch.ino и нажмите зелёную кнопку запуска. Плату и порт там выбирать не нужно, симулятор собирает код на своём сервере, и на бесплатном тарифе сборка иногда ждёт в очереди.

Язык Arduino: что нужно знать новичку

Отдельного «языка Ардуино» нет. Скетч написан на C++, а IDE сама добавляет к нему #include <Arduino.h> и объявления функций. Поэтому работают обычные переменные, условия, циклы и классы, а платформу добавляет набор готовых функций ядра. Кто хочет знать язык глубже, чем нужно для мигалки, может пройти курсы по C++: всё из них переносится на Arduino.

Функция Что делает Пример
pinMode(pin, mode) Назначает вывод входом или выходом pinMode(13, OUTPUT);
digitalWrite(pin, value) Подаёт на вывод 5 В (HIGH) или 0 В (LOW) digitalWrite(13, HIGH);
digitalRead(pin) Читает состояние кнопки или датчика: HIGH или LOW if (digitalRead(2) == LOW)
analogRead(pin) Читает напряжение на входах A0–A5 и возвращает число от 0 до 1023 int v = analogRead(A0);
analogWrite(pin, value) Выдаёт ШИМ от 0 до 255, например для плавной яркости analogWrite(9, 128);
delay(ms) Останавливает программу на заданное число миллисекунд delay(500);
millis() Возвращает, сколько миллисекунд прошло с включения if (millis() - t >= 1000)
Serial.begin(), Serial.println() Открывают связь с компьютером и печатают в монитор порта Serial.println(v);

Три особенности, на которых новички теряют время:

  • Регистр важен. digitalWrite и digitalwrite считаются разными именами, второго в ядре нет.
  • int на Uno занимает 2 байта, то есть вмещает числа только от −32 768 до 32 767. Для времени из millis() берите unsigned long, иначе счётчик переполнится через полминуты.
  • ШИМ есть не на всех выводах. У Uno analogWrite работает на 3, 5, 6, 9, 10 и 11, на остальных вывод будет просто включаться и выключаться.

Если вы уже писали на Си или C++, всё знакомо. Если нет, базу синтаксиса проще добрать на обычном компьютере: как поставить компилятор C на Windows, macOS и Linux, мы разбирали отдельно.

Мини-проект: ночник, который включается в темноте

Рой радуется, что самодельный ночник загорелся в темноте

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

Понадобится модуль датчика освещённости с аналоговым выходом. Подключение три провода:

  • VCC датчика → 5V на плате;
  • GND датчика → GND;
  • AO датчика → вход A0.

Роль лампы сыграет тот же встроенный светодиод на 13-м выводе. Внешний светодиод подключается к нему же через резистор 220 Ом.

const int SENSOR_PIN = A0;   // аналоговый выход датчика освещённости
const int LED_PIN = 13;      // светодиод ночника
const int THRESHOLD = 500;   // порог: выше — темно, ниже — светло

void setup() {
  pinMode(LED_PIN, OUTPUT);
  Serial.begin(9600);        // скорость монитора порта
}

void loop() {
  int light = analogRead(SENSOR_PIN);   // число от 0 до 1023
  Serial.print("Датчик: ");
  Serial.println(light);

  if (light > THRESHOLD) {
    digitalWrite(LED_PIN, HIGH);        // темно — включаем свет
  } else {
    digitalWrite(LED_PIN, LOW);         // светло — выключаем
  }
  delay(500);
}

Загрузите скетч и откройте «Инструменты» → «Монитор порта». Внизу окна выставьте скорость 9600 бод, как в Serial.begin(9600). Дважды в секунду там появится строка с показанием датчика.

В Wokwi мы прогнали скетч на двух уровнях света. При освещённости 5 люкс датчик показал 911, и светодиод L загорелся. При 500 люкс число упало до 250, и свет погас: у этого модуля чем темнее, тем больше значение.

Ночник на Arduino в Wokwi: при 5 люкс датчик освещённости показывает 911, светодиод включён
Освещённость 5 люкс. В мониторе порта внизу число 911, оно выше порога 500, поэтому светодиод L горит
Ночник на Arduino в Wokwi: при 500 люкс датчик освещённости показывает 250, светодиод выключен
Освещённость 500 люкс. Показание упало до 250, это ниже порога, и светодиод L погас

Порог 500 подобран под конкретный модуль. У разных модулей шкала своя, а у некоторых она перевёрнута: в темноте число падает. Поэтому сначала посмотрите в мониторе порта, какие значения датчик даёт днём и с закрытой ладонью, и поставьте порог посередине.

И одна деталь про память. Этот скетч занял 2 210 байт программы и 202 байта оперативной памяти против 9 у мигалки: место ушло на буферы Serial и на строку «Датчик: ». Если обернуть её в макрос F("Датчик: "), строка переедет во флеш-память, и оперативной останется на 14 байт больше. На большом проекте с десятками надписей такая мелочь решает, влезет ли программа.

Почему delay() мешает и чем его заменить

У delay() есть недостаток: на время паузы плата глохнет. Если в ночник добавить кнопку, то при delay(1000) нажатие короче секунды плата просто пропустит.

Решение: проверять часы через millis() и выполнять действие, когда подошло время, а не ждать его.

unsigned long lastToggle = 0;
bool ledOn = false;

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

void loop() {
  if (millis() - lastToggle >= 1000) {   // прошла секунда?
    lastToggle = millis();
    ledOn = !ledOn;
    digitalWrite(LED_BUILTIN, ledOn ? HIGH : LOW);
  }
  // здесь можно опрашивать кнопку или датчик: плата не стоит на паузе
}

Светодиод мигает так же, раз в секунду, но loop() теперь крутится без остановок. Так пишут почти все реальные устройства, где одновременно опрашиваются датчики и что-то показывается на экране. Если хочется копнуть, как плата исполняет такой код на уровне железа, начните с обзора профессии программиста микроконтроллеров.

Ваня БуявецКанал основателя Checkroi Вани БуявцаЗабирайте промпты и обучение по нейросетям в моём Телеграм-каналеБольше 3 700 человек уже применяют Claude Code, ChatGPT и другие нейросети в работе, учёбе, бизнесе и жизниПерейти в канал

Как подключить библиотеку в Arduino IDE

Плата Arduino, датчики, провода и макетная плата разложены на столе

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

Способ Где в меню Когда подходит
Менеджер библиотек 1.8.19: «Скетч» → «Подключить библиотеку» → «Управлять библиотеками…»; 2.x: значок книг слева или тот же путь, пункт «Управление библиотеками…» Поиск по названию и установка в один клик
Архив ZIP «Скетч» → «Подключить библиотеку» → «Добавить .ZIP библиотеку…» Библиотека скачана с GitHub архивом
Вручную Распаковать папку в libraries внутри папки скетчей и перезапустить IDE Когда первые два способа не сработали

После установки библиотека подключается строкой #include в начале скетча, а её примеры появляются в «Файл» → «Примеры».

Особенность для России: каталог менеджера библиотек тоже лежит на downloads.arduino.cc, поэтому список может не загрузиться. Скрипт из раздела установки заодно кладёт копию этого каталога в папку данных Arduino15. Или скачайте архив с GitHub автора и поставьте его как ZIP.

Частые ошибки и что с ними делать

Ниже настоящие сообщения компилятора: мы специально внесли эти ошибки в скетч Blink и собрали его под Uno.

Что видите Причина Что сделать
expected ';' before '}' token Пропущена точка с запятой Смотрите строку выше указанной: компилятор замечает пропуск только на следующей
'digitalwrite' was not declared in this scope Опечатка или неверный регистр в имени функции Сверьте написание, компилятор часто сам подсказывает верное в строке suggested alternative
Пункт «Порт» серый или в нём нет платы Кабель только для зарядки или не стоит драйвер USB-чипа Возьмите другой кабель; для клонов с CH340 поставьте драйвер с сайта производителя WCH
avrdude: stk500_getsync(): not in sync Выбрана не та плата или процессор Для старых клонов Nano: «Инструменты» → «Процессор» → «ATmega328P (Old Bootloader)»
В мониторе порта кракозябры Скорость в окне не совпадает с Serial.begin() Выставьте ту же цифру, обычно 9600 или 115200
IDE 2 висит на заставке Нет ответа от downloads.arduino.cc Скрипт с зеркалом каталогов из раздела установки или версия 1.8.19

Английский лог пугает только первые пару недель. Если хочется подсказок на русском, есть российская среда Trema IDE: она открывает те же файлы .ino и объясняет ошибки сборки по-русски, но версии для macOS у неё нет.

Где освоить Arduino системно

Мигалка и ночник занимают первые полчаса. Дальше начинаются датчики по протоколам I2C и SPI, прерывания, работа с памятью и пайка собственных плат, и здесь самоучители уже заметно медленнее курса с наставником, который проверит схему.

Ниже курсы, где Arduino в программе. Шире смотрите подборки по робототехнике и программированию микроконтроллеров.

КурсШколаСтоимость со скидкойВ рассрочкуДлитель­ностьОбзор курса от Checkroi
Профессия Инженер умного дома
Перейти на сайт курса
SkillboxSkillbox173 055 ₽5082 ₽/мес.15 месяцевОбзор курса
Робототехника
Перейти на сайт курса
Академия СинергияАкадемия Синергия19 900 ₽1658 ₽/мес.3 месяцаОбзор курса
Преподавание робототехники в системе общего и дополнительного образования
Перейти на сайт курса
НИУДПО имени К.Д. Ушинского (НИИДПО)НИУДПО (НИИДПО)7000 ₽1750 ₽/мес.5 недельОбзор курса
C++ для робототехников
Перейти на сайт курса
SkillboxSkillbox30 294 ₽ - 1 месяцОбзор курса
Электроника и схемотехника
Перейти на сайт курса
SkillboxSkillbox55 000 ₽ - 1 месяцОбзор курса

Больше программ — в полном каталоге курсов по Arduino

Часто задаваемые вопросы

На каком языке программируют Arduino?

На C++. Отдельного языка нет: IDE добавляет к скетчу заголовок Arduino.h с готовыми функциями вроде pinMode(), digitalWrite() и analogRead(), а дальше работают обычные переменные, условия, циклы и классы C++.

Где скачать Arduino IDE, если сайт arduino.cc не открывается?

Версия 2.x выложена на странице релизов на GitHub, обе ветки (1.8.19 и 2.x) лежат на странице Амперки. Магазин заявляет, что файлы идентичны официальным.

Почему Arduino IDE 2 висит при запуске?

При старте она скачивает списки плат и библиотек с downloads.arduino.cc, а этот адрес из России отвечает ошибкой 403. Помогает скрипт, который прописывает зеркало каталогов (он есть на той же странице загрузки), или установка версии 1.8.19: ей для работы с Uno и Nano сеть не нужна.

Можно ли учиться программировать Arduino без платы?

Да. Симулятор Wokwi открывается в браузере без регистрации: в нём есть виртуальная Uno, датчики, светодиоды и монитор порта. Скетч оттуда потом без изменений загружается в настоящую плату.

Как сделать Arduino IDE на русском?

В 1.8.19 откройте «Файл» → «Настройки» и выберите язык в списке «Язык редактора», в 2.x путь «Файл» → «Параметры». После перезапуска меню будет на русском, но сообщения компилятора останутся английскими.

Как установить библиотеку в Arduino IDE?

Через «Скетч» → «Подключить библиотеку» → «Управлять библиотеками...» найдите её по названию и нажмите «Установить». Если список не загружается, скачайте архив библиотеки и добавьте его пунктом «Добавить .ZIP библиотеку...» в том же меню.

Читайте Checkroi первым в Google
Добавьте Checkroi в избранные источники — и наши разборы курсов и обзоры школ будут показываться выше в вашей выдаче Google.
Оставить комментарий
0 комментариев
Форма комментария

Оставьте комментарий

Напишите, что думаете. Нам важно ваше мнение!