Все для Arduino в одном месте
Адрес: Павлодар
Телефон: +7 705 336-36-03

whatsapp +7 705 336-36-03

Подключение Ethernet модуля ENC28J60 к Arduino

Зачастую микроконтроллерам требуется доступ к Интернету, локальной сети. Это может пригодится, например, для построения умного дома, создания метеостанций «Народного мониторинга», установки простого веб-сервера и многого другого. Всё это может обеспечить Ethernet-модуль ENC28J60.

В этой статье будет рассказано о подключении ENC28J60 к Arduino. Этот модуль позволяет Arduino выходить в Интернет или в локальную сеть.

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

  • Arduino Uno R3
  • ENC28J60 модуль
  • Макетная плата
  • Соеденительные провода “папа-папа”

Краткое описание ENC28J60

Модуль подключается к Arduino с помощью SPI интерфейса. Тактовая частота интерфейса может достигать 20 МГц. Для подключения к сети TCP/IP используется разъём RJ-45. Модуль гальванически развязан с ним.

Контроллер модуля имеет максимальную тактовую частоту 25 МГц. Все функции по работе с сетевыми протоколами возложены на него, Arduino остаётся только отправлять пакеты данных и принимать полученные.

Модуль работает при напряжении 3,3 В, благодаря чему совместим и с микроконтроллерами STM32 или STM8. Максимальный потребляемый ток может составлять 250 мА, номинальный – 170 мА.
Теперь разберём подключение ENC28J60 к Arduino.

СХЕМА ПОДКЛЮЧЕНИЯ

Рассмотрим подключение ENC28J60 к UNO и к другим платам на базе Arduino ATmega328/168.

 СХЕМА ПОДКЛЮЧЕНИЯ ENC28J60

Схема будет выглядеть так:

  • VCC – 3v3;
  • GND – GND;
  • CS – 8;
  • SI – 11;
  • SO – 12;
  • SCK – 13.

При использовании Arduino Mega она станет выглядеть так:

  • VCC – 3v3;
  • GND – GND;
  • CS – 53;
  • SI – 51;
  • SO – 50;
  • SCK – 52.

Номер пина CS можно изменить при помощи функции ether.begin().

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

Теперь перейдём к программированию и подключению ENC28J60 к Arduino.

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

ПОДКЛЮЧЕНИЕ В ARDUINO IDE

Среди стандартных библиотек Arduino IDE нет библиотеки для нашего модуля, поэтому будем использовать библиотеку EtherCard, которая поддерживает следующие модели Arduino: UNO, Mega, Leonardo, Nano, Pro Mini, LilyPad, Duemilanove и прочие, основанные на AVR микроконтроллерах. Платы с ARM архитектурой, такие как 101, Zero, Due ей не поддерживаются.

Попробуем вывести в последовательный порт компьютера IP адрес устройства, маску подсети, шлюз по умолчанию и адрес DNS сервера.

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

Код подключения

#include <EtherCard.h>
 
static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 };
 
byte Ethernet::buffer[700];
 
void setup () {
Serial.begin(57600);
Serial.println(F("\n[testDHCP]"));
 
Serial.print("MAC: ");
for (byte i = 0; i < 6; ++i) {
Serial.print(mymac[i], HEX);
if (i < 5)
Serial.print(':');
}
Serial.println();
 
if (ether.begin(sizeof Ethernet::buffer, mymac) == 0)
Serial.println(F("Failed to access Ethernet controller"));
 
Serial.println(F("Setting up DHCP"));
if (!ether.dhcpSetup())
Serial.println(F("DHCP failed"));
 
ether.printIp("My IP: ", ether.myip);
ether.printIp("Netmask: ", ether.netmask);
ether.printIp("GW IP: ", ether.gwip);
ether.printIp("DNS IP: ", ether.dnsip);
}
 
void loop () {}

MAC-адрес здесь представлен в шестнадцатеричном виде. Следите за тем, чтобы он не совпадал ни с одним из уже имеющихся адресов в сети, иначе возможны проблемы.

Другие примеры использования библиотеки есть в папке «examples» в архиве с ней. Документация к ней расположена по следующему адресу и написана на английском языке.

Эта библиотека не единственная, есть ещё EtherEncLib и UIPEthernet.

Рекомендуемые товары

Соединительные провода мама-мама 20 см (10 шт)

Соединительные провода мама-мама 20 см (10 шт)

10 проводов с мама-контактами с обеих сторон подходит для соединения пары устройств, если конта..

300 ₸

Беспаечная макетная плата 400 контактов

Беспаечная макетная плата 400 контактов

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

850 ₸

Ethernet модуль для Ардуино ENC28J60

Ethernet модуль для Ардуино ENC28J60

Предназначен для сборки устройства управления электрическими приборами через интернет и передачи дан..

2 200 ₸