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

Основные команды Arduino: шпаргалка для быстрого старта

8 min read Встраиваемые системы Обновлено 02 Jan 2026
Шпаргалка по основным командам Arduino
Шпаргалка по основным командам Arduino

Макет платы Arduino с микроконтроллером, проводами и светодиодом на макетной плате

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

Что вы найдёте в этой статье

  • Полный перевод и объяснение базовых команд Arduino
  • Примеры кода: мигалка (blink), чтение аналогового датчика, серво
  • Чек-листы для новичка, тесты приёмки и заметки по совместимости плат (5V/3.3V)
  • Альтернативы Arduino и случаи, когда Arduino не подойдёт
  • Краткая методология разработки простых проектов

Структура программы Arduino

Arduino-скетч обычно состоит из двух обязательных функций:

  • void setup() { } — выполняется один раз при старте. Используется для настройки пинов, запуска последовательной связи и т.д.
  • void loop() { } — выполняется непрерывно после setup(). Содержит основной код программы.

Пример структуры

void setup() {
  // настройка пинов и служб
}

void loop() {
  // основной цикл
}

Полезные инструменты IDE

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

Встроенные функции Arduino — перечисление и перевод

КомандаОписание
pinMode(PIN_NUMBER, INPUT/OUTPUT)Устанавливает режим пина: INPUT (вход) или OUTPUT (выход).
pinMode(PIN_NUMBER, INPUT_PULLUP)Включает внутренний подтягивающий резистор для входа.
digitalRead(PIN_NUMBER)Читает цифровое значение пина: HIGH (1) или LOW (0).
digitalWrite(PIN_NUMBER, VALUE)Записывает HIGH или LOW на цифровой пин.
analogRead(PIN_NUMBER)Читает значение с аналогового пина, возвращает целое 0–1023 (на большинстве плат).
analogWrite(PIN_NUMBER, VALUE)Эмулирует аналоговый выход с помощью ШИМ (PWM). Доступно только на пинах с поддержкой PWM (обычно 3, 5, 6, 9, 10, 11 для классического Uno).
analogReference(DEFAULT)Использовать опорное напряжение по умолчанию (5V или 3.3V в зависимости от платы).
analogReference(INTERNAL)Использовать внутреннее опорное напряжение (напр., 1.1V для ATmega168/328p).
analogReference(EXTERNAL)Использовать внешнее опорное напряжение, поданное на пин AREF (обычно 0–5V).
millis()Возвращает время в миллисекундах с момента старта скетча (unsigned long).
micros()Возвращает время в микросекундах с момента старта скетча (unsigned long).
delay(INTEGER)Приостанавливает выполнение программы на INTEGER миллисекунд.
delayMicroseconds(INTEGER)Приостанавливает выполнение на INTEGER микросекунд.
min(i, j)Возвращает меньшее из двух значений i и j.
max(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)Устанавливает зерно для генератора случайных чисел.
(type)variableЯвное приведение типа: приводит variable к типу type.

Последовательная связь (Serial)

КомандаОписание
Serial.begin(speed)Запускает последовательную связь с указанной скоростью (baud).
Serial.end()Закрывает последовательную связь.
Serial.print(DATA)Печатает DATA в последовательный порт (символы, строки, числа).
Serial.available()Возвращает количество доступных для чтения символов в буфере.
Serial.read()Читает первый доступный символ в буфере (возвращает -1, если данных нет).
Serial.write(DATA)Пишет DATA в буфер, можно отправлять массивы байт.
Serial.flush()Очищает буфер исходящих данных после завершения отправки.

Работа с сервоприводом (подключение Servo.h)

КомандаОписание
Servo myServoСоздаёт переменную myServo типа Servo (не забудьте #include ).
myServo.attach(PIN_NUMBER)Привязывает объект сервопривода к цифровому пину.
myServo.write(angle)Устанавливает угол (0–180) для сервопривода.
myServo.writeMicroseconds(uS)Устанавливает положение сервопривода в микросекундах (обычно 1000–2000, 1500 — центр).
myServo.read()Возвращает текущий угол сервопривода (0–180).
myServo.attached()Возвращает true, если сервопривод прикреплён к пину.
myServo.detach()Отвязывает сервопривод от пина.

Практические примеры

1) Простая мигалка (Blink)

const int LED_PIN = 13; // встроенный светодиод на многих платах

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

void loop() {
  digitalWrite(LED_PIN, HIGH);
  delay(500); // ждем 500 мс
  digitalWrite(LED_PIN, LOW);
  delay(500);
}

Объяснение: pinMode() настраивает пин как выход. digitalWrite() включает и выключает светодиод. delay() задаёт паузу.

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

const int SENSOR_PIN = A0;

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

void loop() {
  int raw = analogRead(SENSOR_PIN);
  float voltage = raw * (5.0 / 1023.0); // при 5V базе
  Serial.print("ADC=");
  Serial.print(raw);
  Serial.print("  V=");
  Serial.println(voltage);
  delay(250);
}

Заметка: если у вас плата 3.3V, используйте 3.3 вместо 5.0 при расчёте напряжения.

3) Управление серво

#include 

Servo myServo;

void setup() {
  myServo.attach(9);
  myServo.write(90); // установить в центр
}

void loop() {
  myServo.write(0);
  delay(1000);
  myServo.write(180);
  delay(1000);
}

