NOBのArduino日記!

NOBのArduino日記!

趣味は車・バイク・自転車・ラジコン・電子工作です。

Arduino IDE(Ethernet.begin関数の使い方)

Ethernet.begin関数
  Serverクラス※1のEthernet.begin関数は、イーサネットライブラリとネットワーク設定を初期化します。
 バージョン1.0では、ライブラリはDHCPをサポートしています。Ethernet.begin(mac)を適切なネットワーク設定で使用すると、イーサネットシールドは自動的にIPアドレスを取得します。
 これにより、スケッチサイズが大幅に増加します。
 必要に応じてDHCPリースが正しく更新されるように、Ethernet.maintain関数を定期的に呼び出してください。

Arduino Leonardo EthernetArduino Leonardo(ATmega32u4搭載)とArduinoイーサネットシールド2をひとつに合わせたArduinoボードです。MACアドレスを書いたシールがボードに貼られています。このボードで開発をするためにはArduino IDE 1.7.2以降が必要です。(2015.04.30現在)PoE (Power over Ethernet)モジュールを追加すると、LANケーブル1本で電源供給と通信が可能です。IEEE802.3af の規格に準拠した環境下で動作します。
図1:Arduino Leonardo Ethernet
以下補足です

※1:Serverクラスは、接続されたクライアント(他のコンピュータまたはデバイス上で実行されているプログラム)との間でデータを送受信できるサーバーを作成します。

■使用例
 Arduino IDEで使用するEthernet.begin関数の使い方は以下の通りです。
  例えば「Arduino Leonardo Ethernet」をPCにUSB接続し、またネットワークに接続されたLANケーブル接続して、ArduinoIDEの「ツール」→「ボード」→「Arduino Ethernet」を選択した状態にします。
 次に下記プログラムを実行すると、イーサネットライブラリとネットワーク設定を初期化します。

#include <SPI.h>
#include <Ethernet.h>
// シールドのメディアアクセス制御(イーサネットハードウェア)アドレス
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
// シールドのIPアドレス
byte ip[] = { 10, 0, 0, 177 };

void setup() {
  Ethernet.begin(mac, ip);
}

void loop () {}
イメージ 1
図1:プログラム例

■構文
 

Ethernet.begin(mac); 
 Ethernet.begin(mac, ip); 
 Ethernet.begin(mac, ip, dns); 
 Ethernet.begin(mac, ip, dnsgateway); 
 Ethernet.begin(mac, ip, dnsgateway, subnet); 

■パラメータ
 mac: デバイスMAC(Media Access Control)アドレス(6バイトの配列)
  これはシールドのイーサネットハードウェアアドレスです。
  新しいArduinoイーサネットシールドには、デバイスMACアドレス
  ステッカーが含まれています。
  古いシールドの場合は、独自のシールドを選択します。

 ip: デバイスIPアドレス(4バイトの配列)

 dns: DNSサーバーのIPアドレス(4バイトの配列)。
 オプション(デフォルトはデバイスIPアドレスで、最後のオクテットは1に設定)

 gateway: ネットワークゲートウェイIPアドレス(4バイトの配列)
 オプション(デフォルトはデバイスIPアドレスで、最後のオクテットは1に設定)

 subnet: ネットワークのサブネットマスク(4バイトの配列)
 オプション(デフォルトは255.255.255.0)

■戻り値
 この関数のDHCPバージョンEthernet.begin(mac)は、DHCP接続が成功するとint:1、失敗した場合は0を返します。他のバージョンは何も返しません。

イメージ 1 イメージ 3
励みになりますのでよければクリック下さい(^o^)/

↩【ArduinoIDE reference】目次に戻る