ENC28J60 Ethernet modul - A kapcsolat leírása rendszer, a könyvtár

ENC28J60 Ethernet modul Arduino

jellemzői
élelmiszer
feszültség 3,14-3,45 in
áram, mA
maximum 250
eddig 170
Az integrált MAC és 10 Base-T PHY






Teljes és fél duplex
Támogatása az egyik 10 Base-T port automatikus felderítése és korrekciója polaritás
Automatikus igazítás ellenőrző generáció
Avtootbros hibás csomagok
Programozható funkció retry hiba
Programozható funkciók párnázottak és CRC generáció
Programozható funkció szűrési hibás csomagok
SPI órajel frekvencia 20 MHz
Board méretei: 55 x 36 mm-es

Vezetési ENC28J60 modul

A készülék végrehajtja a funkciókat a web szerver tartalmaz ENC28J60 modul csatlakoztatva van a mikrokontroller modul. mikrokontroller szoftver interakció a chip ENC28J60, és a webszerver. A központi egység Arduino lehet használni, mint az MCU modul.

A nevét a modul kapcsolatokat.

A modult a ENC28J60 Arduino MEGA.

Kapcsolat Arduino UNO, köszönhetően, Nano, Duemilanove

Hozam megszakítás csomag átvételekor

2 vagy fogyatékkal élő

SPI MISO kimenő adatok

SPI SCK órajel bemenete

Óra Kimeneti óra

SPI MOSI bemenő adatok


Ha csatlakozik az érintkezők alkalmazott Arduino SPI interfész és visszaállítani a hatalom. Kapcsolat alaphelyzetbe lehet csatlakoztatni a digitális input-output terminál Arduino, ha a program arra szolgál, hogy a kínálat alaphelyzetbe digitális kapcsolati jelet. modul ellátási 3,3 V lehet venni a Arduino.

A legegyszerűbb módja annak, hogy megismerjék a ENC28J60 - használat hardver és szoftver Arduino, mert az Arduino IDE szoftvercsomag könyvtárak ENC28J60. Próbálja közvetlenül az interneten keresztül egy 8-csatornás relé modul kapcsolási terhelés 220 W. Képzeld el a feladatot a kapcsolási közvilágítás, utak, hidak.


Ellenőrzést az interneten két relé.


Ellenőrzést az interneten négy relé.

Először meg kell letölteni és telepíteni ethernet kártyádat könyvtár Arduino IDE.

Csatlakozás modulok és ENC28J60 Arduino UNO, irányított jelölés. Kontaktusok:

GND - GND pin 5V,

Ellenőrizze a csatlakozásokat. Az Arduino IDE, lásd a példákat ethernet kártyádat megtalálják a könyvtár, ott válassza rbbb_server. Alapértelmezett ethernet kártyádat könyvtár használja, hogy jelezze CS SPI interfész pin 8 Arduino. Amikor csatlakozik a többi kapcsolatot, például 10, mint a mi esetünkben, szükséges módosítani a szöveget, a példa rbbb_server. Elején rbbb_server program az alábbi sorokat.

bájtos Ethernet :: puffert [500];
BufferFiller bfill;

void setup (), ha (ether.begin (sizeof Ethernet :: puffer, mymac) == 0)
Serial.println (F ( "Nem sikerült elérni Ethernet vezérlő"));
ether.staticSetup (MYIP);
>

Megváltoztatni a programot, hogy használja a kapcsolattartó 10. A negyedik sor alulról a fenti szövegben a program, hogy módosítsa a részét szerelőkengyellel 10 formájában:

ha (ether.begin (sizeof Ethernet :: pufferben, mymac, 10) == 0)

Szoftverek nyolc RELAY

// több adat van a weblapon, a nagyobb mennyiségre van szükség, puffer






bájtos Ethernet :: puffert [900];
BufferFiller bfill;

// Array részt Arduino kapcsolatok relé vezérlésre
int LedPins [] = 2,3,4,5,6,7,8,9>;

// Array változtathatnak
logikai PinStatus [] = 1,2,3,4,5,6,7,8>;

const char http_OK [] PROGMEM =
"HTTP / 1.0 200 OK \ r \ n"
"Content-Type: text / html \ r \ n"
"Pragma: no-cache \ r \ n \ r \ n";
const char http_Found [] PROGMEM =

"HTTP / 1.0 302 Talált \ r \ n"
"Hely: / \ r \ n \ r \ n";
const char http_Unauthorized [] PROGMEM =
"HTTP / 1.0 401 jogosulatlan \ r \ n"
"Content-Type: text / html \ r \ n \ r \ n"
"

