Arduinoにはさまざまなシールド(機能拡張基板)が発売されています。しかしその中にはArduino Uno(あるいはDuemilanoveかそれ以前のバージョン)を対象に作られていて、Arduino Mega 2560やArduino Leonardoではそのまま使えないものもあります。例えばMP3プレイヤーシールドなどはD11〜D13にSPI信号がでていることを前提に作られており、そのままではMegaやLeonardoでは使えません。
一方、Uno R3, Mega 2560 R3 ,Leonardo(R3)ではArduino Pinout 1.0というレイアウトが採用されており、SPIやI2Cなどの端子が共通化されています。
そこで今回は、Arduino Pinout 1.0レイアウトに対応したArduino用バニラシールド基板ver.2(白)を利用して、Uno用のSPI接続シールドをMegaやLeonardoでも使えるようにする変換シールドを作成します。
材料
- Arduino用バニラシールド基板ver.2(白) ×1枚
- Arduinoシールド用ピンソケットのセット(R3対応)×1組
- 2列3P(全6P)ピンソケット×1個
- 配線材適量
シールド上の配線
下の写真にしたがって配線していきます。色違いの配線材を使った方がわかりやすく配線できるでしょう。バニラシールドver.2はArduino Pinout1.0に対応して基板の端にICSP端子の引き出しを付けてあるので、簡単にSPI信号を取り出すことが出来ます。
ICSPコネクタの取り付け
6PピンソケットをICSP端子に取り付けます。GNDとVCCが両端になるように取り付けてください。
ピンソケットの取り付け
R3 対応のピンソケットは6P,8P,8P,10Pと3種類4個あります。それぞれに合った枠に差し込んではんだづけして下さい。外側の枠がピンソケットの取り付け枠です。取り付けるスルーホールはジグザグハックになっているので、ピンソケットの足を挿すだけで、ほぼ垂直に立ち上がりますから、そのままはんだづけします。
ピンソケットのカット
ピンソケットのD11~D13の部分の足をカットします。MegaやLeonardoではここにはSPIとは別の信号が出ているため、衝突しないよう様に足をカットするのです。
このカットを施すことで、MegaやLeonardoのD11~D13を上のシールドには 渡さず、ICSP端子から取り出したSPI信号と入れ替えて上に重ねたシールドに渡す事ができる訳です。
以上で完成です。
とりあえずMegaに載せてみました。これだけでは何も役には立たないのですが、この上にUno用SPI接続 のシールドを載せて利用することが出来ます。
側面の様子
追記:続編を書きました。こちらも合わせて御覧下さい。「Uno用SPI接続シールドをMega・Leonardoで使えるようにする変換シールドを使ってみた」