Модули · статья
Модули для Arduino: какие бывают, как подключить и что такое шилд
После первых уроков со светодиодами наступает момент, когда хочется экран, часы, замок по карточке или свет по расписанию. Всё это — готовые модули, и подключаются они по одним и тем же правилам. Разбираем, как читать подписи VCC, GND, DO и AO на любом модуле, какие бывают способы подключения, какая библиотека нужна какому модулю — таблицей со ссылками на разборы, — и что такое шилд. Имена библиотек сверены с живым каталогом libraries.trema.ru, а все товары в статье проверены по карточкам магазина.
Модуль — это деталь, которую за вас уже распаяли
В наших уроках мы собираем схемы из «голых» деталей: фоторезистор плюс резистор на макетной плате — и получается датчик света. Это лучший способ понять, как всё работает. Но в готовом устройстве хочется меньше проводов и меньше мест, где можно ошибиться.
Модуль — это та же деталь, но уже распаянная на маленькой плате вместе со всей обвязкой: резисторами, а часто и стабилизатором питания, светодиодом-индикатором и микросхемой, которая переводит сигнал в удобный вид. Снаружи остаются три-четыре контакта: питание, земля и сигнал. Воткнул провода — работает.
Модули для Arduino выпускает множество фирм, и, как правило, они совместимы между собой: датчик из одного магазина заработает с экраном из другого — главное, чтобы совпадало питание, об этом ниже. В российском магазине iarduino.ru модули разложены по полкам: датчики, дисплеи, модули и платы расширения, моторы и механика. Мы будем ссылаться на конкретные карточки — все ссылки в статье проверены: товар есть в наличии, характеристики взяты из описаний.
Как читать подписи на модуле
Возьмите любой модуль-датчик — света, звука, влажности почвы, — и вы увидите одни и те же подписи у контактов. Это главный навык в мире модулей: научившись читать четыре подписи, вы подключите почти что угодно без инструкции.
Единственная пара, которую нельзя путать, — питание и земля: перепутаете — модуль может сгореть. Сигнальные контакты обычно прощают ошибки: подключили DO вместо AO — просто будут странные показания.
void setup() {
Serial.begin(9600);
pinMode(2, INPUT);
}
void loop() {
int doValue = digitalRead(2); // выход DO модуля — на вывод 2
int aoValue = analogRead(A0); // выход AO модуля — на вход A0
Serial.print("DO = ");
Serial.print(doValue);
Serial.print(" AO = ");
Serial.println(aoValue);
delay(300);
}
Пять способов подключения
Каким бы ни был модуль, подключается он одним из пяти способов — по тому, как передаёт данные:
- Цифровой вывод: «да или нет». Кнопки, реле, датчики наклона и стука. Одна команда digitalRead() или digitalWrite() — так работает самый первый датчик из уроков.
- Аналоговый вход: «сколько именно». Фоторезистор, потенциометр, датчики влажности почвы — всё, что отдаёт плавную величину. Команда analogRead() на входах A0–A5 даёт число от 0 до 1023 — как в уроке про потенциометр.
- Шина I2C: два провода на всех. Экраны, часы, многие датчики. На Uno это выводы A4 и A5, и одна пара проводов обслуживает хоть десять устройств сразу — у каждого свой адрес. Так подключаются LCD 1602 и OLED-дисплей.
- Шина SPI: быстро, но больше проводов. RFID-считыватели, карты памяти, радиомодули. На Uno — выводы 10–13, каждому устройству добавляется свой провод выбора.
- UART — обычный порт. Bluetooth-модули, GPS-приёмники: те же передача и приём, что и в мониторе порта. На Uno выводы 0 и 1 заняты связью с компьютером, поэтому модулям обычно выделяют другие два вывода программным портом.
Таблица: модуль → библиотека → с чего начать
Для простых модулей библиотека не нужна: хватает встроенных команд. Для остальных — ниже имена, по которым библиотека находится в каталоге libraries.trema.ru: наберите его в поиске — и найдётся та самая библиотека. В колонке «в магазине» — проверенные карточки iarduino.ru: товар в наличии на день выхода статьи. А датчикам мы посвятили отдельный разбор — «Датчики для Arduino»: 22 датчика под конкретные задачи и расшифровка маркировок KY, GY и MQ.
| Модуль | Библиотека | Разбор у нас | В магазине |
|---|---|---|---|
| Кнопка, датчики наклона и вибрации | не нужна — digitalRead() | урок 10 «Кнопка» | в наборе |
| Фоторезистор, потенциометр | не нужна — analogRead() | урок 15 «Датчик света» | в наборе |
| Зуммер: сигналы и мелодии | не нужна — tone() | урок 19 «Зуммер» | в наборе |
| Экран LCD 1602 или 2004 с модулем I2C | LiquidCrystal I2C | разбор LCD 1602 | арт. 540 |
| OLED-дисплей 0.96″ на SSD1306 | Adafruit SSD1306 или iarduino_OLED | разбор OLED | арт. 830 |
| Температура и влажность: DHT11, DHT22 | DHT sensor library | урок 27 «DHT11» | арт. 444 |
| Сервопривод | Servo — уже встроена | урок 22 «Сервопривод» | арт. 104 (аналог SG90) |
| Часы реального времени DS3231 | RTClib или iarduino_RTC | пока нет | арт. 877 |
| RFID-считыватель RC522 | MFRC522 | пока нет | арт. 117 |
| Ультразвуковой дальномер HC-SR04 | NewPing — или совсем без библиотеки | пока нет | арт. 70 |
| Реле: свет и розетки | не нужна — digitalWrite() | пока нет | арт. 53 |
| Адресные светодиоды NeoPixel (WS2812) | Adafruit NeoPixel или FastLED | пока нет | арт. 784 |
| Шаговый двигатель 28BYJ-48 | Stepper — встроена; удобнее AccelStepper | пока нет | арт. 122 |
| Bluetooth-модуль HC-05 | не обязательна — обычный порт UART | пока нет | арт. 398 |
| Радиомодуль nRF24L01+ | RF24 | пока нет | арт. 83 |
Две ловушки из этой таблицы, о которых редко предупреждают. Шаговому двигателю 28BYJ-48 нужна плата драйвера ULN2003 — напрямую к выводам Arduino его не подключить. Не дайте названию карточки себя обмануть: в комплектации по нашей ссылке указан только сам двигатель, плата драйвера кладётся в корзину отдельно. А радиомодуль nRF24L01+ питается строго от 3,3 В — карточка прямо предупреждает: напряжение выше на VCC выводит модуль из строя, хотя сигнальным линиям 5 В не страшны.
Шилд: модуль, который надевается сверху
У модулей есть старший брат — шилд (от английского shield): плата расширения, которая не подключается проводами, а целиком надевается на Arduino сверху, как этаж на дом.
Шилды берут на себя самую неудобную часть — силовую и соединительную:
- Motor Shield (арт. 705, 740 ₽) — два канала для моторов: подключить мотор напрямую к Arduino нельзя, ему нужен отдельный источник тока, и шилд решает это одной платой. По карточке: моторы от 3 до 10,8 В, общий ток нагрузки на выходах — до 2 А.
- Trema Shield (арт. 607, 540 ₽) и Trema Set Shield (арт. 881, 542 ₽) — «розетки для модулей»: каждый вывод платы продублирован гнездом с питанием и землёй рядом, модули серии Trema подключаются шлейфами или ставятся прямо на шилд — макетка и пайка не нужны вовсе.
- LCD Keypad Shield — экран 1602 и пять кнопок одной платой: готовая лицевая панель прибора. Мы рассказывали о нём в статье про LCD 1602.
Один нюанс: шилд занимает те выводы, на которых работает, — у Motor Shield это часть цифровых выводов, у LCD Keypad — выводы D4–D10 и вход A0. Если поверх шилда нужно подключить ещё модуль, сверяйтесь с описанием, какие выводы остались свободны. И ещё один, из нашего разбора ошибок: шилд, сидящий на выводах 0 и 1, мешает прошивке — на время загрузки скетча его снимают.
Чем можно управлять с Arduino
Датчики — это «входы». Теперь «выходы» — то, ради чего проект затевается:
- Свет и приборы из розетки — через модуль реле (арт. 53, 190 ₽): плата замыкает контакт, как выключатель. Управляется одной командой digitalWrite(). Сетевые 220 вольт опасны: если не работали с ними раньше — начните с настольной лампы на 5–12 В или позовите взрослого электрика.
- Моторы — через транзистор, как в уроке про вентилятор, или через Motor Shield, если моторов два.
- Сервоприводы и шаговые двигатели — когда нужен точный угол или точный поворот: урок про сервопривод показывает основу за вечер.
- Команды с компьютера — свет, серво и мелодии с клавиатуры ПК, без нового железа: урок «Пульт из клавиатуры». Bluetooth-модуль HC-05 делает то же самое по воздуху: для платы он выглядит обычным портом UART.
Питание: 5 В, 3,3 В и почему это важно
Классические Arduino — Uno, Nano, Mega — работают на 5 В, и модули «из мира Arduino» рассчитаны на это. Но у многих плат нового поколения — ESP8266, ESP32, Raspberry Pi Pico — логика 3,3 В, и подавать на их входы 5 В нельзя.
Хорошая новость: у многих модулей в описании прямо указан диапазон питания — например, у дальномера HC-SR04 из таблицы карточка заявляет 3,3–5 В. Только не путайте питание и уровни сигналов: у модуля I2C для LCD сигнальные линии терпят 3,3–5 В, но питание экрану всё равно нужно 5 В — мы разбирали это в статье про LCD 1602. Если же модуль строго пятивольтовый, между ним и 3,3-вольтовой платой ставят преобразователь уровней (арт. 355, 53 ₽) — мы разбирали это в статье про ESP8266.
Модули в Trema IDE
Полдела с любым модулем — поставить библиотеку. В Trema IDE каталог libraries.trema.ru встроен: когда скетчу не хватает библиотеки, программа показывает окно «Нужна библиотека» и ставит её в один клик — без поиска по интернету и архивов ZIP. Библиотеки серии iarduino для Trema-модулей в каталоге тоже есть — мы насчитали 65 штук, от часов и OLED до GSM. А сканер адресов I2C, который нужен каждому владельцу экрана, лежит в примерах: Примеры → Полезное.
Что такое модуль для Arduino?
Маленькая плата, на которой нужная деталь — датчик, экран, реле — уже распаяна вместе с обвязкой: резисторами, а часто и стабилизатором со светодиодом питания. К Arduino модуль подключается несколькими проводами: питание, земля и один-два сигнальных. Голую деталь пришлось бы обвязывать самому на макетной плате.
Что означают подписи VCC, GND, DO и AO на модуле?
VCC — питание («плюс»), GND — земля («минус»). DO — цифровой выход: только «да или нет», порог срабатывания крутится подстроечником на модуле. AO — аналоговый выход: сколько именно, читается командой analogRead(). Питание бывает подписано VDD, V или «+», сигнальный контакт — S, SIG, OUT или DAT: смысл тот же.
Чем шилд отличается от модуля?
Модуль подключают проводами, а шилд надевается на плату сверху целиком: его штыревые гребёнки повторяют разъёмы Arduino Uno. Проводов не нужно вовсе, но шилд рассчитан на конкретный формат платы и занимает те выводы, на которых работает.
Можно ли подключать модули к ESP8266 и ESP32, где логика 3,3 В?
Часто да: многие модули питаются и от 3,3 В — диапазон пишут в описании товара. Опасно обратное направление: сигнал 5 В на вход 3,3-вольтовой платы. Для таких линий ставят двунаправленный преобразователь уровней — это модуль ценой около полусотни рублей.
Какую библиотеку ставить для модуля?
Смотрите таблицу на этой странице: для каждого частого модуля — библиотека из каталога libraries.trema.ru и урок или статья с подключением. В Trema IDE можно просто собрать скетч: на недостающий #include программа сама предложит установить подходящую библиотеку.
Сколько модулей можно подключить к одной Arduino?
Цифровых и аналоговых — по числу свободных выводов: у Uno это 14 цифровых плюс 6 аналоговых. А модули с шиной I2C делят одну пару проводов A4 и A5: экран, часы и датчик спокойно живут на шине одновременно, лишь бы адреса не совпадали.
Подключите первый модуль в Trema IDE
Библиотека ставится из окна ошибки, ошибки объясняются по-русски, примеры — с русскими комментариями. Дома бесплатно: через неделю попросит бесплатную регистрацию по почте — и всё. Дальше по теме: датчики для Arduino, экран LCD 1602, OLED-дисплей, как ставить библиотеки.
