Обзор шилдов ардуино

Подключение Arduino Shields

Для подключения шилда нужно просто аккуратно «надеть» его на основную плату. Обычно контакты шилда типа гребенки (папа) легко вставляются в разъемы платы ардуино. В некоторых случаях требуется аккуратно подправить штырки, если сама плата спаяна неаккуратно. Тут главное действовать аккуратно и не прилагаться излишней силы.

Как правило, шилд предназначен для вполне конкретной версии контроллера, хотя, например, многие шилды для Arduino Uno вполне нормально работают с платами Arduino Mega. Распиновка контактов на меге выполнена так, что первые 14 цифровых контактов и контакты с противоположной стороны платы совпадают с расположением контактов на UNO, поэтому  в нее легко становится шилд от ардуино.

Плата Arduino Nano

Описание платы Arduino Nano

Технические характеристики Arduino Nano:

  • Напряжение питания 5В;
  • Входное питание 7-12В (рекомендованное);
  • Количество цифровых пинов – 14, из них 6 могут использоваться в качестве выходов ШИМ;
  • 8 аналоговых входов;
  • Максимальный ток цифрового выхода 40 мА;
  • Флэш- память 16 Кб или 32 Кб, в зависимости от чипа;
  • ОЗУ 1 Кб или 2 Кб, в зависимости от чипа;
  • EEPROM 512 байт или 1 Кб;
  • Частота 16 МГц;
  • Размеры 19 х 42 мм;
  • Вес 7 г.

Питание платы может осуществляться двумя способами:

  1. Через mini-USB или microUSB при подключении к компьютеру;
  2. Через внешний источник питания, имеющий напряжение 6-20 В с низким уровнем пульсаций.

Стабилизация внешнего источника выполняется при помощи схемы LM1117IMPX-5.0 на 5В. При подключении через кабель от компьютера подключение к стабилизатору происходит через диод Шоттки. Схемы обоих типов питания приведены на рисунке.

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

У платы Arduino Nano имеются такие же ограничения по напряжению и току на входы и выходы платы. Все цифровые и аналоговые контакты работают в диапазоне от 0 до 5 В. При подаче питания, выходящего за рамки этих значений, напряжение будет ограничиваться защитными диодами. В этом случае сигнал должен подключаться через резистор, чтобы не вывести контроллер из строя. Наибольшее значение втекающего или вытекающего тока не должно превышать значение 40 мА, а общий ток контактов должен быть не более 200 мА.

На плате имеются 4 светодиода, которые показывают состояние сигнала. Они обозначены как TX, RX, PWR и L. На первых двух светодиод загорается, когда уровень сигнала низкий, и показывает, что сигнал TX или RX активен. Светодиод PWR загорается при напряжении в 5 В и показывает, что подключено питание. Последний светодиод – общего назначения, загорается, когда подается высокий сигнал.

На настоящий момент выпускается несколько видов Arduino Nano. Есть версии 2.X, 3.0., которые отличаются только чипом, на котором они работают. В версии 2.Х. используется чип ATmega168 с меньшим объемом памяти (флэш, энергонезависимой) и пониженной тактовой частотой, версия 3.0. работает на чипе ATmega328.

Кнопки LCD Keypad Shield

На плате присутствуют пять управляющих кнопок, работа с которыми ведется через один аналоговый пин A0. В шилде использован достаточно распространенный способ простого кодирования сигнала, при котором каждая кнопка формирует определенное значение напряжения, которое после АЦП преобразуется в соответствующее значение от 0 до 1023. Таким образом, мы можем передавать информацию о нажатии разных кнопок через один пин, считывая его при помощи функции analogRead();

Значения уровня сигнала на пине A0 в зависимости от выбранной кнопки:

Нажатие кнопки Значение на аналоговом пине
RIGHT 0-100
UP 100-200
DOWN 200-400
LEFT 400-600
SELECT 600-800
Клавиша не нажата 800-1023

Пример скетча работы с кнопками LCD Keypad Shield:

