Adatum
Мар
11
2013

Работа Arduino nano с сетевым контроллером ENC28J60

Работа Arduino nano с сетевым контроллером ENC28J60
Добрый день сегодня хочу представить вашему вниманию схему подключения сетевого контроллера ENC28J60 (HanRun HR911105A — в моём случае) к платке Arduino nano. Из всех библиотек больше всех понравилась библиотека ETHER_28J60 автора Simon Monk.

Скачать библиотеку

Распаковка подключения

RST —> RESET
GND —> GND
3V3 —> VCC
D2 —> INT
D10 —> CS
D11 —> SI
D12 —> SD
D13 —> SCK

В файле библиотеки enc28j60.c следует изменить подключение контроллера к нашей плате следующим образом, для nano соответственно pin 10,11,12,13 для Mega pin 53,51,50,52. В приложенной библиотеки настройки для Aduino nano:

#define ENC28J60_CONTROL_CS 53 //10
#define SPI_MOSI 51 //11
#define SPI_MISO 50 //12
#define SPI_SCK 52 //13

ardlan

Схема

Пример использования библиотеки.

#include "etherShield.h"
#include "ETHER_28J60.h"

static uint8_t mac[6] = {0x54, 0x55, 0x58, 0x10, 0x00, 0x24};   
static uint8_t ip[4] = {192, 168, 1, 15};                      
static uint16_t port = 80;                                    

ETHER_28J60 ethernet;

void setup()
{ 
  ethernet.setup(mac, ip, port);
}

void loop()
{
  if (ethernet.serviceRequest())
  {
    ethernet.print("<H1>Hello World</H1>");
    ethernet.respond();
  }
  delay(100);
}

