Гид по технологиям

Шпаргалка по основным командам Arduino

8 min read Embedded Обновлено 09 Jan 2026
Шпаргалка по основным командам Arduino
Шпаргалка по основным командам Arduino

Arduino плата рядом с ноутбуком и USB-кабелем

Введение

Изучение встроенной (embedded) разработки обычно требует серьёзного времени и знаний электроники. Помимо понимания электрических схем, программирование микроконтроллеров требует уверенных навыков программирования. Arduino облегчает вход в мир встроенных систем: плата, простая IDE и библиотека команд позволяют быстро переходить от идеи к работающему устройству.

Эта шпаргалка собрала базовые команды и шаблоны, которые понадобятся для начала. Ниже — разъяснения, примеры, советы по отладке и краткие методологии для быстрого старта.

Important: Перед подключением внешних датчиков и моторов убедитесь, что питание и уровни сигналов совпадают с вашей платой (5 В или 3.3 В).

Основные команды Arduino

Панель инструментов Arduino IDE
VerifyПроверяет скетч и сообщает об ошибках компиляции
UploadКомпилирует и загружает скетч на плату через USB
NewОткрывает новый пустой скетч
OpenОткрывает список сохранённых скетчей в файловом браузере
SaveСохраняет текущий скетч
Serial MonitorОткрывает монитор последовательного порта в новом окне

