Arduinoで肉を美味しく調理する(4)ArduinoのSPI通信のピン配置がボードによって異なる
■熱電対用MAX6675とArduinoの接続
スイッチサイエンス社製のMAX6675モジュールは、SPIインターフェースをもっています。ArduinoのSPIインターフェースに使われる四つの信号線は、Arduinoのディジタル・ピンD10(/SS)、D11( MOSI)、D12(MISO)、D13(SCK)に割り当てられています。
端子 | 信号名 |
---|---|
D13 | SCK(Serial Clock) |
D12 | MISO(Master In Slave Out) |
D11 | MOSI(Master Out Slave In) |
D10 | /SS(Slave Select) |
●MAX6675モジュールの端子
MAX6675モジュールの端子は、K型熱電対のコネクタを接続するものと、Arduinoのマイコン・ボードのディジタル・ポート13から8までの6ピンに接続する端子が用意されています。
Arduinoのディジタル・ポートの入出力電流の最大定格は40mAで通常20mAくらいまで流せます。このディジタル・ポートを電源端子として利用しています。テストではこれでもよいのですが、Arduinoのディジタル・ポートにはあまり余裕がないので、今回は電源回路から電源を供給することにします。
●ICSP端子をSPIインターフェース
ディジタル・ポートとICSP端子は、次のように接続されています。
ディジタル・ポート | ICSP端子 |
---|---|
D13(SCK) | 3 |
D12(MISO) | 1 |
D11(MOSI) | 4 |
2(5V) | |
5(RESET) | |
6(GND) |
●バニラ・シールド
バニラ・シールドと足長のピンソケット、L字型ピンヘッダ、ICSP用の3×2ピンのピンソケットで構成します。
バニラ・シールドのICSP端子の近くにSPI用のMOSI、MISO、CLKの端子のランドが用意されています。この端子は、ICSP端子のMOSI、MISO、CLKと接続されています。Arduinoボードとは3×2のピンソケットで接続します。
MAX6675モジュールへは、MOSI、MISO、SCKとSS、5V、GNDの6本のケーブルが必要になります。そのために、次に示すように6ピンのピンソケットに6色のリード線をはんだ付けし、はんだ付け部を1.5mφの熱収縮チューブで保護したケーブルを用意しました。
バニラ・シールド側とMAX6675モジュール側では信号の並び方が異なるので、信号ごとに色分けしてあります。
色分け | 信号名 |
---|---|
黄色 | SCK |
緑色 | MOSI |
青色 | MISO |
橙色 | SS (ディジタル・ポート10) |
黒色 | GND |
赤色 | 5V |
黄色(SCK)が端のほうのソケットはMAX6675モジュール側、青色(MOSI)が端の方のソケットはバニラ・シールド側です。
●バニラ・シールドにセットしたもの
バニラ・シールドは、3.3V電源の「I2C接続キャラクタLCDモジュール」を5V電源のArduinoと接続するための秋月電通商製の「I2Cバス用双方向電圧レベル変換モジュール(PCA9306)」が一つセットされています。LCDモジュール側は3.3V電源、SCL、SCA、GNDの4ピンのピンヘッダを用意します。
これらについては、次の記事で説明しています
「ArduinoにLCDキャラクタ・ディスプレイ・モジュールを接続する(10)電圧レベル変換」
http://www.denshi.club/make/2016/06/arduinolcd10.html
ディジタル・ポート8には、1kΩ電流制限抵抗を介して赤色のLEDを接続しています。AC電力制御用のソリッド・ステート・リレーをON/OFFするためにディジタル・ポート5からは、JST製の3ピン・コネクタに引き出しています。
アナログ・ポートA0に半固定抵抗で電源電圧を分圧した値を加えています。
●シールドの配線
シールドの配線は、主なGND配線と一部の配線はスズ・メッキ線を利用しています。その他は被覆を剥くことなくはんだ付けできるホルマル線を利用しています。
●SPIインターフェースのボード間の互換性
Arduino UnoとArduino Leonardoでは、SPIインターフェースのSSの値が少し異なっています。Arduino UnoなどのモデルではSPIライブラリで設定されているSSはディジタル・ポート10に設定されています。特に定数SSに対する設定を行わなくても、SPIインターフェースのデバイスの選択信号としてディジタル・ポート10が利用できます。LeonardoではSSの値が17となっています。Unoとも共有するので、デバイスの選択はUnoと同じディジタル・ポート10に設定します。
配線を終え、動作確認のテスト・プログラムを動かし配線に問題ないことを確認しました。
次回、警報をLEDで表示するプログラム、ソリッド・ステート・リレーについて説明します。
(2017/4/26 V1.0)
<神崎康宏>
バックグラウンド
SPI;I2Cと並んでマイコンのボード上で使われる汎用インターフェースです。I2Cが100kHzもしくは400kHzのデータ転送ですが、SPIは数MHzからそれ以上高速にデータ転送できるところがメリットです。デバイスを選択するラインが必要なので、I2Cは2線、SPIは3線式とも呼ばれます。
/SS;先頭のスラッシュは、SS信号が負論理であることを示しています。通常High状態で、信号が有効な時にはLowになります。
JST製のコネクタ;2.5mmピッチの XHシリーズと、2mmピッチのPHシリーズがよく使われます。ユニバーサル基板が2.54mmピッチではXHシリーズが合います。ここではS3B-XH-A サイド型3端子を使っています。
配線材料;銅線はさびやすいので、スズをメッキした配線材料が使われます。はんだ付けはしやすいですが、絶縁されていないので、ほかのスズ・メッキ線と接触しないように利用します。ホルマル線はポリウレタンで被覆されていて、UEWとも呼ばれます。厳密には耐熱温度の異なる樹脂製被覆を施した導線は複数の種類がありますが、呼び名が混在しています。総称はエナメル線です。モータやトランスの巻き線に使われます。
バニラ・シールド;Arduinoの両側にあるソケットに合ったユニバーサル基板の名称です。