Перейти к основному содержимому

Краткая шпаргалка

Основные группы команд Arduino

Эта страница нужна как быстрый справочник по материалам раздела. За подробностями лучше возвращаться к соответствующим статьям и официальной документации Arduino.

Где искать справку

РесурсЧем полезенКак использовать в разделе
Arduino Docsофициальный справочник языка и функций Arduinoпроверять синтаксис, параметры и особенности плат
Arduino.ruрусскоязычный справочник базовых командбыстро вспомнить назначение команды
Амперка Википрактические статьи по модулям и подключениюсверять схемы и примеры с реальными устройствами
AlexGyverпрактические уроки и прикладные приёмыбрать идеи проектов и сравнивать реализации
iarduinoматериалы по датчикам, модулям и библиотекамсмотреть примеры для конкретных модулей

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

КомандаМинимальный примерДля чего
void setup()void setup() { }код однократной настройки
void loop()void loop() { }повторяющийся код программы
pinMode()pinMode(13, OUTPUT);выбрать режим цифрового пина
digitalWrite()digitalWrite(13, HIGH);установить HIGH или LOW на выходе
digitalRead()int x = digitalRead(7);прочитать цифровой вход
analogRead()int x = analogRead(A0);прочитать код АЦП
analogWrite()analogWrite(9, 120);задать PWM-команду на подходящем пине
delay()delay(1000);остановить выполнение на время в миллисекундах
millis()unsigned long t = millis();узнать время с момента запуска
Serial.begin()Serial.begin(9600);запустить обмен с Serial Monitor
Serial.print()Serial.print("x=");вывести без обязательного переноса строки
Serial.println()Serial.println(x);вывести и закончить строку
Serial.available()if (Serial.available() > 0) { }проверить, пришли ли данные
Serial.read()int b = Serial.read();прочитать один байт из Serial
map()int y = map(x, 0, 1023, 0, 255);линейно пересчитать диапазон
constrain()x = constrain(x, 0, 1023);ограничить значение сверху и снизу
tone()tone(8, 1000);включить простой звуковой сигнал
noTone()noTone(8);выключить сигнал tone()
attachInterrupt()attachInterrupt(digitalPinToInterrupt(2), onPulse, RISING);вызвать обработчик по внешнему событию
Wire.begin()Wire.begin();запустить I2C
Wire.requestFrom()Wire.requestFrom(0x27, 1);запросить байты у I2C-устройства
Wire.write()Wire.write(value);отправить байт в I2C
Wire.read()int b = Wire.read();прочитать байт из I2C
SPI.begin()SPI.begin();запустить SPI
SPI.transfer()byte r = SPI.transfer(0x00);передать и принять байт SPI

Частые шаблоны

ЗадачаПример
мигание LEDdigitalWrite(13, HIGH); delay(500); digitalWrite(13, LOW); delay(500);
чтение кнопки с подтяжкойbool pressed = digitalRead(7) == LOW;
чтение датчикаint raw = analogRead(A0);
перевод АЦП в PWMint pwm = map(raw, 0, 1023, 0, 255);
ограничение командыpwm = constrain(pwm, 0, 255);
вывод пары имя-значениеSerial.print("raw="); Serial.println(raw);
проверка интервала без delay()if (millis() - previousMs >= intervalMs) { previousMs = millis(); }

Типы данных Arduino UNO

Диапазоны основных типов данных Arduino UNO

ТипДиапазон на Arduino UNOТипичное применение
boolfalse или trueлогическое состояние
byteот 0 до 255байт, маленький счётчик, PWM-значение
charот -128 до 127символ или маленькое число
intот -32768 до 32767обычные целые числа
unsigned intот 0 до 65535неотрицательный счётчик
longот -2147483648 до 2147483647большой счётчик со знаком
unsigned longот 0 до 4294967295время millis()
floatпримерно от -3.4E38 до 3.4E38дробные значения с ограниченной точностью
doubleкак float на Arduino UNOсовместимость с кодом, где ожидают double

Практика

По таблицам на этой странице составьте фрагмент loop(), который раз в 500 мс читает A0, переводит диапазон 0…1023 в 0…255, ограничивает результат и выводит обе величины в Serial Monitor. Затем найдите в подробных статьях объяснение каждой использованной функции.

Результат готов, если код компилируется для Arduino Uno, для времени используется unsigned long, а ссылки ведут к статьям про analogRead, Serial и работу без блокирующего delay().

Проверьте себя

  1. Почему эта шпаргалка не заменяет описание функции в официальном справочнике?
  2. Почему значение millis() хранят в unsigned long?
  3. Чем analogRead() отличается от analogWrite() на Arduino Uno?
  4. Зачем после map() иногда используют constrain()?
Ориентиры для самопроверки

Сначала ответьте без подсказки. Ответ можно считать полным, если вы:

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

Если один из пунктов объяснить не получается, найдите соответствующую главу статьи, перечитайте её и повторите ответ.

Словарь статьи

  • Справочник — краткое описание синтаксиса и назначения команд.
  • Тип данных — правило хранения значения и допустимый диапазон.
  • PWM — импульсное управление средней мощностью через быстрое переключение выхода.
  • Serial Monitor — окно обмена текстовыми данными между платой и компьютером.

Связанные темы

Источники