Скидки до 50% и розыгрыш MacBook 0 дней 00 :00 :00 Выбрать курс
Код
#статьи

Arduino: что это такое и как это программировать

Платы, лампы, провода — это всё любовь моя!

Иллюстрация: Оля Ежак для Skillbox Media

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

В этой статье рассказываем про Arduino: что это такое, для чего нужно и как его программировать. А ещё объясняем, какую плату выбрать новичку, и даём ссылки на полезные материалы.

Содержание

Что такое Arduino

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

  • аппаратную часть — плату с микроконтроллером, например Arduino Uno;
  • программную часть — бесплатную среду разработки Arduino IDE и встроенные библиотеки, которые упрощают работу с оборудованием.
Arduino Uno — одна из самых популярных плат в линейке
Изображение: Arduino

Главная фишка Arduino — доступность и простота входа. Для начала работы достаточно самой платы, USB-кабеля и компьютера. Благодаря множеству готовых библиотек и простому языку программирования даже новичок может за вечер собрать рабочее устройство — например, колёсного робота.

Вот примеры других устройств, собранных на Arduino:

История Arduino: интриги и скандалы

В начале 2000-х компании Telecom Italia и Olivetti открыли в итальянском городе Ивреа курсы по дизайну взаимодействия. Студентов учили проектировать устройства с удобными интерфейсами, опираясь на поведение пользователей.

На курсах студенты работали с платформой BASIC Stamp. Код приходилось писать на PBASIC — диалекте языка программирования BASIC, что было довольно сложно для людей, которые по складу ума больше дизайнеры, чем программисты.

BASIC Stamp, установленная в отладочную плату
Фото: Marcin1988 / Wikimedia Commons

Выпускник курса Эрнандо Барраган решил изменить ситуацию: в 2004 году он разработал альтернативную платформу Wiring — плату с прошивкой и поддержку программирования на упрощённом C++. Разработка гаджетов стала проще и быстрее.

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

Плата Wiring
Фото: Hernando Barragán

Это мы форкаем

Платы Wiring за короткий период стали очень популярны на курсе, но оставались дорогими — около 60 долларов за плату. Тогда научный руководитель Баррагана Массимо Банци сделал форк проекта: использовал более дешёвый микроконтроллер ATmega8, но оставил программную часть Wiring. Так появился прототип Arduino, сначала называвшийся Wiring Lite.

Прототип платы Arduino под названием Wiring Lite
Фото: Hernando Barragán

Название Arduino команда выбрала в честь местного бара, где собирались студенты и преподаватели. Сам бар был назван в честь короля Италии Ардуина Иврейского.

В 2008 году Банци зарегистрировал в США компанию Arduino LLC, которой принадлежали права на бренд. Платы производились сторонними фабриками по лицензии.

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

Торговая война: Arduino против Arduino

Когда популярность Arduino начала расти, команде понадобилось открывать юрлица в других странах. Но при попытке зарегистрировать компанию в Италии выяснилось, что бренд Arduino там уже оформлен — на Джанлуку Мартино, одного из сооснователей проекта и владельца завода, производившего платы. Оказалось, что он тайно регистрировал компании с названием Arduino SRL в разных странах.

Суть конфликта была в том, что руководство Arduino LLC выбрало бесфабричную модель производства: при таком подходе инженеры проектируют платы и инструменты, а изготовление может взять на себя любая фабрика. Мартино же боялся, что его завод не сможет конкурировать с китайскими производителями, и хотел сохранить производство на собственном заводе.

Это привело к тому, что Arduino LLC могла продавать свои платы только в США, а Arduino SRL — в остальных странах. Торговая война продолжалась до 1 октября 2016 года. Тогда на конференции World Maker Faire Массимо Банци и Федерико Мусто, гендиректор Arduino SRL, объявили о слиянии компаний в одно юрлицо — Arduino AG.

Массимо Банци и Федерико Мусто сообщают о слиянии двух Arduino в третью
Фото: Arduino Team

Arduino сегодня