| Структура программы Arduino | | void setup() { } | Выполняется один раз при старте | | void loop() { } | Выполняется циклично после setup | | Встроенные функции Arduino | | Настройка пинов | | pinMode(PIN_NUMBER, INPUT/OUTPUT) | Устанавливает пин PIN_NUMBER как INPUT или OUTPUT | | pinMode(PIN_NUMBER, INPUT_PULLUP) | Устанавливает пин как вход с внутренним подтягивающим резистором | | digitalRead(PIN_NUMBER) | Читает цифровой вход PIN_NUMBER (возвращает HIGH или LOW) | | digitalWrite(PIN_NUMBER, VALUE) | Записывает HIGH или LOW на цифровой пин PIN_NUMBER | | analogRead(PIN_NUMBER) | Читает аналоговый пин PIN_NUMBER, возвращает целое 0–1023 | | analogWrite(PIN_NUMBER, VALUE) | Эмулирует аналоговый выход с ШИМ на PIN_NUMBER (обычно 0–255; доступно не на всех пинах) | | analogReference(DEFAULT) | Использует опорное напряжение по умолчанию (5 В или 3.3 В в зависимости от платы) | | analogReference(INTERNAL) | Использует внутреннее опорное напряжение (например, 1.1 В на ATmega168/328p) | | analogReference(EXTERNAL) | Использует напряжение на выводе AREF как опорное (только 0–5 В) | | Функции времени | | millis() | Время в миллисекундах с момента старта скетча (unsigned long) | | micros() | Время в микросекундах с момента старта скетча (unsigned long) | | delay(INTEGER) | Приостанавливает выполнение на INTEGER миллисекунд | | delayMicroseconds(INTEGER) | Приостанавливает выполнение на INTEGER микросекунд | | Математические функции | | min(i, j) | Возвращает наименьшее из i и j | | max(i, j) | Возвращает наибольшее из i и j | | abs(i) | Модуль числа i | | sin(angle) | Синус угла в радианах | | cos(angle) | Косинус угла в радианах | | tan(angle) | Тангенс угла в радианах | | sqrt(i) | Квадратный корень из i | | pow(base, exponent) | base в степени exponent | | constrain(i, minval, maxval) | Ограничивает i в диапазоне [minval, maxval] | | map(val, fromL, fromH, toL, toH) | Перекладывает val из одного диапазона в другой | | random(i) | Случайное целое от 0 до i-1 | | random(i, j) | Случайное целое между i и j-1 | | randomSeed(k) | Инициализация генератора случайных чисел значением k | | Приведение типов | | (type)variable | Приведение переменной к новому типу | | Последовательная связь (Serial) | | Serial.begin(speed) | Запуск последовательной связи на указанной скорости (baud) | | Serial.end() | Отключение последовательной связи | | Serial.print(DATA) | Вывод DATA в последовательный порт (символы, строки, числа) | | Serial.available() | Количество доступных байтов для чтения в буфере | | Serial.read() | Чтение первого байта из буфера (возвращает -1 при отсутствии данных) | | Serial.write(DATA) | Запись DATA в буфер (байт, массив) | | Serial.flush() | Очищает исходящий буфер после завершения передачи | | Сервоприводы (требуется #include ) | | Servo myServo | Создаёт переменную myServo типа Servo | | myServo.attach(PIN_NUMBER) | Привязывает myServo к пину PIN_NUMBER | | myServo.write(angle) | Устанавливает угол 0–180 градусов | | myServo.writeMicroseconds(uS) | Передаёт значение в микросекундах (обычно 1000–2000, 1500 — середина) | | myServo.read() | Возвращает текущий угол 0–180 | | myServo.attached() | true, если сервопривод прикреплён к пину | | myServo.detach() | Отсоединяет сервопривод от пина | | myServo.detach() | Отсоединяет сервопривод от пина |

Быстрая методология — как начать (mini-methodology)

  1. Выберите плату и узнайте напряжение логики (5 В или 3.3 В).
  2. Установите Arduino IDE или альтернативу (см. секцию “Альтернативы”).
  3. Подключите плату к компьютеру через USB и выберите правильную плату и COM-порт в IDE.
  4. Откройте пример Blink: File → Examples → 01.Basics → Blink. Нажмите Verify, затем Upload.
  5. Проверьте последовательный порт через Serial Monitor для отладки.
  6. Добавляйте датчики/модули по одному, тестируя каждый шаг.

Быстрые примеры кода

Простой Blink (мигающий светодиод):

void setup() {
  pinMode(13, OUTPUT); // Встроенный светодиод на многих платах
}

void loop() {
  digitalWrite(13, HIGH);
  delay(500);
  digitalWrite(13, LOW);
  delay(500);
}

Чтение аналогового датчика и вывод в Serial:

void setup() {
  Serial.begin(9600);
}

void loop() {
  int val = analogRead(A0);
  Serial.println(val);
  delay(200);
}

Привязка сервопривода и установка угла:

#include 
Servo myServo;

void setup() {
  myServo.attach(9);
  myServo.write(90); // центр
}

void loop() {
  // управление по логике проекта
}

Отладка и частые ошибки — когда это не работает

  • Плата не появляется в списке портов: проверьте кабель (не все USB-кабели поддерживают передачу данных), драйверы и питание.
  • Ошибки компиляции: проверьте выбор платы и версию ядра; некоторые функции зависят от модели микроконтроллера.
  • Аналоговое чтение даёт постоянные значения: проверьте заземление (GND) и правильность подключения AREF, если вы используете внешний эталон.
  • ШИМ не работает на пине: не все цифровые пины поддерживают analogWrite — проверьте список пинов вашей платы.
  • Серво дергается: возможно, питание серво требует отдельного источника с общей землёй; не питать мощные сервоприводы от 5V пина USB без расчёта тока.

Альтернативные подходы и инструменты

  • PlatformIO — современная среда разработки с поддержкой множества фреймворков и управления зависимостями.
  • Arduino Web Editor — работает в браузере, синхронизирует проекты в облаке.
  • CircuitPython/MicroPython — интерпретируемые языки для микроконтроллеров (альтернатива C/C++ для быстрых прототипов).

Когда выбор Arduino наиболее уместен: быстрый прототип, большая база примеров и библиотек, обширное сообщество. Когда Arduino не подходит: требуется жёсткая оптимизация по памяти/производительности или специфичный реальное-временное ПО.

Модели мышления и эвристики

  • «Прототипируй быстро, оптимизируй позже»: сначала добейтесь функциональности на Arduino, затем думайте о переносе на более узконаправленную платформу.
  • Минимальное действие за цикл: loop() должен выполнять минимальный объём работы; для длительных задержек используйте millis() и конечные автоматы.
  • Разделяй аппаратную и программную части: тестируйте датчики и исполнительные механизмы отдельно перед интеграцией.

Роли и чек-листы

Начинающий

  • Установить IDE, выбрать плату и порт.
  • Запустить пример Blink.
  • Прочитать аналоговый датчик и вывести в Serial.

Преподаватель / наставник

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

Мейкер / инженер аппаратной части

  • Проверить уровни логики, использовать буферы/уровневые преобразователи при необходимости.
  • Оценить потребление и наличие шумов на питании при подключении моторов/серво.

Критерии приёмки

  • Скетч компилируется без ошибок для выбранной платы.
  • Устройство стабильное в течение запланированного времени теста (например, 1 час) без перегрева.
  • Показания сенсоров лежат в ожидаемом диапазоне и не дребезжат (фильтрация/усреднение при необходимости).

Факт-бокс: ключевые числа и заметки

  • Аналоговое чтение: 0–1023 (10-битный A/D в большинстве классических плат).
  • PWM через analogWrite: обычно значение 0–255 (8 бит); доступно не на всех пинах.
  • Типичный диапазон управления сервоприводом в микросекундах: ~1000–2000, 1500 — центр.
  • millis() и micros() возвращают unsigned long; аккуратно с переполнением при длительной работе.

Шаблон для тестирования функций (acceptance test)

  1. Проверка цифрового вывода: установить LED, переключать состояние, подтвердить наличие сигнала осциллографом/мультиметром.
  2. Проверка аналогового входа: подать опорное напряжение и убедиться в корректном считывании 0–1023.
  3. Проверка Serial: отправить и получить строку через Serial Monitor.
  4. Проверка сервопривода: команда write(0), write(90), write(180) — проверка физического движения.

Совместимость, миграция и советы по локальному рынку

  • В локальной рознице доступны как классические платы (UNO, Nano), так и совместимые клоны. Обратите внимание на чип USB-UART (CH340 vs ATmega16U2) — для некоторых потребуется установка драйвера под Windows.
  • При покупке модулей — датчики и сервомоторы часто рассчитаны на 5 В; для плат 3.3 В нужна проверка или преобразователь уровней.

Краткое резюме

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

Summary:

  • Освойте pinMode, digitalRead/Write, analogRead/Write, Serial и базовые временные функции.
  • Тестируйте по одному компоненту и фиксируйте результаты.
  • Используйте альтернативные среды, если проект выходит за рамки простого прототипирования.

Если вы новичок — выберите плату и начните с Blink. Чем больше вы практикуете, тем быстрее поймёте модели поведения микроконтроллера и особенности электроники.

Short announcement: Начните создавать собственные проекты уже сегодня — загрузите примеры из Arduino IDE и протестируйте базовые команды на практике.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Градиенты в Canva: добавить и настроить
Дизайн

Градиенты в Canva: добавить и настроить

Ошибка Disabled accounts can't be contacted в Instagram
Социальные сети

Ошибка Disabled accounts can't be contacted в Instagram

Генерация случайных чисел в Google Sheets
Google Таблицы

Генерация случайных чисел в Google Sheets

Прокручиваемые скриншоты в Windows 11
Windows

Прокручиваемые скриншоты в Windows 11

Как установить корпусной вентилятор в ПК
Железо

Как установить корпусной вентилятор в ПК

Check In в iOS 17: настройка и безопасность
How-to

Check In в iOS 17: настройка и безопасность