ENC28J60 и Ардуино

28-05-2020, 17:29 1 комментариев
Предлагаем вашему вниманию статью-обзор с подключением Ethernet модуля ENC28J60 к Arduino. Мы поговорим об основных параметрах устройства, его применении, сборке, используемых библиотеках и т.д.

Подобные автономные модули мини-веб-серверов обычно используют в проектах, где контроллерам требуется доступ к локальной сети или Интернету. Это могут быть системы «смарт» домов, домашние метеостанции и другие подобные инсталляции.
Рассматриваемый сегодня датчик несложен в эксплуатации, надежен, доступен по цене. К программной среде подключается при помощи SPI интерфейса (используется разъём RJ-45, тактовая частота - 20 МГц, максимальная составляет 25МГц).

Остальные технические характеристики оборудования таковы:
  • напряжение: 3,3V;
  • рабочий ток: 170 мА (MAX: до 250);
  • автоотброс некорректных пакетов;
  • буферная память: 8 Кбайт;
  • программируемые функции по работе с сетевыми протоколами, а также фильтрация ошибочных пакетов, повтор передачи при ошибке, Padding и т.д.;
  • Ethernet порты: 1шт;
  • габариты: 20 x 50 x 15мм.
Теперь разберём подключение ENC28J60 к Ардуино. Для реализации простой схемы будем использовать следующие компоненты: микроконтроллер Arduino Uno, сетевой модуль ENC28J60, макетную плату, комплект проводов. Вот что у нас получилось:
Для дальнейшего тестирования работоспособности устройств, нам понадобится библиотека EtherCard (поддержка плат Arduino Mega, Nano, Pro Mini, LilyPad, и др.). Ее следует скачать и добавить в среду разработки IDE. Процедура стандартная, мы много раз ее описывали – повторяться не будем!
Загружаем скетч:
#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 () {}
Надеемся, у вас все получится и материал был вам полезен. До новых встреч! Удачных компиляций!
Поделись в социальных сетях:
О авторе
Калугин Антон

Программист микроконтроллеров с 8-ми летним стажем, работал в таких компаниях как IBM, ASUS, Microsoft.

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

Все статьи автора
Похожие новости

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

В данной статье рассмотрим подключение Arduino Ethernet shield к Ардуино. Этот шилд создан для обмена информацией между локальной сетью и контроллером, а...

Сегодня мы поговорим о том, как подключить экран Nokia 5110 к Arduino, приведем примеры скетча и используемых для управления библиотек. Выбор пал на этот...

Как подключить LCD 1602 к Ардуино в домашних условиях и пользоваться всеми преимуществами этого цифрового устройства – рассказываем сегодня в новой статье....

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

1 комментария
  1. Ярослав
    13 октября 2023 15:27 Ярослав

    Здравствуйте.
    Меня интересует вопрос работы данной схемы с библиотекой ETHER_28J60 (конкретно, выход в интернет)...

    replyОтветить
Оставить комментарий