Arduino Leonardo ETHを使ってみた
Arduino Leonardo ETHを使うときに困ったことと,その解決
カテゴリ: Arduino
2017-07-23 18:21:02
# Arduino Leonardo ETH
Arduino LeonardoとEthernet Shield v2がセットになったもの.
[秋月電子](http://akizukidenshi.com/catalog/g/gM-09398/)や[スイッチサイエンス](https://www.switch-science.com/catalog/2269/)で売られている.
ATMega32U4マイコンと,Ethernet用にW5500チップを搭載.
USB-シリアル変換ICは搭載されておらず,シリアル変換部分はATMega32U4上で実装されている.ArduinoのスケッチをアップロードするたびにUSB-シリアルの接続がリセットされるのがちょっとうざかったりした.
# Leonardo ETHで簡易HTTPサーバ
Arduino IDEのバージョンに注意.2016年前半まではArduinoが内部分裂しており,2つの組織から異なるバージョンのIDEが配布されていた,2016年終わりには和解したようで,双方から同じv1.8系が配布されるようになった.
ここで,簡易HTTPサーバを試しに使ってみるため,`ファイル`-`スケッチ例`-`Ethernet`-`WebServer`を開いてみる.
すると,以下のようなライブラリを読み込んでいる.
```
#include
#include
```
`SPI.h`はともかく,`Ethernet.h`が曲者である.
実は,`Ethernet.h`はW5100チップを搭載したEtherenetシールド用のライブラリである.
一方,今回の記事にあるW5500チップを搭載したボードには`Ethernet2.h`を読み込む必要がある.
これは,Arduinoの公式に書いてあったりする(https://www.arduino.cc/en/Reference/Ethernet).
ここで必要な`Ethernet2.h`,インストール直後のIDEにはくっついてこない.だから,上記のサンプルを書き換えたところで,ビルドが通らない.
`スケッチ`-`ライブラリをインクルード`-`ライブラリを管理`から,検索で`Ethernet2`として出てくるライブラリをインストールする.これで完成.
ちなみに`Ethernet.h`のままビルドして書き込むと,DHCPでIPアドレスを取得できなかったり,自分でIPアドレスを指定したつもりでも`0.65.65.65`みたいなおかしな設定になったりする.
# まとめ
Arduino Leonardo ETHを使うときは,`Ethernet2.h`を使おう.