Сейчас Arduino выпускает платы и готовые наборы для энтузиастов, университетов и школ программирования. Также у компании есть линейка промышленных контроллеров, которые используют для автоматизации складов и заводов. Один из главных принципов Arduino — разрабатывать недорогие платы, чтобы создание умных устройств было доступным увлечением.

Анатомия платы

Рассмотрим, какие пины, интерфейсы и кнопки есть на плате Arduino. Мы покажем всё на примере третьего поколения Uno. Более детально устройство платы можно изучить в официальной документации.

Основные элементы платы Arduino Uno
Фото: Skillbox Media

На фотографии выше:

  • Кнопка перезагрузки (1) — кнопка для перезапуска загруженного кода, если, например, плата перестала корректно реагировать на команды.
  • Цифровые пины (2) — универсальные пины, которые могут генерировать и считывать сигналы. К ним можно подключать датчики, моторы, кнопки и другие элементы управления.
  • Коннектор USB-B (3) — порт, с помощью которого плату можно подключить к компьютеру и прошить.
  • Контроллер ATmega328P (4) — «мозг» Arduino Uno, который выполняет все вычисления и операции. Можно сказать, что он здесь вместо процессора и памяти — как центральный блок у обычного компьютера, только компактнее и проще.
  • Коннектор питания (5) — порт для подключения платы к аккумулятору или розетки.
  • Пины питания (6) — пины, с помощью которых можно запитать датчики, моторы и другие элементы, подключённые к Uno.
  • Аналоговые пины (7) — пины, которые могут только считывать сигналы. Подходят для подключения датчиков.

Каждый цифровой и аналоговый пин имеет свои ограничения по току и напряжению, поэтому перед подключением внешних устройств стоит свериться с технической документацией.

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

Какую плату Arduino выбрать

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

Uno: идеальна для новичков

Микроконтроллер: ATmega328P

Память: 32 КБ флеш-памяти и 2 КБ SRAM

Для каких проектов подходит: для роботов и любых умных устройств

Цена: 27–55 долларов

Документация

Плата Arduino Uno R3.
Изображение: Arduino Docs

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

Nano: для компактных проектов

Микроконтроллер: ATmega328

Память: 32 КБ флеш-памяти и 2 КБ SRAM

Для каких проектов подходит: для компактных устройств

Цена: 15–40 долларов

Документация

Плата Arduino Nano
Изображение: Arduino Docs

Arduino Nano — компактная версия Uno. У неё меньше портов и меньше памяти, зато она без проблем поместится в корпусе практически любого устройства. Ещё один плюс платы в том, что её можно разместить на макетной плате.

Mega: больше портов и памяти

Микроконтроллер: ATmega2560

Память: 256 КБ флеш-памяти и 8 КБ SRAM

Для каких проектов подходит: для устройств с большим количеством датчиков

Цена: 50–70 долларов

Документация

Плата Arduino Mega.
Изображение: Arduino Docs

Arduino Mega — плата с большим количеством пинов, более мощным микроконтроллером и увеличенным объёмом памяти. Она отлично подходит для сложных проектов, в которых нужно много датчиков и ресурсоёмких вычислений, например для шагающих роботов с парой десятков сервоприводов. Плата дорогая, поэтому нет смысла брать её для обучения. На первых порах хватит возможностей Uno.

Micro: со встроенным USB-контроллером

Микроконтроллер: ATmega32U4

Память: 32 КБ флеш-памяти и 2,5 КБ SRAM

Для каких проектов подходит: для клавиатур, мышек и контроллеров

Цена: 22 доллара

Документация

Плата Arduino Micro
Изображение: Arduino Docs

Arduino Micro — компактная плата с поддержкой режима работы HID (human interface device — устройство человеческого интерфейса). Это значит, что на базе Micro можно собрать собственную клавиатуру, мышку, руль для симулятора гонок или контроллер для игровой консоли.

Платы для профессионалов

Arduino разрабатывает платы не только для обучения и хобби-проектов. У компании есть профессиональная линейка Arduino Pro для промышленных устройств. Их используют для автоматизации процессов на заводах и складах. Устройства с приставкой Pro обычно выпускают в чёрном цвете, а обычные — в синем.

