ПредишенСледващото

ENC28J60 Ethernet модул за Arduino

характеристики на
храна
Напрежение 3.14 - 3.45 в
ток, mA
максималната 250
оценени 170
Интегрираният MAC и 10 Base-T PHY
Пълен и половин дуплекс
Подкрепа един от 10 Base-T порта с автоматично откриване и коригиране на полярността
поколение контролна Auto-подравняване
Avtootbros грешни пакети
Програмируема функция за повторен опит за грешка
Програмируеми функции Padding и CRC поколение
Програмируеми функция филтриране погрешни пакети
SPI тактова честота 20 MHz
размери съвет: 55 х 36 мм

Шофиране ENC28J60 модул

Устройството изпълнява функциите на уеб сървър включва ENC28J60 модул е ​​свързан с модула за микроконтролер. микроконтролер софтуер осигурява взаимодействие с ENC28J60 чип, както и уеб сървъра. централно звено Ардуино може да се използва като модул MCU.

Имената на контактите на модула.

Свързване на модула за MEGA на ENC28J60 Arduino.

Свържи се с Arduino UNO, Due, Nano, Duemilanove

Добив прекъсване пакет при получаване на

2 или инвалиди

изходните данни SPI Мишо

SPI SCK часовник вход

Часовник изход изход часовник

SPI MOSI въвеждане на данни


Когато сте свързани с използваните Arduino SPI интерфейс, и нулирането силата контакти. Свържи се с нулиране може да бъде свързан към цифров вход-изход Arduino а ако програмата, която да захранва изчисти цифров сигнален контакт. модул захранване 3,3 V могат да бъдат взети от Ардуино.

Най-лесният начин да се запознаете с ENC28J60 - използване хардуер и софтуер Arduino, защото софтуерен пакет Arduino IDE съдържа библиотеки за ENC28J60. Опитайте се да насочим Интернет чрез 8-канален релеен модул превключване натоварване 220 W. Представете задачата на превключване улично осветление линии, пътища, мостове.


Контрол по интернет от две релета.


Контрол върху интернет четири релета.

Първо трябва да изтеглите и инсталирате ethercard библиотека в Arduino IDE.

Свържете модули и ENC28J60 Arduino UNO, ръководи маркировка. контакти за връзка:

GND - GND пин на 5V,

Проверете връзките. В Ардуино, вижте примери ethercard намерят в библиотеката, там изберете rbbb_server. По подразбиране ethercard библиотека използва, за да сигнализират за CS SPI интерфейс пин 8 Arduino. Когато се свържете с друг контакт, например, 10, както е в нашия случай, е необходимо да се измени съответно текста на пример rbbb_server на. В началото на rbbb_server програма съдържа следните редове.

байт Ethernet :: буфер [500];
BufferFiller bfill;

невалидни настройка (), ако (ether.begin (sizeof Ethernet :: буфер, mymac) == 0)
Serial.println (F ( "Неуспешен достъп до Ethernet контролер"));
ether.staticSetup (MYIP);
>

Промяна на програмата за използване на контакта 10. В четвъртия ред от дъното в горния текст на програмата да прави промени в частта монтиране скоба 10 под формата на:

ако (ether.begin (sizeof Ethernet :: буфер, mymac, 10) == 0)

Софтуер за контрол на осем RELAY

// повече данни за уеб страница, се изисква повече обем буфер
байт Ethernet :: буфер [900];
BufferFiller bfill;

// Array участва Ардуино контакти за управление на реле
INT LedPins [] = 2,3,4,5,6,7,8,9>;

// Array за извършване на промени
булева PinStatus [] = 1,2,3,4,5,6,7,8>;

конст овъгляване http_OK [] PROGMEM =
"HTTP / 1.0 200 ОК \ г \ п"
"Content-Type: текст / HTML \ R \ Н"
"Pragma: не-кеша \ R \ н \ R \ Н";
конст овъгляване http_Found [] PROGMEM =

"HTTP / 1.0 302 Намерено \ г \ п"
"Местоположение: / \ г \ п \ г \ п";
конст овъгляване http_Unauthorized [] PROGMEM =
"HTTP / 1.0 401 Неупълномощен \ г \ п"
"Content-Type: текст / HTML \ R \ н \ R \ Н"
"

нищожен страницата ()
bfill.emit_p (PSTR ( "$ F"
""
"ArduinoPIN 1: $ F
"
"ArduinoPIN 2: $ F
"
"ArduinoPIN 3: $ F
"
"ArduinoPIN 4: $ F
"
"ArduinoPIN 5: $ F
"
"ArduinoPIN 6: $ F
"
"ArduinoPIN 7: $ F
"
"ArduinoPIN 8: $ F"),
http_OK,
PinStatus [1] PSTR ( "изключено") :? PSTR ( "на"),
PinStatus [1] PSTR ( "ON") :? PSTR ( "OFF"),
PinStatus [2] PSTR ( "изключено") :? PSTR ( "на"),
PinStatus [2] PSTR ( "ON") :? PSTR ( "OFF"),
PinStatus [3] PSTR ( "изключено") :? PSTR ( "на"),
PinStatus [3] PSTR ( "ON") :? PSTR ( "OFF"),
PinStatus [4] PSTR ( "изключено") :? PSTR ( "на"),
PinStatus [4] PSTR ( "ON") :? PSTR ( "OFF"),
PinStatus [5] PSTR ( "изключено") :? PSTR ( "на"),
PinStatus [5] PSTR ( "ON") :? PSTR ( "OFF"),
PinStatus [6] PSTR ( "изключено") :? PSTR ( "на"),
PinStatus [6] PSTR ( "ON") :? PSTR ( "OFF"),
PinStatus [7] PSTR ( "изключено") :? PSTR ( "на"),
PinStatus [7] PSTR ( "ON") :? PSTR ( "OFF"),
PinStatus [8] PSTR ( "изключено") :? PSTR ( "на"),
PinStatus [8] PSTR ( "ON"): PSTR ( "OFF")) ;?
>