Похожие статьи

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

  • There are multiple issues involving the safety and usability of your chimney. Please read this response in its entirety. I suggest you get a CSIA Certified Sweep who fireplace is very familiar with factory built fireplace and chimney systems to inspect your chimney. Read below to find out how to identify the manufactures name and the model number of yourand how to obtain a copy of the Installation manual for your specific fireplace. Without this information it may be difficult to properly evaluate the chimney.

  • Что-то мой IDE ругается, не хочет компилировать!!!!!!!!

    • У меня :
      Arduino Nano (Китай),
      Сетевой модуль ENC28J60 — http://qoo.by/I8w,
      Датчик тепла DS18B20
      Роутер TP-LINK TL-WR841N

      1) Если у кого затык с библиотекой, то она не запускалась на IDE 1.6.8, т.к. предназначена до версии 1.0.1, вроде.
      В итоге выбивало ошибку:

      In file included from C:\Users\SenDen\Documents\Arduino\libraries\etherShield/etherShield.h:25:0,

      from C:\Users\SenDen\Documents\Arduino\sketch_nov11a\sketch_nofv17a\sketch_nofv17a.ino:1:

      C:\Users\SenDen\Documents\Arduino\libraries\etherShield/ip_arp_udp_tcp.h:32:66: error: ‘prog_char’ does not name a type

      extern uint16_t fill_tcp_data_p(uint8_t *buf,uint16_t pos, const prog_char *progmem_s);

      ^

      In file included from C:\Users\SenDen\Documents\Arduino\sketch_nov11a\sketch_nofv17a\sketch_nofv17a.ino:1:0:

      C:\Users\SenDen\Documents\Arduino\libraries\etherShield/etherShield.h:34:65: error: ‘prog_char’ does not name a type

      uint16_t ES_fill_tcp_data_p(uint8_t *buf,uint16_t pos, const prog_char *progmem_s);

      ^

      exit status 1

      Я решил эту проблему заменив все «prog_char» на «char» во всех файлах библиотек ETHER_28J60 и etherShield

      2) Модуль ENC28J60 не реагирует на сетевой кабель.
      Я его подключал сначала на 3.3 Вольта. Компилировалось, заливалось, красный светодиод горит на модуле, а оранжевый и зеленый, что возле сетевого кабеля — нет (извините, не знаю как они называются).
      В итоге знакомый подсказал, что пин 3.3 вольта у Arduino Nano — говно, тем более китайской. Лучше отдельно питать или втыкнуть на пин в 5 вольт, но модуль будет греться, так он делал не раз с другими модулями, работало.
      Я боялся, но его слова меня успокоили. В итоге сработало! (НО ВНИМАНИЕ!!! ПОСТУПАЙТЕ НА СВОЙ СТРАХ И РИСК!!! ЕСТЬ РИСК УБИТЬ МОДУЛЬ!!!) Перед тем, как идти на такие крайние меры, 7 раз подумайте!

      Всем успехов, если кому помог, пишите спасибо!

  • Хорошая статья, сами ардуинки по вкусным ценам тут http://modul-tech.ru/

  • У меня почему-то выдает ошибку при капмиляции?

  • Здравствуйте! Дмитрий большое спасибо за реальную помощь.

  • Для Бориса сделал новую статью http://adatum.ru/prosmotr-temperatury-s-datchika-dallas-18b20-po-seti.html

    • Od tematu: bÅ‚agam, napisz na samej górze, co by każdy czytacz mógÅ‚ przeczytać i zapamiÄ™tać. „Na pewno” pisze siÄ™ osobno, &#&wa2;napr22dÄ™8#8221; pisze siÄ™ razem. Aż oczy bolÄ…, bo ludzie czÄ™sto do rzeczy majÄ… myÅ›li i umiejÄ… je nazwać tylko zapisać już niekoniecznie.

  • Почитай про несколько устройств SPI.Пины SCK MISO MOSI параллельно на устройствах, а CS отдельно для каждого.

  • ENC28J60 сидит на Mega pin 53,51,50,52 , rc522 сидит на этих же ногах , если будут конфликтовать то как их развести?

  • Здравствуйте! Можно ли к этой схеме подключить датчик ds18b20, что бы по сети следить за температурой?

    • Конечно можно, вам показать пример для статического ip или получаемого по dhcp

      • Спасибо большое за ответ! Мне бы пример для статического ip адреса.

        • treading water is what I did. At time I had acecpmlishmonts on weight loss, but something would always dislodge my progress. I think I’m the better for the year without goals, but only if I capitalize on my observations from this past year.

  • Как на этой библиотеке dhcp клиент сделать. Везде в примерах ip жестко прописан. Это утопия и не работает с локальными сетями где ip выдает роутер.

  • На IDE 1.6.4 не пошло, на 1.0.1 все работает. Может кто знает как Modbus TCP прикрутить?

  • Добрый день. у меня выдается следующая ошибка. можно подсказать в чем проблема?

    Изменена опция сборки, пересобираем все
    In file included from C:\Program Files (x86)\Arduino\libraries\etherShield/etherShield.h:25:0,
    from sketch_may16d.ino:1:
    C:\Program Files (x86)\Arduino\libraries\etherShield/ip_arp_udp_tcp.h:32:66: error: ‘prog_char’ does not name a type
    extern uint16_t fill_tcp_data_p(uint8_t *buf,uint16_t pos, const prog_char *progmem_s);
    ^
    C:\Program Files (x86)\Arduino\libraries\etherShield/ip_arp_udp_tcp.h:32:77: error: ISO C++ forbids declaration of ‘progmem_s’ with no type [-fpermissive]
    extern uint16_t fill_tcp_data_p(uint8_t *buf,uint16_t pos, const prog_char *progmem_s);
    ^
    In file included from sketch_may16d.ino:1:0:
    C:\Program Files (x86)\Arduino\libraries\etherShield/etherShield.h:34:65: error: ‘prog_char’ does not name a type
    uint16_t ES_fill_tcp_data_p(uint8_t *buf,uint16_t pos, const prog_char *progmem_s);
    ^
    C:\Program Files (x86)\Arduino\libraries\etherShield/etherShield.h:34:76: error: ISO C++ forbids declaration of ‘progmem_s’ with no type [-fpermissive]
    uint16_t ES_fill_tcp_data_p(uint8_t *buf,uint16_t pos, const prog_char *progmem_s);
    ^
    Ошибка компиляции.

    • он же пишет — error: ‘prog_char’ does not name a type

      поменяй везде ‘prog_char’ на ‘char’

      • В смысле все поменять???
        Можно по подробнее?

    • Jonathan disse:Como vc tem coragem de postar um assunto no qual vc é leigo ,nunca viu um hd de un tera e nem testou como pode afirmar que não funciona ,eu uso um hd de um tera a 11 meses ,seria mais inttnigelee postar só aquilo que temos certeza ajudariamos mais os que estão chegando agora.

  • У меня диод на питание Nano взорвался, через некоторое время после подключения

  • Не как только на d3 т.к на arduino nano всего 2 выхода это d2 и d4

    • Извеняюсь d2 и d3

  • Здравствуйте. Не подскажите, как перекинуть INT c D2 на D9 ?

  • Здравствуйте, я хотела бы спросить, есть ли простой способ выяснить, может ли веб-модуль работает на всех. Библиотеки я установил, программа поступил в Arduino, но модуль не отвечает или я не могу пинговать его. Ни на маршрутизаторе, ни через статический IP. Можете ли вы назвать кого-то, чтобы попробовать его и работает? Спасибо.

    • Да, у меня и моих знакомых работает. Если собрали по моей схеме и используете библиотеку от сюда работает 100%.

  • Thank Dimitri good work :-)
    Please further instructions with Arduino and the Internet

  • Please where in the library to write those pins for Arduino Nano, there are two files. Thank you for your answer.

    • libraries/etherShield/enc28j60.c here in this file. Actually download the library from this page there is already configured for nano.

  • Привет, а не подскажешь как с помощью ардуинки можно смс отправлять?

    • Да конечно можно есть специальные платы расширения, позже скину ссылку.