В линейку Arduino Pro входят следующие семейства:

  • Portenta — набор высокопроизводительных плат и модулей для промышленных проектов. Они могут одновременно выполнять низкоуровневый код и скрипты на MicroPython или JavaScript.
  • Nicla — компактные платы для ИИ-проектов с низким энергопотреблением. Например, на базе платы Nicla Vision можно собрать систему для автоматической сортировки заказов на складе.
  • Opta — серия программируемых логических контроллеров в форм-факторе microPLC. У них есть Ethernet, Wi-Fi, Bluetooth и крепление для DIN-рейки, позволяющее устанавливать устройство в электротехнические шкафы.

Аналоги

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

Практически все платы компании и прошивки выпускаются под открытой лицензией Creative Commons Attribution ShareAlike. Это значит, что любой желающий может создавать собственные платы Arduino — в помощь разработчикам компания публикует на официальном сайте схемы, чертежи и документацию. А ещё в компании не против того, чтобы крупные производители запускали серийное производство аналогов. Главное условие: не использовать название Arduino, его производные и логотип. Все эти атрибуты защищены авторским правом.

Официальная схема платы Arduino Uno
Изображение: Arduino Docs

Например, российская компания «Амперка» выпускает платы Iskra — это аналоги Arduino с небольшими доработками, которые изготовлены по официальным чертежам. Arduino не против таких решений на рынке.

Iskra Uno — аналог Arduino Uno от компании «Амперка»
Кадр: AmperkaRu / YouTube

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

Вот список проверенных аналогов Arduino помимо платформы Iskra от «Амперки»:

Если вы увидели «оригинальную» плату с большой скидкой, то сперва проверьте, не пытаются ли вам продать подделку. Для этого можно использовать официальное руководство от команды Arduino.

Оригинальная плата Arduino Uno (слева) и подделка (справа)
Изображение: Arduino

В проектах лучше использовать оригинальные платы или аналоги компаний, которые дорожат своей репутацией. Платы китайских «ноунеймов» практически всегда оказываются некачественными, но стоят в 5–10 раз меньше. С другой стороны, если ваша цель — просто попробовать себя в разработке на Arduino, то можно сэкономить.

Какое ещё железо нужно ардуинщику

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

Модули, датчики и сенсоры

К платам Arduino можно подключать сторонние модули, датчики и сенсоры. Например, если вы хотите собрать метеостанцию, то надо будет докупить термометр, барометр и анемометр. А для робота нужна будет камера, дальномер и моторы.

Россыпь различных модулей и датчиков
Фото: Skillbox Media

Сенсоры и модули подбирают под конкретное устройство на этапе проектирования. Не стоит сразу покупать всё, что только можно подключить к плате, — формируя набор дополнительных устройств, отталкивайтесь от задачи. Со временем у вас и так накопится большая коллекция электронных полезностей.

Макетная плата

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

Для экспериментов удобнее использовать макетные платы без пайки — их ещё называют бредбордами (от англ. breadboard). На этой плате контакты разведены так, чтобы к ней можно было подключить несколько модулей.

Макетная плата
Фото: Skillbox Media

Если захотите собрать собственный модуль, можно использовать макетную плату с пайкой. Она представляет собой обычную печатную плату со свободными пинами, на которой можно смонтировать любые электронные компоненты.

Соединительные провода

Модули и сенсоры надо чем-то соединять между собой на макетной плате и подключать к Arduino. Для этого используют кабели типа Dupont трёх видов: «папа — папа», «мама — мама» и «мама — папа».

Сверху вниз: «папа — папа», «мама — мама» и «мама — папа»
Фото: Skillbox Media

Интересный факт: Dupont — это не официальное название коннектора. В начале XXI века китайские производители начали осваивать массовое производство соединительных кабелей и для изоляции использовали материалы американской химической компании DuPont. В итоге название прижилось на бытовом уровне, и сейчас любые коннекторы с шагом 2,54 мм называют кабелями Dupont.

Шилды

Шилд (от англ. shield — щит) — плата расширения, которая подключается к Arduino и даёт новые возможности. Например, с помощью шилда можно добавить поддержку Wi-Fi или GPS, если изначально их не было.

