0. Componentes e programação necessários para o Módulo Ethernet ENC28J60 Arduino

Componentes necessários:

{Produto: 2.000} {Produto: 938}
  • Dois LEDs
  • Placa de cartão
  • • Cabos Dupont
  • Conexão Ethernet

I. Como usar o módulo Ethernet ENC28J60 com Arduino

O módulo Ethernet se comunica com a Arduino tipo Arduino usando o protocolo SPI. Podemos usar o ENC28J60 junto com um processador como Arduino para conectar nossos projetos de eletrônica e robótica à Internet.

Este módulo suporta velocidades de 10 Mbits / se modos Duplex (Full-Duplex) e Half-Duplex (Half-Duplex) com detecção e correção automática de polaridade. O ENC28J60 está em conformidade com as especificações IEEE 802.3 10BASE-T.

II. Procedimentos experimentais

Conexão

O módulo é alimentado diretamente por Arduino , portanto, não precisamos de uma fonte de alimentação externa.

Os pinos são conectados de acordo com a tabela:

Pino do Módulo Ethernet

Arduino por Arduino UNO

SIM

D11 (MOSI)

CS

D10 (SS)

Vcc

3,3 V

SW

D12 (MISO)

SCK

D13 (SCK)

REDEFINIR

D9 (RST)

GND

Gnd

Código

Primeiramente, você precisa adicionar a biblioteca Ethercard.h ao Arduino IDE (Programa -> Incluir Biblioteca -> Gerenciar Bibliotecas ...), localizá-la e instalar a versão mais recente.
Com esta biblioteca podemos ver os muitos exemplos que nos oferece, como o envio de notificações para dispositivos Android.
Também podemos tornar nosso Arduino um cliente ou servidor Ethernet.

Exemplo - Servidor Ethernet

Neste exemplo, faremos com que nosso Arduino ligue Arduino desligue dois LEDs via http web ( Arduino não é tão poderoso para suportar a carga https).

Iremos conectar os LEDs aos pinos de entrada A0 e A1 e ao aterramento.

Abra um esboço vazio e copie o seguinte código:

#include <EtherCard.h>

byte estático mymac [] = {0xDD, 0xDD, 0xDD, 0x00, 0x01, 0x05};

byte estático myip [] = {192, 168, 1, 168};

byte Ethernet :: buffer [700];

const int pinLed1 = A0;

const int pinLed2 = A1;

char * statusLed1 = "OFF";

char * statusLed2 = "OFF";

void setup () {

Serial.begin (9600);

if (! ether.begin (sizeof Ethernet :: buffer, mymac, 10))

Serial.println ("O controlador Ethernet não pôde ser acessado");

outro

Serial.println ("Driver Ethernet inicializado");

if (! ether.staticSetup (myip))

Serial.println ("Não foi possível definir o endereço IP");

Serial.println ();

pinMode (pinLed1, OUTPUT);

pinMode (pinLed2, OUTPUT);

digitalWrite (pinLed1, LOW);

digitalWrite (pinLed2, LOW);

}

palavra estática mainPage ()

{

BufferFiller bfill = ether.tcpOffset ();

bfill.emit_p (PSTR ("HTTP / 1.0 200 OKrn"

"Content-Type: text / htmlrnPragma: no-cachernRefresh: 5rnrn"

"<html> <head> <title> Tutorial Solectro </title> </head>"

"<body>"

"<div style = 'text-align: center;'>"

"<h1> Saídas digitais </h1>"

"<br /> <br /> LED de status 1 = $ S <br />"

"<a href='./?data1=0'> <input type = 'button' value = 'OFF'> </a>"

"<a href='./?data1=1'> <input type = 'button' value = 'ON'> </a>"

"<br /> <br /> LED de status 2 = $ S <br />"

"<a href='./?data2=0'> <input type = 'button' value = 'OFF'> </a>"

"<a href='./?data2=1'> <input type = 'button' value = 'ON'> </a>"

"<br /> </div> \ n </body> </html>"), statusLed1, statusLed2);

return bfill.position ();

}

void loop ()

{

palavra len = ether.packetReceive ();

palavra pos = ether.packetLoop (len);

if (pos)

{

if (strstr ((char *) Ethernet :: buffer + pos, "GET /? dados1 = 0")! = 0) {

Serial.println ("Led1 OFF");

digitalWrite (pinLed1, LOW);

statusLed1 = "OFF";

}

if (strstr ((char *) Ethernet :: buffer + pos, "GET /? dados1 = 1")! = 0) {

Serial.println ("Led1 ON");

digitalWrite (pinLed1, HIGH);

statusLed1 = "LIGADO";

}

if (strstr ((char *) Ethernet :: buffer + pos, "GET /? dados2 = 0")! = 0) {

Serial.println ("Led2 OFF recebido");

digitalWrite (pinLed2, LOW);

statusLed2 = "OFF";

}

if (strstr ((char *) Ethernet :: buffer + pos, "GET /? dados2 = 1")! = 0) {

Serial.println ("Led2 ON");

digitalWrite (pinLed2, HIGH);

statusLed2 = "ON";

}

ether.httpServerReply (mainPage ());

}

}

Depois de verificar a placa e a porta, faça o upload. Abra uma guia no navegador do seu computador e digite o endereço: 192.168.1.168

Em seguida, uma pequena teia aparecerá com os botões de controle dos LEDs. Clicar em cada botão faz uma nova solicitação para Arduino , com um URL diferente do original. Arduino captura a nova solicitação e usa a URL recebida para executar as ações apropriadas.

Com este exemplo e os da biblioteca, você está pronto para fornecer ao seu Arduino conectividade com a Internet.