void homePage ()
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 ( "off") :? PSTR ( "on"),
PinStatus [1] PSTR ( "ON") :? PSTR ( "OFF"),
PinStatus [2] PSTR ( "off") :? PSTR ( "on"),
PinStatus [2] PSTR ( "ON") :? PSTR ( "OFF"),
PinStatus [3] PSTR ( "off") :? PSTR ( "on"),
PinStatus [3] PSTR ( "ON") :? PSTR ( "OFF"),
PinStatus [4] PSTR ( "off") :? PSTR ( "on"),
PinStatus [4] PSTR ( "ON") :? PSTR ( "OFF"),
PinStatus [5] PSTR ( "off") :? PSTR ( "on"),
PinStatus [5] PSTR ( "ON") :? PSTR ( "OFF"),
PinStatus [6] PSTR ( "off") :? PSTR ( "on"),
PinStatus [6] PSTR ( "ON") :? PSTR ( "OFF"),
PinStatus [7] PSTR ( "off") :? PSTR ( "on"),
PinStatus [7] PSTR ( "ON") :? PSTR ( "OFF"),
PinStatus [8] PSTR ( "off") :? PSTR ( "on"),
PinStatus [8] PSTR ( "ON"): PSTR ( "OFF")) ;?
>

void loop ()
késleltetés (1);
szót LEN = ether.packetReceive (); // Ellenőrizze ethernet csomagokat
szót pos = ether.packetLoop (LEN); // Ellenőrizze a TCP csomagok
ha (poz) bfill = ether.tcpOffset ();
char * adatok = (char *) Ethernet :: puffer + pos;
if (! strncmp ( "GET /", adatok, 5) = 0) bfill.emit_p (http_Unauthorized);
>

mást adatok + = 5;
ha a (adatok [0] == '') homePage (); // Ha az észlelt változást a faluban, majd indítsa el a funkciót
A (int i = 0; i <= 7; i++)digitalWrite(LedPins[i],PinStatus[i+1]);
>

// "16" = a karakterek számát "? ArduinoPIN1 = on".
else if (strncmp ( "ArduinoPIN1 = a?", adatok, 16) == 0) PinStatus [1] = true;
bfill.emit_p (http_Found);
>

else if (strncmp ( "ArduinoPIN2 = a?", adatok, 16) == 0) PinStatus [2] = true;
bfill.emit_p (http_Found);

else if (strncmp ( "ArduinoPIN3 = a?", adatok, 16) == 0) PinStatus [3] = true;
bfill.emit_p (http_Found);

else if (strncmp ( "ArduinoPIN4 = a?", adatok, 16) == 0) PinStatus [4] = true;
bfill.emit_p (http_Found);

else if (strncmp ( "ArduinoPIN5 = a?", adatok, 16) == 0) PinStatus [5] = true;
bfill.emit_p (http_Found);

else if (strncmp ( "ArduinoPIN6 = a?", adatok, 16) == 0) PinStatus [6] = true;
bfill.emit_p (http_Found);

else if (strncmp ( "ArduinoPIN7 = a?", adatok, 16) == 0) PinStatus [7] = true;
bfill.emit_p (http_Found);

else if (strncmp ( "ArduinoPIN8 = a?", adatok, 16) == 0) PinStatus [8] = true;
bfill.emit_p (http_Found);

else if (strncmp ( "ArduinoPIN1 = off?", adatok, 17) == 0) PinStatus [1] = false;
bfill.emit_p (http_Found);

else if (strncmp ( "ArduinoPIN2 = off?", adatok, 17) == 0) PinStatus [2] = false;
bfill.emit_p (http_Found);

else if (strncmp ( "ArduinoPIN3 = off?", adatok, 17) == 0) PinStatus [3] = false;
bfill.emit_p (http_Found);

else if (strncmp ( "ArduinoPIN4 = off?", adatok, 17) == 0) PinStatus [4] = false;
bfill.emit_p (http_Found);

else if (strncmp ( "ArduinoPIN5 = off?", adatok, 17) == 0) PinStatus [5] = false;
bfill.emit_p (http_Found);

else if (strncmp ( "ArduinoPIN6 = off?", adatok, 17) == 0) PinStatus [6] = false;
bfill.emit_p (http_Found);

else if (strncmp ( "ArduinoPIN7 = off?", adatok, 17) == 0) PinStatus [7] = false;
bfill.emit_p (http_Found);

else if (strncmp ( "ArduinoPIN8 = off?", adatok, 17) == 0) PinStatus [8] = false;
bfill.emit_p (http_Found);

statikus byte mymac [] = 0x7b, 0x6c, 0x4d, 0x3e, 0x2f, 0x10>;

EGYÜTTMŰKÖDÉS modul ENC28J60

Ha a kísérletek sikerrel járnak, egy másik web szerver a helyi hálózaton, bővítése, a második ENC28J60 modul, adjuk hozzá a harmadik és a negyedik egység az ugyanazon a helyi hálózaton. Ez adja a rendszer bővítése, illetve a párhuzamos, redundáns nagyobb megbízhatóság. Ebben az esetben egy 80-as port nem elég. A probléma megoldása érdekében az egyes alábbi web szerver hozzárendel egy egyedi port, hogy egy külön bejegyzést a programban. A void setup () adja meg a következő sort:

A modul az Microchip ENC28J60. A fedélzeten van kötve a vezérlő a szabványos SPI interfész átviteli sebessége 20 MHz.

Jellemzők:
ENC28J60 Ethernet SOP28
SPI interfész
Tápfeszültség: 3,3 V
A működési frekvenciája 25MHz
Méretek: 55x36 mm