С шилдами Arduino превращается в сэндвич, но зато нет торчащих во все стороны проводов
Фото: Skillbox Media

Как правило, связка из нескольких модулей может заменить собой шилд, но такая конструкция будет не очень аккуратной и компактной. Платы расширения чаще используют в образовательных целях — например, на курсах по разработке для Arduino. Простой способ крепления шилдов позволяет ученикам сосредоточиться на коде.

Инструменты

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

  • Паяльник. После экспериментов на бредборде электрическую схему проекта можно перенести на печатную макетную плату. Для этого понадобится паяльник, припой, канифоль и флюс.
  • «Третья рука». Во время пайки не всегда удобно одновременно держать раскалённый паяльник, припой, плату и элемент, который вы собираетесь припаять. На помощь в таких случаях приходит «третья рука» — штатив, который позволяет закрепить все необходимые элементы и работать с ними.
«Третья рука» с двумя зажимами и лупой
Фото: Dro Kulix / Wikimedia Commons
  • Набор пинцетов. Электронные компоненты могут быть очень мелкими, и брать их руками не всегда удобно. Лучше использовать пинцеты, чтобы случайно ничего не сломать.

IDE для Arduino

Программировать Arduino можно в любом редакторе кода, но удобнее делать это в специальных средах. В них есть инструменты, благодаря которым разработка становится быстрее и проще. Давайте рассмотрим популярные IDE и редакторы кода для Arduino.

Arduino IDE

Интерфейс Arduino IDE
Скриншот: Arduino IDE / Skillbox Media

Arduino IDE — официальная среда разработки от команды Arduino. В ней есть все необходимые инструменты для удобной работы с одноимёнными платами. Можно писать код, отлаживать его, оптимизировать, загружать на платы и запускать.

Важно отметить, что есть две версии официальной среды разработки: обновлённая Arduino IDE 2 и устаревшая Arduino IDE Legacy. Обе работают, но во второй доступны не все современные функции — например, нет поддержки автоматического завершения кода и синхронизации файлов с облачным хранилищем.

Arduino Cloud

Облачный редактор в Arduino Cloud
Скриншот: Arduino Cloud / Skillbox Media

Arduino Cloud — облачная платформа для удалённого управления подключёнными платами. В основном её используют для развёртывания самодельных IoT‑устройств, но на платформе есть и встроенный редактор кода. С его помощью можно также писать скетчи, отлаживать их и загружать на платы прямо в браузере. Одно из преимуществ Arduino Cloud в том, что редактор можно открыть даже на смартфоне.

Arduino Cloud работает даже в мобильном браузере
Скриншот: Arduino Cloud / Skillbox Media

Platform IO

Platform IO в редакторе Visual Studio Code
Скриншот: Visual Studio Code / Skillbox Media

Platform IO — плагин, который превращает редактор кода, например VS Code, в IDE для работы с Arduino. Благодаря Platform IO в редакторе появляется дебагер, анализатор кода, функции для тестирования и возможность прошивать плату.

Плагин бесплатный и доступен для всех популярных IDE и редакторов кода. Есть даже версия для Vim, которая запускается в терминале.

Platform IO в терминале
Скриншот: Platform IO

Как программировать Arduino

Код для Arduino пишут на языке программирования Arduino C — это сочетание C++ и фреймворка Wiring. Файлы с кодом разработчики называют скетчами (от англ. sketch — набросок).

В этой статье мы рассмотрим только основы программирования Arduino. Если вы хотите стать гуру разработки, то предлагаем добавить в закладки наш ультимативный гайд по C++ в пяти частях:

Структура скетча

Программы для Arduino пишут по шаблону, который выглядит так:

#include <Example.h>

void setup() {

}

void loop() {

}

В нём:

  • #include <Example.h> — директива для подключения сторонних библиотек или связывания нескольких файлов одного проекта.
  • void setup() — функция, в которой инициализируют пины платы и указывают режимы их работы.
  • void loop() — цикл с основным кодом программы. В нём разработчики описывают логику прошивки и используют пины, которые инициализировали в функции setup().