int keyAnalog =  analogRead(A0);
  if (keyAnalog < 100) {
    // Значение меньше 100 – нажата кнопка right
    // Выполняем какое-то действие для кнопки вправо.
  } else if (keyAnalog < 200) {
    // Значение больше 100 (иначе мы бы вошли в предыдущий блок результата сравнения, но меньше 200 – нажата кнопка UP
    // Выполняем какое-то действие для кнопки вверх
  } else if (keyAnalog < 400) {
    // Значение больше 200, но меньше 400 – нажата кнопка DOWN
    // Выполняем действие для кнопки вниз
  } else if (keyAnalog < 600) {
    // Значение больше 400, но меньше 600 – нажата кнопка LEFT
    // Выполняем действие для кнопки влево
  } else if (keyAnalog < 800) {
    // Значение больше 600, но меньше 800 – нажата кнопка SELECT
    // Выполняем действие для кнопки выбора пункта меню
  } else {
    // Все остальные значения (до 1023) будут означать, что нажатий не было
  }

В выбранном методе кодирования есть два главных недостатка:

  • Нельзя отслеживать одновременное нажатие нескольких кнопок;
  • Возможные искажения сигнала могут привести к ложным срабатываниям.

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

Мотор шилд и шаговые двигатели

Шаговые моторы — отличный выбор для управления вашими проектами. Они отлично вписываются в проекты манипуляторов, ЧПУ станков и т.п. на Arduino. Мотор шилд поддерживает работу двух шаговых двигателей одновременно. Библиотека работает одинаково для биполярных и униполярных моторов.

Для униполярных моторов: перед подключением моторов надо выяснить как соотносятся контакты и катушки. Если у мотора пять проводов, будет один, который будет расположен по центру обеих катушек. Центральный контакт должен быть подключен к контакту GND на мотор шилде. Потом надо подключить катушку 1 к одному из контактов для моторов (скажем, М1 или М3), а катушка 2 должна подключаться ко второму порту мотора (М2 или М4).

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

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

1. Убедитесь, что вы подключили библиотеку #include &ltAFMotor.h&gt