невалидни линия ()
забавяне (1);
дума дъл = ether.packetReceive (); // Проверете Ethernet пакети
дума поз = ether.packetLoop (дъл); // Проверка на пакети TCP
ако (поз) bfill = ether.tcpOffset ();
знак * данни = (знак *) Ethernet :: буфер + поз;
ако bfill.emit_p (http_Unauthorized) (strncmp ( "Get /", данни, 5) = 0!);
>

друго данни + = 5;
ако (данни [0] == '') начална страница (); // Ако открива промяната в селото, след което стартирайте функцията
за (INT I = 0; и <= 7; i++)digitalWrite(LedPins[i],PinStatus[i+1]);
>

// "16" = броят на героите "? ArduinoPIN1 = на".
иначе, ако (strncmp ( "ArduinoPIN1 = на?", данни, 16) == 0) PinStatus [1] = вярно;
bfill.emit_p (http_Found);
>

иначе, ако (strncmp ( "ArduinoPIN2 = на?", данни, 16) == 0) PinStatus [2] = вярно;
bfill.emit_p (http_Found);

иначе, ако (strncmp ( "ArduinoPIN3 = на?", данни, 16) == 0) PinStatus [3] = вярно;
bfill.emit_p (http_Found);

иначе, ако (strncmp ( "ArduinoPIN4 = на?", данни, 16) == 0) PinStatus [4] = вярно;
bfill.emit_p (http_Found);

иначе, ако (strncmp ( "ArduinoPIN5 = на?", данни, 16) == 0) PinStatus [5] = вярно;
bfill.emit_p (http_Found);

иначе, ако (strncmp ( "ArduinoPIN6 = на?", данни, 16) == 0) PinStatus [6] = вярно;
bfill.emit_p (http_Found);

иначе, ако (strncmp ( "ArduinoPIN7 = на?", данни, 16) == 0) PinStatus [7] = вярно;
bfill.emit_p (http_Found);

иначе, ако (strncmp ( "ArduinoPIN8 = на?", данни, 16) == 0) PinStatus [8] = вярно;
bfill.emit_p (http_Found);

иначе, ако (strncmp ( "ArduinoPIN1 = изключено?", данни, 17) == 0) PinStatus [1] = фалшива;
bfill.emit_p (http_Found);

иначе, ако (strncmp ( "ArduinoPIN2 = изключено?", данни, 17) == 0) PinStatus [2] = фалшива;
bfill.emit_p (http_Found);

иначе, ако (strncmp ( "ArduinoPIN3 = изключено?", данни, 17) == 0) PinStatus [3] = фалшива;
bfill.emit_p (http_Found);

иначе, ако (strncmp ( "ArduinoPIN4 = изключено?", данни, 17) == 0) PinStatus [4] = фалшива;
bfill.emit_p (http_Found);

иначе, ако (strncmp ( "ArduinoPIN5 = изключено?", данни, 17) == 0) PinStatus [5] = фалшива;
bfill.emit_p (http_Found);

иначе, ако (strncmp ( "ArduinoPIN6 = изключено?", данни, 17) == 0) PinStatus [6] = фалшива;
bfill.emit_p (http_Found);

иначе, ако (strncmp ( "ArduinoPIN7 = изключено?", данни, 17) == 0) PinStatus [7] = фалшива;
bfill.emit_p (http_Found);

иначе, ако (strncmp ( "ArduinoPIN8 = изключено?", данни, 17) == 0) PinStatus [8] = фалшива;
bfill.emit_p (http_Found);

статичен байт mymac [] = 0x7b, 0x6c, 0x4d, 0x3e, 0x2f, 0x10>;

СЪТРУДНИЧЕСТВО МОДУЛ ENC28J60

Ако нашите експерименти са успешни, друг уеб сървър в нашата локална мрежа, разширяване на втория модул ENC28J60, добавете трети и четвърти блок в една и съща мрежа. Това дава разширяването на системата или дублиране, съкращения за по-голяма надеждност. В този случай, един порт 80 не е достатъчно. За решаване на проблема на всеки от следните уеб сървъра се дава уникален пристанище, което прави специален влизане в програмата. В настройката на празнота (), въведете следния ред:

Модулът използва микрочип ENC28J60. Дъската е свързан към контролера със стандартния интерфейс SPI със скорост на предаване от 20 MHz.

Характеристики:
ENC28J60 Ethernet SOP28
SPI интерфейс
Напрежение: 3.3 V
Работната честота на 25MHz
Размери: 55x36 мм

Подкрепете проекта - споделете линка, благодаря!