Функции setup и loop — обязательная часть каждого скетча. Без них компилятор не сможет собрать проект.

Переменные

В Arduino C, как и в любом другом языке программирования, есть переменные. В них можно хранить данные с датчиков, промежуточные вычисления или параметры пинов. Чаще всего разработчики используют следующие типы переменных:

  • int — целые числа в диапазоне от −32768 до 32767.
  • long — целые числа в диапазоне от −2147483648 до 2147483647.
  • float — числа с плавающей точкой, в которых можно хранить значения с точностью до семи знаков после запятой.
  • byte — отдельные символы из ASCII-таблицы.
  • String() — строки из нескольких символов.
  • bool — логические значения true или false.

Примеры:

int number = 2025;
long bignumber = 2147483647;
float pi = 3.141592;
char byte = 'A';
String mystr = String("Hello World");
bool mybool = true;

Математические операторы

В языке Arduino C есть все привычные математические операторы. С их помощью можно вычислять значения и присваивать результаты переменным:

ОператорОписаниеПример
=Присваивание значения переменнойa = 256
+Сложение100 + 83
-Вычитание45 - 2
*Умножение5 * 12
/Целочисленное деление100 / 10
%Остаток от деления43% 4

Для сравнения значений используют операторы сравнения. Они возвращают true (истина) или false (ложь):

ОператорОписаниеПример
==Равноa == b
!=Не равноa != b
<Меньшеa < b
>Большеa > b
<=Меньше или равноa <= b
>=Больше или равноa >= b

Условные операторы и циклы

Для управления потоками программы в Arduino C предусмотрены условные операторы и циклы:

  • if-else — оператор «если», с помощью которого можно реализовать несколько сценариев и запускать их в зависимости от условий. Если условие оператора if соблюдается, то система выполняет его. В остальных случаях выполнится условие else if.
if (sensor > 800) {
  // выполняется, если значение > 800
  digitalWrite(LED_BUILTIN, HIGH);
}
else if (sensor > 400) {
  // если 400 < значение ≤ 800
  analogWrite(LED_BUILTIN, 128);
}
else {
  // в других случаях
  digitalWrite(LED_BUILTIN, LOW);
}
  • for — цикл для повторного выполнения одного и того же действия. Например, с его помощью можно пройтись по массиву светодиодов и поморгать каждым.
for (int i = 0; i < 10; i++) {
  // выполнится 10 раз, i от 0 до 9
  digitalWrite(LED_BUILTIN, (i % 2 == 0) ? HIGH : LOW);
  delay(200);
}
  • while — цикл, который выполняется до тех пор, пока его условие истинно.
int count = 0;
while (count < 5) {
  // выполняется, пока count < 5
  Serial.println(count);
  count++;
  delay(300);
}
  • do-while — цикл, который сначала выполняет действие, а потом проверяет условие завершения.
int val;
do {
  val = analogRead(A1);
  Serial.println(val);
  delay(500);
} while (val < 500);
// цикл обязательно выполнится хотя бы один раз

Функции

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

В общем виде функции в Arduino выглядят следующим образом:

тип_возвращаемого_значения имя_функции (аргументы) {
    // тело_функции
    return возвращаемое_значение;
}

В ней:

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

Для примера напишем функцию, которая принимает два числа, вычисляет их сумму и выводит в терминал сообщение о том, чётная ли сумма или нет:

void printSumParity(int a, int b) {
  int sum = a + b;
  if (sum % 2 == 0) {
    Serial.println("Чётная сумма");
  } else {
    Serial.println("Нечётная сумма");
  }
}

Как загрузить прошивку на плату

Перед тем как начать писать код, давайте разберёмся, как этот код загрузить на плату:

  • Шаг 1. Подключите плату к компьютеру с помощью USB-кабеля.
  • Шаг 2. В Arduino IDE откройте выпадающий список Select board и выберите в нём вашу плату.
Скриншот: Arduino IDE / Skillbox Media
  • Шаг 3. Нажмите на кнопку со стрелкой, которая расположена слева от выпадающего списка.
