이더넷 - ENC28J60 모듈(RJ45)
이더넷 쉴드를 아두이노 키트에서 사용하는 방법에 대해서 소개하겠습니다.
1. 라이브러리
라이브러리
아두이노 설치 폴더에 압축을 풀어서 넣어두세요. |
라이브러리를 만든 사이트입니다. |
2. 데이터시트
데이터시트
순수한 ENC28J60의 칩셋에 대한 데이터시트입니다. 쉴드에서는 크게 깊이는 다루지 않습니다. |
3. 구성
부품명 | 갯수 | 특징 |
Arduino Mega 2560 || Arduino UNO R3 (아두이노 메가 2560) || (아두이노 우노 R3) | 1 | |
ENC28J60 모듈 | 1 | ■ RJ45 규격 ■ 최대속도: 10Mbps 지원 ■ ENC28J60 칩을 사용하는 이더넷 모듈 ■ 아두이노에서 SPI를 이용하여 통신합니다. ■ 소형의 특징을 지님. |
UTP 케이블 | 1 |
|
ENC28J60 모듈 - 앞면 |
|
ENC28J60 모듈 - 뒷면 |
4. 회로도 구성
ENC28J60 Module(ENC28J60 모듈) | Arduino Uno/Due(아두이노 우노/듀) | Arduino Mega(아두이노 메가) |
CS | D10 | D53 |
SI | D11 | D51 |
SO | D12 | D50 |
SCK | D13 | D52 |
RESET | RESET | RESET |
INT | D2 | D2 |
VCC | 3V3 | 3V3 |
GND | GND | GND |
아두이노 메가에 구성한 예 |
아두이노 우노에 구성한 예 |
5. 동작
동작의 예입니다. |
정상적으로 이더넷 쉴드가 잘 동작하는 지, 구현하게 될 주제이기도 합니다.
6. DHCP 서버 활성화 하기
인터넷 공유기에 이더넷을 꽂아도 상관 없습니다.
노트북을 통해서 윈도우나 리눅스 등에서 활용한다면, DHCP 서버가 가능한 상태로 해줘야 합니다.
왜냐하면, 아이피를 할당 받아야 하기 때문입니다.
인터넷 공유 또는 DHCP 서버 활성화의 예 |
6. 소스코드
// Arduino demo sketch for testing the DHCP client code
//
// Original author: Andrew Lindsay
// Major rewrite and API overhaul by jcw, 2011-06-07
//
// Copyright: GPL V2
// See http://www.gnu.org/licenses/gpl.html
#include <EtherCard.h>
static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 };
byte Ethernet::buffer[700];
void setup () {
Serial.begin(57600);
Serial.println(F("\n[testDHCP]"));
Serial.print("MAC: ");
for (byte i = 0; i < 6; ++i) {
Serial.print(mymac[i], HEX);
if (i < 5)
Serial.print(':');
}
Serial.println();
if (ether.begin(sizeof Ethernet::buffer, mymac) == 0)
Serial.println(F("Failed to access Ethernet controller"));
Serial.println(F("Setting up DHCP"));
if (!ether.dhcpSetup())
Serial.println(F("DHCP failed"));
ether.printIp("My IP: ", ether.myip);
ether.printIp("Netmask: ", ether.netmask);
ether.printIp("GW IP: ", ether.gwip);
ether.printIp("DNS IP: ", ether.dnsip);
}
void loop () {}
7. 참고 사이트
https://arduinodiy.wordpress.com/2013/04/07/connect-an-enc28j60-ethernet-module-to-an-arduino/
'공부 > 아두이노(Arduino)' 카테고리의 다른 글
전, 후진 - 자동차 구현 (0) | 2017.10.19 |
---|---|
digitalWrite, digitalRead없이 레지스터에서 아두이노 핀 제어 (0) | 2017.10.17 |
디스플레이 - LCD 2004A + I2C (0) | 2017.10.16 |
Knight (객체 - OOP) (0) | 2017.10.14 |
Knight Kits + 모터 구현하기 (0) | 2017.10.10 |