четверг, 18 июля 2013 г.

Соединение ENC28J60 с Ардуино Мега 2560


В этой статье я бы хотел передать личный опыт подключения интернет модуля к ардуино. Сам я с ним довольно таки сильно намучался. Причиной этому послужило отсутствие нужной информации по подключению этого модуля к самой ардуино.
Вот собственно сам интернет модуль: ENC28J60



Вот собственно само ардуино: Arduino MEGA2560
Так, начнем с распиновки.
RST —> RESET
GND —> GND
3V3 —> VCC
D2 —> INT
D53 —> CS
D51 —> SI
D50 —> SO
D52 —> SCK
D** это номер цифрового порта
Вот библиотека, необходимая для работы с модулем Библиотека  Зеркало 2
В этой библиотеке, в файле enc28j60.c нужно исправить код. Для Ленивых, вот ссылка на заточенную библиотеку под мегу2560 http://yadi.sk/d/QH3TT79-6z32A
Для любознательных, я напишу статью о том как вручную прописать порты в библиотеку чуть позже.
И так. Мы подключили модуль к ардуино, загнали библиотеку в компилятор. Теперь можно воспользоваться готовыми примерами, чтобы проверить все ли работает. Жмем Фаил - примеры - ETHER_28J60 -  HelloWorld


#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);
}

Загружаем данный скетч в ардуино. В адресную строку браузера вбиваем этот айпишнек (в примере 192.168.1.15), И вуаля - У нас написано HelloWorld на веб странице. Надеюсь у вас все заработало, если нет, то пишите в комменты, либо мне на vk.com/valeriiv

13 комментариев:

  1. Подскажите в какой версии Arduino ide скомпилилили?

    ОтветитьУдалить
  2. Версия либы и IDE такая же как и у Вас-но при компиляции вот такое вылазиет
    "sketch_aug02c.ino:1:25: error: etherShield.h: No such file or directory
    sketch_aug02c.ino: In function 'void loop()':
    sketch_aug02c.ino:33: warning: deprecated conversion from string constant to 'char*'"
    Не подскажите в чем проблема?

    ОтветитьУдалить
    Ответы
    1. Не видит библиотеку. Вы правильно распаковали архив?

      Удалить
  3. Выдернул из архива,копировал в libreries.Но при открытии скетча в примерах-пришет нет доступа

    ОтветитьУдалить
    Ответы
    1. http://i.gyazo.com/419c8788826ece52ea96760438586d92.png вот с похожей проблемой

      Удалить
    2. Отпишите, если помогло

      Удалить
  4. Помогло стандартным импортированием библиотек.Еще вопрос-а сетевая карточка со статическим должна быть ip или с автоматическим?

    ОтветитьУдалить
    Ответы
    1. Со статическим, я думаю, удобней работать будет. Например: на карту ip 192.168.0.16 ; на шилд 192.168.0.15

      Удалить
  5. Прописал IP как сказали,плата у меня arduino mini pro,подключил SPI к 10,11,12,13
    запускаю скетч из Вашей статьи -но платка не пингуется.. пишет вебстраничке- нет подключения.Соединения проверил питание до плат доходит 3,3 вольта

    ОтветитьУдалить
  6. подключил к Меге 2560, импортировал исправленную библиотеку, из примера взял Хелло, Мир, скомпилировал и закинул на Мегу. сетевой модуль изображает активность, мигает диодом в RJ-45, но ничего не пингуется и не отвечает на 80 порту

    ОтветитьУдалить
    Ответы
    1. В данный момент у меня нету платы mega2560, проверить не могу. Попробуйте соединить по этому мануалу. http://vipvizor.blogspot.ru/2013/08/arduino-2560-dht11-enc28j60-220.html

      Удалить
    2. Как вариант, попробуйте сгенерировать MAC . http://www.miniwebtool.com/mac-address-generator/

      Удалить