Чек-лист для новичка (быстрый старт)

  • Выберите плату: UNO, Nano, Mega, Leonardo, или плата на 3.3V (например, Pro Mini 3.3V).
  • Установите Arduino IDE (или альтернативы: PlatformIO, Arduino CLI).
  • Подключите плату по USB.
  • В меню IDE выберите корректную плату и порт.
  • Откройте пример Blink и загрузите его (Upload).
  • Используйте Serial Monitor для отладки (Serial.begin и Serial.print).

Совместимость плат и важные замечания

  • Напряжение: некоторые платы работают от 5V, другие — от 3.3V. Подайте питание и подключайте датчики в соответствии с напряжением платы.
  • Аналоговые разрешения: классический Arduino Uno даёт 10-битное значение (0–1023). Некоторые платы и микроконтроллеры имеют иные разрешения.
  • Пины PWM: на платах UNO поддержка analogWrite доступна только на определённых цифровых пинах (обычно 3, 5, 6, 9, 10, 11).
  • Аппаратные таймеры, прерывания и скорость Serial могут отличаться между микроконтроллерами.

Важно: проверяйте документацию вашей конкретной платы при подключении датчиков и исполнительных устройств.

Когда Arduino не подойдёт — контрпримеры

  • Требуется реальное многозадачное поведение с жёсткими временными ограничениями (RTOS/микроконтроллеры с поддержкой аппаратного MPU предпочтительнее).
  • Нужна повышенная производительность (высокоскоростная обработка сигналов) — используйте более мощные MCU или FPGA.
  • Сложная потребность в энергоэффективности для батарейных устройств на годах — стоит рассмотреть специализированные микроконтроллеры с глубокими режимами сна.

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

  • PlatformIO — современная среда разработки с поддержкой множества плат и библиотек.
  • Arduino Pro Mini, ESP8266, ESP32 — альтернативы с Wi‑Fi/Bluetooth и большей производительностью.
  • STM32 (ARM) — вариант для перехода на 32‑битные MCU.
  • Raspberry Pi / Linux SBC — если нужен полноценный ОС и высокий уровень вычислений.

Ментальные модели и эвристики при разработке

  • Разделяй и властвуй: сначала проверяй питание и базовую связь (blink, serial), затем добавляй периферию.
  • Проверка по шагам: hardware → wiring → simple code → integration.
  • Избегай одновременных изменений аппаратуры и ПО — вносите по одному изменению и тестируйте.

Краткая методология для простого проекта (микро-SOP)

  1. Определите цель и требования (частота опроса датчика, время отклика, питание).
  2. Выберите плату и датчики, убедитесь в совместимости напряжений.
  3. Подключите минимальную конфигурацию (питание, земля, сигнальные линии).
  4. Напишите минимальный тест (blink, чтение ADC, Serial.print).
  5. Итеративно добавляйте функциональность и тестируйте.
  6. Оформите итоговый скетч комментариями и схемой подключения.

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

  • Скетч загружается на выбранную плату без ошибок.
  • Базовая проверка: LED мигает по заданному интервалу.
  • Для датчиков: значения в Serial Monitor соответствуют ожидаемому диапазону.
  • Для сервоприводов: механика выдерживает тестовые углы без заеданий.

Типичные тесты/acceptance (короткий перечень)

  • Проверка питания: измерить напряжение на 5V/3.3V пинах.
  • Проверка целостности проводки: continuity тест мультиметром.
  • Функциональный тест: успешная загрузка и вывод в Serial Monitor.

Короткий глоссарий (1 строка каждый)

  • Скетч: программа, написанная для Arduino.
  • PWM: широтно-импульсная модуляция, имитирует аналоговый уровень.
  • AREF: вход внешнего опорного напряжения для АЦП.
  • Baud: скорость обмена по последовательному порту.

Полезные шаблоны и приёмы (cheat sheet)

  • Быстрое преобразование ADC в вольты: voltage = raw * (Vref / 1023.0);
  • Защита входа: если подключаете датчик 5V к 3.3V-входу — используйте делитель напряжения.
  • Дебаг по Serial: добавляйте Serial.print в ключевых местах, избегайте частых вызовов в tight loop без задержки.

Риски и способы их смягчения

  • Переполюсовка питания — всегда проверяйте выводы и используйте поляризованные разъёмы.
  • Слишком большая нагрузка на пин — используйте транзисторы/драйверы для нагрузки свыше 20–40 мА.
  • Электростатические разряды — храните плату в антистатическом пакете и заземляйте себя.

Краткие предложения для социальных превью

  • OG title: “Шпаргалка по основным командам Arduino — быстрое руководство”
  • OG description: “Перевод и объяснение базовых команд Arduino, примеры кода, чек-листы и советы по совместимости плат.”

Заключение

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

Важно: всегда сверяйтесь с документацией вашей конкретной платы и используемых сенсоров.


Вложение: скачиваемая версия этой шпаргалки доступна партнёру по распространению (если доступ предоставлен): скачайте PDF “Essential Arduino Commands Cheat Sheet” для печати и офлайн‑использования.

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

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

Google Nest Thermostat — установка и советы
Умный дом

Google Nest Thermostat — установка и советы

Bluebugging: как работает и как защититься
Кибербезопасность

Bluebugging: как работает и как защититься

Программирование термостата Google Nest
Умный дом

Программирование термостата Google Nest

Как распознать вредоносные вложения в почте
Кибербезопасность

Как распознать вредоносные вложения в почте

Как понять, взломан ли ваш Wi‑Fi и как защититься
Безопасность Wi-Fi

Как понять, взломан ли ваш Wi‑Fi и как защититься

Защита от инсайдерских атак с программами‑вымогателями
Кибербезопасность

Защита от инсайдерских атак с программами‑вымогателями