2. Создайте объект для шагового двигателя: AF_Stepper(steps, stepper#). Steps содержит информацию о том, сколько шагов на один оборот совершает мотор. В 7.5 degree/step моторе 360/7.5 = 48 steps. Stepper# отвечает за порт, к которому подключен шаговый двигатель. Если вы используете M1 и M2, это порт 1. Если вы используете М3 и М4 — это порт 2.

3. Установите скорость мотора, используя setSpeed(rpm), rpm — задаваемое количество оборотов в минуту на шаговом двигателе.

4. После этого каждый раз, когда вы хотите обеспечить вращение ротора мотора, надо вызывать процедуру step(#steps, direction, steptype).#steps — это то, сколько шагов вы хотите совершить. direction — это FORWARD или BACKWARD, а тип шага — это SINGLE, DOUBLE. INTERLEAVE или MICROSTEP.

«Single» означает активацию одной катушки, «double» означает одновременную активацию 2-х катушек (для большего крутящего момента), а 2 «interleave» — среднее между режимами ‘single’ и ‘double’ (в результате скорость будет в два раза меньше). «Microstepping» — метод, с помощью которого обеспечивается плавное перемещение между шагами. Вы можете использовать любой тип шага, менять методы «на лету» в зависимости от того, что вам необходимо — минимальная мощность, больший крутящий момент или большая точность.

5. По умолчанию мотор будет ‘держать’ позицию после того, как отработает заданный цикл шагов. Если вы хотите отключить катушки, чтобы обеспечить свободное вращение вала двигателя, можете использовать функцию release().

6. Команды шагов ‘блокируются’ и становятся доступными только после отработки заданных шагов.

Так как как команды шагов ‘блокируются’ — надо подавать новые команды каждый раз, когда вы хотите обеспечить вращение ротора. Если вы хотите расширить возможности шаговых приводов, попробуйте загрузить библиотеку AccelStepper library (устанавливается так же как и библиотека AFMotor), в которой есть интересные примеры управления двумя шаговыми двигателями одновременно с разными ускорениями.

#include &ltAFMotor.h&gt

AF_Stepper motor(48, 2);

void setup() {

Serial.begin(9600); // устанавливаем скорость обмена данными на 9600 bps

Serial.println(«Stepper test!»);

motor.setSpeed(10); // 10 rpm

motor.step(100, FORWARD, SINGLE);

motor.release();

delay(1000);

}

void loop() {

motor.step(100, FORWARD, SINGLE);

motor.step(100, BACKWARD, SINGLE);

motor.step(100, FORWARD, DOUBLE);

motor.step(100, BACKWARD, DOUBLE);

motor.step(100, FORWARD, INTERLEAVE);

motor.step(100, BACKWARD, INTERLEAVE);

motor.step(100, FORWARD, MICROSTEP);

motor.step(100, BACKWARD, MICROSTEP);

}

Элементы платы

Разъём микрофона и наушников

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

Слот для SIM-карты

Слот для подключения стандартной сим-карты — Mini-SIM (2FF). Если у вас сим-карта другого размера, Micro Sim или Nano Sim, воспользуйтесь специальными переходниками.

Контакты выбора управляющих пинов

Контакты GPRS Shield Контакты Arduino Использование
TX и RX 0 и 1 Используются для выбора управляющих пинов c микроконтроллером.
PK 2 Используется для включения модуля. Для этого на него необходимо подать высокий уровень на 3 секунды, а затем подать низкий уровень на эту же ножку.
ST 3 Информационный пин о состоянии включения GPRS Shield. Если высокий уровень — шилд включён, если низкий — выключен.

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

Гнездо для батарейки

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

Индикатор состояния сети

У модуля есть два информационных светодиода — , который загорается после включения модуля и , который мигает в зависимости от состояния сети.

Возможные режимы (Горит/Не горит):

  • 64мс/800мс — сеть не найдена;
  • 64мс/3000мс — сеть найдена;
  • 64мс/300мс — идет обмен по GPRS.

Шаг 4. Создаем печатную плату

Как только схема завершена, пришло время сделать печатную плату. Мы использовали веб-сайт JLCPCB (ссылка), чтобы сделать печатную плату. Эти ребята являются одними из лучших в производстве печатных плат в последние дни.

После завершения проектирования схемы преобразуйте ее в печатную плату и спроектируйте печатную плату на веб-сайте easyEDA (ссылка). Будьте терпеливы. Ошибка на этом шаге испортит вашу печатную плату. Проверьте несколько раз перед генерацией файла gerber. Вы также можете проверить 3d модель вашей платы здесь. Нажмите на создание файла gerber и оттуда вы можете напрямую заказать эту плату через JLCPCB. Загрузите файлы gerber, выберите правильную спецификацию, ничего не меняйте в этом разделе. Оставьте как есть. Это достаточно хорошие настройки для старта. Разместите заказ. Вы получите его через 1-2 недели.

Интерфейс с человеком

Самое главное для любого компьютера – обеспечивать интерфейс с человеком. Здесь есть целый комплекс шилдов, от экрана с несколькими управляющими клавишами до системы распознавания голоса. Последняя представлена ниже:
EasyVR Shield 3.0

Среди функций шилда не только контроль произносимого человеком, но и воспроизведение определенного текста, записанного в память устройства. Очень удобная возможность для организации своеобразного голосового диалога с Ардуино.

Конечно, говорить мало, нужно еще и видеть, что происходит. Здесь поможет LCD Keypad shield – шилд, обладающий двухстрочным экраном на 16 символов в каждой строке. Кроме отображения информации на его плате расположено несколько клавиш, позволяющих отдавать команды их нажатием контроллеру.
LCD Keyboard Shield

Конечно, эта модель не единственная. В ее классе множество устройств. Для конкретно названой, из технических данных можно сообщить, что она использует для своей работы множество портов Ардуино. Распиновка платы с описанием входов:

Используемая библиотека для работы с дисплеем – LiquidCrystal.

Отличие от других плат

Сегодня на рынке можно встретить множество вариантов плат ардуино. Самыми популярными конкурентами Уно являются платы Nano и Mega. Первая пойдет для проектов, в которых важен размер.  Вторая – для проектов, где у схема довольно сложна и требуется множество выходов.

Отличия Arduino Uno от Arduino Nano

Современные платы Arduino Uno и Arduino Nano версии R3 имеют, как правило, на борту общий микроконтроллер: ATmega328. Ключевым отличием является размер платы и тип контактных площадок. Габариты Arduino Uno: 6,8 см x 5,3 см. Габариты Arduino Nano: 4,2 см x 1,85 см. В Arduino UNO используются коннекторы типа «мама», в Nano – «гребень» из ножек, причем у некоторых моделей контактные площадки вообще не припаяны.  Естественно, больший размер UNO по сравнению с Nano в некоторых случаях является преимуществом, а в некоторых – недостатком. С платой большого размера гораздо удобнее производить монтаж, но она неудобна в реальных проектах, т.к. сильно увеличивает габариты конечного устройства.

На платах Arduino Uno традиционно используется разъем TYPE-B (широко применяется также для подключения принтеров и МФУ). В некоторых случаях можно встретить вариант с разъемом Micro USB. В платах Arduino Nano стандартом является Mini или Micro USB.

Естественно, различия есть и в разъеме питания. В плате Uno есть встроенный разъем DC, в Nano ему просто не нашлось места.

Кроме аппаратных, существуют еще небольшие отличия в процессе загрузки скетча в плату. Перед загрузкой следует убедиться, что вы выбрали верную плату в меню «Инструменты-Плата».

Отличия от Arduino Mega

Плата Mega в полном соответствии со своим названием является на сегодняшний день самым большим по размеру и количеству пинов контроллеров Arduino. По сравнению с ней в Uno гораздо меньше пинов и памяти. Вот список основных отличий:

  • Плата Mega использует иной микроконтроллер: ATMega 2560. Но тактовая частота его равна 16МГц, так же как и в Уно.
  • В плате Mega большее количество цифровых пинов – 54 вместо 14 у платы Uno. И аналоговых – 16 / 6.
  • У платы Mega больше контактов, поддерживающих аппаратные прерывания: 6 против 2. Больше Serial портов – 4 против 1.
  • По объему памяти Uno тоже существенно уступает Megа. Flash -память 32/256, SRAM –  2/8, EEPROM – 4/1.

Исходя из всего этого можно сделать вывод, что для больших сложных проектов с программами большого размера и активным использованием различных коммуникационных портов лучше выбирать Mega. Но эти платы дороже Uno и занимают больше места, поэтому для небольших проектов, не использующих все дополнительные возможности Mega, вполне сойдет Uno – существенного прироста скорости при переходе на “старшего” брата вы не получите.

Программирование Arduino Shield

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

Чтение или запись сигналов шилдов производится тоже обычным методом: с помощью функций analogRead (), digitalRead (), digitalWrite () и других, привычных любому ардуинщику команд. В некоторых случаях возможны коллизии, когда вы привыкли к оной схеме соединения, а производитель выбрал другую (например, вы подтягивали кнопку к земле, а на шилде – к питанию). Тут нужно быть просто внимательным.

Примеры работы

Рассмотрим варианты примеров подключение различных устройств к плате расширения Troyka Shield. Используемые пины для связи сенсоров и модулей с Troyka Shield зависят от конкретного устройства, а точнее от типа его коммуникации, сигнала и протокола.

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

Подключение цифровых Troyka-модулей

Для начала подключим к Troyka Shield светодиод «Пиранья» (Troyka-модуль) через стандартный трёхпроводной шлейф к цифровому пину. Если подать высокий уровень на пин светодиод загорится, если низкий — погаснет.


Добавим к предыдущему эксперименту кнопку (Troyka-модуль) и подключим её к Troyka Shield к цифровому пину. Если написать соответствующий скетч, то при нажатии на кнопку светодиод загорится, а отпустить — погаснет.

Подключение аналоговых Troyka-модулей

Подключим потенциометр (Troyka-модуль) к аналоговому пину на плату расширения Troyka Shield. В качестве индикации возьмём светодиод «Пиранья» (Troyka-модуль) и подключите к пину с поддержкой ШИМ. После написания соответствующего скетча, яркость светодиода будет меняться в зависимости от перемещения ручки потенциометра.

Подключение устройств к контактам интерфейса I²C

Существуют сенсоры и модули, которые общаются с управляющей электроникой по двум проводам через интерфейс I²C / TWI. Для подключения таких I²C модулей необходимы линии или , которые выведены на Troyka Shield отдельными контактами.

В качестве примера подключим светодиодную матрицу к Troyka Shield. После загрузки в плату соответствующей программы, на матрицу можно выводить символы, цифры и мелкие анимации.

Подключение устройств к контактам интерфейса SPI

Существуют сенсоры и модули, которые общаются с управляющей электроникой через интерфейс SPI. Для подключения таких SPI модулей необходимы линии , и которые выведены на Troyka Shield отдельными контактами.

В качестве примера подключим SD картридер к Troyka Shield. Карта памяти поможет управляющей плате работать с большими объёмами файлов.

Подключение модулей с 5 В питанием

На плате Troyka Shield в линии «S-V2-G» есть возможность выбирать напряжение линии питания. Это удобно когда управляющая плата с 3,3 вольтовой логикой, а рабочее напряжение подключаемого модуля равно 5 вольт.

В качестве примера подключим сервопривод FS90 с 5 В питанием на плату Iska JS к цифровой пину и в режим .

Для управляющих плат с 5 вольтовой логикой — джаммпер выбора питания не имеет смысла: на линии всегда будет 5 вольт.

Режимы управление питанием

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

Штатный режим

Подключим датчик влажности почвы (Troyka-модуль) через стандартный трёхпроводной шлейф к Troyka Shield штатным образом:

  • S — сигнальный, подключим к аналоговому пину .
  • V — питание, соединим с питанием управляющей платы.
  • G — земля, соединим с общей землёй.

В результате на сенсор будет всегда подаваться питание, независимо от программы.

Энергосберегающий режим

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

Подключим датчик влажности почвы (Troyka-модуль) через стандартный трёхпроводной шлейф к Troyka Shield следующим образом:

  • S — сигнальный, подключим к аналоговому пину .
  • V — питание, соединим к аналоговому пином .
  • G — земля, соединим c аналоговым пином .

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

Arduino Sensor Shield

Как правило, эта плата расширения идет в наборах ардуино и поэтому именно с ней ардуинщики встречаются чаще всего. Шилд достаточно прост – его основная задача предоставить более удобные варианты подключения к плате Arduino. Это осуществляется за счет дополнительных  разъемов питания и земли, выведенных на плату к каждому из аналоговых и цифровых пинов. Также на плате можно найти разъемы для подключения внешнего источника питания (для переключения нужно установить перемычки), светодиод и кнопка перезапуска. Варианты шилда и примеры использования можно найти на иллюстрациях.

Существует несколько версий сенсорной платы расширения. Все они отличаются количеством и видом разъемов. Наиболее популярными сегодня являются версии Sensor Shield v4 и v5.

Класс AF_DCMotor

Класс AF_DCMotor дает возможность управлять скоростью и направлением четырех двигателей постоянного тока с использованием Motor Shield. Для того, чтобы использовать эту возможность при программировании Arduino, надо в начале скетча добавить следующую строку:

#include &ltAFMotor.h&gt

AF_DCMotor motorname(portnum, freq)

Функция для двигателей постоянного тока. Функцию надо вызывать один раз для каждого мотора постоянного тока, который вы используете. Каждый мотор должен иметь различное имя (motorname).

Параметры:

  • port num — выбор канала (1-4) на мотор шилде, к которому подключен двигатель.
  • freq — выбор частоты ШИМ сигнала. Если частота не указана, используется значение по умолчанию — 1 КГц.

Частоты для канала 1 и 2 следующие:

  • MOTOR12_64KHZ
  • MOTOR12_8KHZ
  • MOTOR12_2KHZ
  • MOTOR12_1KHZ

Частоты для канала 3 и 4:

  • MOTOR34_64KHZ
  • MOTOR34_8KHZ
  • MOTOR34_1KHZ

Пример:

AF_DCMotor motor4(4); // Инициализируем мотор на канале 4 с частотой ШИМ-модуляции 1 КГц

AF_DCMotor left_motor(1, MOTOR12_64KHZ); // Инициализируем мотор на канале 1 с частотой ШИМ 64 КГц

setSpeed(speed)

Устанавливает скорость вращения ротора мотора.

Параметры:

speed — значение скорости, которое находится в диапазоне от 0 до 255. 0 — не вращается, 255 — максимальная скорость вращения.

Пример:

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

run(cmd)

Устанавливает режим работы мотора.

Параметры:

cmd — желаемый режим работы мотора

Значения, которые может принимать аргумент cmd:

  • FORWARD — вращение «вперед» (фактическое направление вращения ротора будет зависеть от подключения двигателя);
  • BACKWARD — вращение «назад» (вращение в противоположном направлении относительно FORWARD);
  • RELEASE — остановка мотора. Остановка питания мотора. Эквивалент setSpeed(0). На мотор шилде не предусмотрены механизмы динамической остановки, так что мотору понадобится некоторое время, чтобы ротор окончательно остановился.

Пример:

motor.run(FORWARD);

delay(1000); // вращается «вперед» на протяжении 1 секунды

motor.run(RELEASE);

delay(100); // ‘отпускаем ротор’ на 1/10 секунды

motor.run(BACKWARDS); // вращение в противоположном направлении

Критерии выбора хорошего биокамина и принцип его работы

Первые шаги

Подключите Arduino к персональному компьютеру с помощью USB кабеля, а Ethernet Shield к вашему роутеру (или непосредственно вашему интернет-кабелю).

После этого откройте Arduino IDE. В версиях Arduino IDE после 1.0 есть встроенная поддержка DHCP и нет необходимости в ручной настройке IP адреса.

Для того, чтобы определить какой IP адрес присвоен вашей плате, откройте скетч DhcpAddressPrinter. Найти его можно в меню:

File —> Examples —> Ethernet —> DhcpAddressPrinter

После открытия скорее всего придется сменить мак-адрес. На более новых официальных версиях Ethernet шилда, адрес указан на стикере, прикрепленном к шилду. Если стикера нет, можно просто сгенерировать новый уникальный мак-адрес. Если вы используете одновременно несколько шилдов, мак-адреса для каждого з них должны быть уникальными.

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

Шилды Ethernet Shield для Arduino Uno или Nano

Наиболее удобным способом работы с W5100 является использование готовых шилдов Ethernet Shield для Arduino Uno или Nano. На таких модулях уже выполнены все необходимые обвязки, шилд просто вставляется в соответствующие разъемы платы и вам остается только загрузить скетч. Естественно, что при желании к плате могут быть подключены и другие устройства.


Arduino Ethernet Shield

Подключение платы расширения происходит через соединение RJ-45. Плата обладает встроенным слотом SD/MicroSD , который используется для хранения файлов, используемых для подключения и передачи по локальной сети. Такой слот совместим со всеми платами Arduino/Genuino, т.е. работать с данными на карте можно с помощью стандартной библиотеки SD Library. На плате расширения также можно найти кнопку перезагрузки . питания. Ранние версии платы расширения не дружили с ардуино мега, там требовался ручной сброс после поступления питания.

Если плата оснащена POE модулем (питание подается по витой паре), то шилд будет соответствовать следующим спецификациям:

  • Совместим со стандартом IEEE3af.
  • Имеет низкие пульсации на выходе.
  • Защищает от явлений перегрузки и короткого замыкания.
  • Эффективно преобразует напряжение.
  • Имеет изоляцию 1500 вольт на точке между «вход-выход»

По умолчанию плата не комплектуется данным модулем, нужно находить соответствующую модель.

Назначение светодиодов Ethernet Shield:

  • PWR показывает наличие питания на плате.
  • LINK светится при наличии сети и мигает при передаче/приеме данных.
  • FULLD обозначает сетевое полнодуплексное соединение.
  • 100M обозначает сетевое соединение со скоростью 10мбит/сек.
  • RX мигает при приеме экраном данных.
  • TX мигает при отправке данных экраном.
  • COLL мигает при обнаружении сетевых конфликтов.

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

Ehternet для Arduino Nano

Отдельного упоминания заслуживает модуль Arduino Nano Ethernet. Он выполнен в формфакторе, облегчающим подключение к плате Nano v 3.0, но обладает практически такими же возможностями, что и “обычный” вариант для Uno. В основе шилда лежит микросхема ENC28J60.


Шилд Ethernet Arduino Nano Shield

Модуль точно так же имеет разъем RJ-45, слот для SD и в некоторых модификациях тоже оснащен PoE контроллером.

Как работает Ethernet

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

Сегодня Ethernet – ключевая и наиболее распространенная наряду с WiFi технология организации локальных сетей. В стандартной модели OSI она находится на канальном и физическом уровне, определяя подуровни управления доступом к среде и управления логическим каналом. Создателем Ethernet стала компания Xerox, ее инженер Роберт Метклаф создал технологию как инструмент подключения многих компьютеров к общим ресурсам в локальной сети. Официальным стандартом технология стала в 1982 году после появления спецификации IEEE802.3.

Сегодня существует несколько вариантов и модификаций Ethernet, отличающихся скоростными характеристиками и способом организации физического канала:

  • Ethernet. Скорость до 10Mb/s. Любые типы проводов (коаксиал, витая пара, оптоволокно).
  • Fast Ethernet. Скорость до 100Mb/s. Только витая пара или оптика.
  • Gigabit Ethernet. Скорость до 1Gb/s. . Только витая пара и оптика.
  • 10G Ethernet. Скорость до 10Gb/s. Естественно, тоже без коаксиала.

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


Возможная схема Ethernet-сети

С практической точки зрения работа с Ethernet выглядит как возможность соединить определенным образом конечное оборудование с ближайшей точкой, имеющей выход в другие сегменты сети.  Чаще всего это роутер или маршрутизатор с доступом в интернет или к другим ресурсам локальной сети.

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

  • Кабель. Как правило, это витая пара, реже – оптоволокно (ее подключить к арудино простым способом не получится).
  • Разъемом для подключения кабеля – RJ-45. На самом деле, стандарт для штекеров носит совсем другое название (8P8C), но “в народе” принято называть стандартный Ethernet разъем именно как RJ45. Следует отметить, что есть и другие стандарты – RJ-25, RJ-14 и т.п. Для подключения к ардуино через стандартные модули они не подойдут.
  • Сетевой Ethernet MAC-адрес. Это уникальный шестибайтовый идентификатор устройства в сети, который обычно прошивается в само устройство, но в некоторых случаях может быть изменен программно. Всего может быть задано 2 в 48 степени адресов, это триллионы разных вариантов (точнее, 281 474 976 710 656), так что пока их с головой хватает для создания действительно уникальных идентификаторов.

В подавляющем большинстве задач проект с Ардуино будет подключен к уже существующей Ethernet сети через стандартное оборудование. Т.е. вы просто берете модуль Ethernet, подключаете его к Ардуино, а затем вставляете сетевой кабель в этот самый модуль.  Все, что вам понадобится – правильно настроить в своем скетче ваш MAC адрес (его можно менять!) и прописать IP адрес устройств, к которым вы будете подключаться. Мы рассмотрим пример в разделе, посвященным программированию.

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
Добавить комментарий