I/O ピンを I2C で拡張してみます。
PCF8574A を利用した I2C I/O エキスパンダは Amazon 等で購入できます (購入時価格: ¥250)。
以下、 I/O エキスパンダの詳細です。
I2C アドレス設定用ジャンパーの値は以下の通りです。左側が+で、右側が-です (ON / OFF とかでよかったような気も...)。
PCF8574 Address |
PCF8574A Address |
A0 | A1 | A2 |
0x27 | 0x3F | + | + | + |
0x26 | 0x3E | - | + | + |
0x25 | 0x3D | + | - | + |
0x24 | 0x3C | - | - | + |
0x23 | 0x3B | + | + | - |
0x22 | 0x3A | - | + | - |
0x21 | 0x39 | + | - | - |
0x20 | 0x38 | - | - | - |
I2C アドレスをずらせば、理論上は 8 つのエキスパンダを同時に制御できます。
こんな感じで合体させれば最大 64 ポートを制御できます。
Arduino (UNO) との接続は以下のようになります。
I2C | LCD | Arduino |
VCC | 1 VCC | 5V |
GND | 2 GND | GND |
SDA | 3 SDA | A4 |
SCL | 4 SCL | A5 |
4 本だけの接続なので簡単ですね。
以下のライブラリをインストールします。
<Arduino IDE インストールフォルダ>\library に PCF8574 というサブフォルダを作成してそこに展開してください。
UNO チュートリアルの Chapter 24 (Option): Keypad で使ったキーパッドを I2C 接続してみましょう。
ここにジャンパーピンがあるじゃろ?
それをこうじゃ!
ハード的にはこれで完成です。
以下のライブラリをインストールします。ZIP で取得し、Keypad_I2C だけをインストールします。
サンプルスケッチもありますが、12 キー用なので、改変した 16 キー用スケッチを掲載しておきます。
|
シリアルモニタを開いてキーを押すと対応した文字が入力されます。
ここにある情報が役に立って、「調べる手間が省けたからオマイに飯でもおごってやるよ」 というハートウォーミングな方がいらっしゃいましたら、下のボタンからどうぞ。