記事

AQMシリーズのI2C接続LCDキャラクタ・ディスプレイを使う(4)モデルの違い

■ArduinoのI2Cバスの端子

 前回、使用したArduino Uno R3はI2CバスのSCL、SDAの専用端子が用意されています。この専用端子は、ほかの端子と独立したものでなくアナログ入力端子A5(SCL)、A4(SDA)と接続されています。
 Arduino Leonardの場合、SCL、SDA端子はディジタル・ポートのD3(SCL)、D2(SDA)に接続されています。このLeonardをベースに、Wi-Fiなどのイーサネットの機能を搭載したArduino Yunも同様です。
 Arduino ZeroはSCL、SDAバスは専用のもので、ほかのI/Oとは接続されていませんでした。
 このように、ArduinoのバージョンによってI2Cバスの接続状態に違いがあるので、次の表にまとめました。

Board I2C端子 接続ポート 備考
Arduino Uno R3
Arduino Ethernet R3
SCL
SDA
A5(SCL)
A4(SDA)
 A5とSCL、A4とSDAはボード内で接続されている
Arduino Leonard
Arduino Yun
SCL
SDA
D3(SCL)
D2(SDA)
 D3とSCL、D2とSDAはボード内で接続されている
Arduino Zero
Arduino101
SCL(専用)
SDA(専用)
 --
--

 32ビットCPUではディジタル、アナログ・ポートには割り当てなし



Arduino Yunに置き換える
 前回のArduino Uno R3のボードを、Arduino Yunに置き換えテストしました。同一のプログラムで次に示すように同様な動作を確認しました。

 I2Cバスの配線をD3(SCL)、D2(SDA)に変更してテストました。ボード内で接続されているので、当然同じ結果になります。

Arduino 1.6.13のリリース
 2016/11/22にArduno1.6.13がリリースされていました。ダウンロードしてインストールし、Arduino Yunにテスト・プログラムを書き込みました。旧バージョンと同様に書き込まれ、温度の表示を開始しました。

 Arduino.orgのArduino IDEは、2016年12月19日現在Arduino1.7.11となっています。Arduino1.7.11は、Arduino M0でコンパイル時にコピーのエラーが出てコンパイルできなくなって以来利用していません。Arduino.orgのページはArduino.ccに比べ充実度で見劣りするので、現在はArduino.ccにあるボード、Arduino IDEを利用して検討を行っています。

 I2Cバス接続LCDキャラクタ・ディスプレイの一通りの確認はできました。次はArduino Yunなどを題材にArduinoでWi-Fiを利用することを検討します。

(2016/12/19 V1.0)

<神崎康宏>

◆AQMシリーズのI2C接続LCDキャラクタ・ディスプレイを使う

(1) 微妙なSCLクロック

(2) 拡張命令でコントラストの設定

(3) レベル変換とリピータ

(4) モデルの違い