Скриншот: Arduino IDE / Skillbox Media
  • Шаг 4. Если всё прошло успешно, то в терминале появится сообщение «Done uploading» и сведения о том, сколько памяти занял скетч.
Скриншот: Arduino IDE / Skillbox Media

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

Многие разработчики в качестве своей первой программы пишут код, который выводит на экран фразу «Hello, world!». У микроконтроллеров нет экранов, поэтому выводить приветствие некуда. При этом в сообществе разработчиков есть аналог «Hello, world!» — программа Blink, которая мигает одним из светодиодов на плате.

С помощью такой простой программы можно проверить сразу три вещи. Если светодиод мигает:

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

Давайте напишем код программы Blink и загрузим его на Arduino, чтобы убедиться, что всё работает:

Собираем устройство

Для сборки нам понадобится:

  • любая плата Arduino (у нас Uno R3);
  • светодиод;
  • резистор номиналом 220 Ом;
  • провода типа «папа — папа»;
  • макетная плата.

Все компоненты соединяем следующим образом:

Схема подключения светодиода к Arduino Uno
Инфографика: Skillbox Media

Должна получиться похожая конструкция:

Фото: Skillbox Media

Пишем код

Код для мигания светодиодом выглядит так:

void setup() {
  // Инициализируем пины
  pinMode(13, OUTPUT);
}

// Функция loop бесконечно выполняется по кругу
void loop() {
  digitalWrite(13, HIGH);  // Включаем светодиод
  delay(1000);             // Ждём одну секунду
  digitalWrite(13, LOW);   // Выключаем светодиод
  delay(1000);             // Ждём одну секунду
}

В коде выше мы используем три функции, не считая setup () и loop (), без которых компилятор не сможет собрать скетч:

  • pinMode(pin, mode) — функция для настройки режима работы цифрового пина. На вход она принимает два аргумента: pin и mode. В первом надо указать номер пина, во втором — режим работы. Мы выбрали пин под номером 13 и сделали его выходным (OUTPUT).
  • digitalWrite(pin, value) — функция для подачи напряжения на пин, указанный в аргументе pin. Во втором аргументе надо выбрать значение, которое подаётся на пин: HIGH или LOW.
  • delay() — с помощью этой функции можно на время приостановить выполнение кода. Для этого в скобках надо указать длительность паузы в миллисекундах. Забавный факт: максимальное значение — 4 294 967 295 мс, что составляет 49 дней, но на практике никто не ставит паузу больше нескольких секунд :)

Запускаем код

Если всё сделали правильно, то при подключении питания к плате должен мигать наш светодиод:

Фото: Skillbox Media

Усложняем проект: добавляем управление

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

Собираем устройство

Схема устройства выглядит следующим образом:

Инфографика: Skillbox Media

Должно получиться такое устройство:

Фото: Skillbox Media

Пишем код

Код проекта выглядит так:

void setup() {
  // Инициализируем пины
  pinMode(13, OUTPUT);
  pinMode(9,INPUT);
}

// Функция loop бесконечно выполняется по кругу
void loop() {
		// включаем светодиод при нажатой кнопке
	if(digitalRead(9) == HIGH) {
		digitalWrite(13, HIGH);
	} else {
		digitalWrite(13, LOW);
	}
}

Запускаем код

Если всё сделали правильно, то с помощью кнопки можно будет управлять светодиодом:

Фото: Skillbox Media

Что делать дальше

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

Также на базе Arduino есть множество проектов с открытым кодом, которые вы можете повторить:

  • ArduSat — миниатюрный космический спутник;
  • Arduboy — портативная игровая консоль.
  • ArduPilot — система автопилота для дронов, самолётов, лодок и марсоходов.
  • OpenEVSE — зарядная станция для электромобилей.

Дополнительные материалы

Мы подготовили список видеороликов, курсов и книг, с помощью которых вы можете глубже изучить программирование Arduino:



Изучайте IT на практике — бесплатно

Курсы за 2990 0 р.

Я не знаю, с чего начать
Бесплатный курс по Python ➞
Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе.
Смотреть программу
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована