I2C接続4×4キーパッドサポートページ(3)

このページをスマホなどでご覧になる場合は、画面を横長にする方が読みやすくなります。
目次へ  前のページへ (1) (2) (3) 次のページへ
I2C接続4X4キーパッド 商品名 I2C接続4X4キーパッド
税抜き小売価格 2400円
販売店 スイッチサイエンス マルツ
2017年05月16日 暫定公開。
2017年05月24日 正式公開。
2020年05月08日 I2Cレジスタの仕様を公開。

7. TwiKeypadライブラリのインストール方法

I2C接続4×4キーパッドを使うスケッチを作るには、TwiKeypadライブラリというライブラリをインストールする必要があります。TwiKeypadライブラリのインストール方法については、TwiKeypadライブラリユーザーマニュアル(1)をご覧ください。

8.スケッチの作り方

I2C接続4×4キーパッドを使うスケッチの作り方については、TwiKeypadライブラリユーザーマニュアル(2)をご覧ください。

9.プルアップ抵抗の取り付け方法

I2CインターフェースのSCLとSDAの信号線は、通常はArduinoに内蔵されているマイコン内部のプルアップ抵抗によりプルアップされていますので、通常は、特にArduino外部でプルアップする必要はありませんが、プルアップ抵抗を低くしたいなど、何らかの事情で、Arduino外部にプルアップ抵抗を付けたい場合、I2C接続4×4キーパッドに、そのプルアップ抵抗を搭載する事ができます。

写真20の様に、R1とR2には部品が実装されていません。ここに、1/8Wや1/6Wの小さなリード抵抗を半田付けすると、SCLとSDAの信号線が、半田付けした抵抗を通じて、VCCにプルアップされます。

写真20、プルアップ抵抗取り付け用のR1とR2
↑ 画像をクリックすると拡大
写真20、プルアップ抵抗取り付け用のR1とR2
広告

10.I2Cレジスタの仕様

TwiKeypadライブラリを使用せずにI2C接続4×4キーパッドを使うスケッチを作られる方や、TwiKeypadライブラリのソースコードを解読したい人のために、I2C接続4×4キーパッドが持つ、I2Cバス上のレジスタの解説を簡単にしておきます。

10-1.レジスタ一覧

I2C接続4×4キーパッドが持つ、I2Cバス上のレジスタの一覧を表5に示します。

表5、I2C接続4×4キーパッドのレジスタ一覧
アドレス レジスタ名 説明
00H BDID 読み取り時:基板種別IDを返します。本製品の場合、0を返します。
書き込み時:書き込んだ値は無視されます。
01H FVER 読み取り時:ファームウェアのバージョンを返します。返す値はバージョン番号に10を掛けた値です。例えばバージョン1.2なら12を返します。
書き込み時:書き込んだ値は無視されます。
02H KNUM 読み取り時:キーパッドのキーの数を返します。本製品の場合、必ず16(10H)を返します。
書き込み時:書き込んだ値は無視されます。
03H N/A このレジスタは予約されています。使用されません。
04H REPS 読み取り時:最後に書き込んだREPSの値を返します。電源投入時のREPSのデフォルト値は0です。
書き込み時:キーを押してからキーリピートが始まるまでの時間を40ms単位で指定します。もしREPSまたはREPIが0なら、キーリピートは無効になります。
05H REPI 読み取り時:最後に書き込んだREPIの値を返します。電源投入時のREPIのデフォルト値は0です。
書き込み時:キーリピートの間隔を40ms単位で指定します。もしREPSまたはREPIが0なら、キーリピートは無効になります。
06H BNUM 読み取り時:キーバッファ内のデータの個数を返します。
書き込み時:キーバッファをクリアします。書き込む値は意味を持ちません。
07H RKEY 読み取り時:押されたキーのキー番号(SW番号−1)を、キーバッファから読んで返します。たとえば、SW5が押されたのなら4を返します。複数のキーが押された場合は、キーバッファのトップ(まだ読み取られていないキーで、一番過去に押されたキー)のキー番号がを返します。キーバッファにデータがない場合は、FFHを返します。RKEYで読み取られたキー番号は、キーバッファから削除されます。
書き込み時:書き込んだ値は無視されます。
08H KST0 読み取り時:キー番号0~7(SW1~SW8)のキーが、現在押されているかどうかの状態を返します。LSBがキー番号0のスイッチ(SW1)の状態を表し、MSBがキー番号7のスイッチ(SW8)の状態を表します。各ビットは、対応するキーが押されている時に1、押されていない時に0になります。
書き込み時:書き込んだ値は無視されます。
09H KST1 読み取り時:キー番号8~15(SW9~SW16)のキーが、現在押されているかどうかの状態を返します。LSBがキー番号8のスイッチ(SW9)の状態を表し、MSBがキー番号15のスイッチ(SW16)の状態を表します。各ビットは、対応するキーが押されている時に1、押されていない時に0になります。
書き込み時:書き込んだ値は無視されます。
0AH~FFH N/A これらのレジスタは予約されています。使用されません。

10-2.レジスタへのアクセス方法

表5に示した各レジスタへのアクセス方法を説明します。

10-2-1.書き込み時

レジスタへ書き込みアクセスする場合は、図2のフォーマットに従って、I2Cバス上から、レジスタにアクセスしてください。

図2、レジスタへの書き込みアクセス時のフォーマット(1バイト書き込み時)
↑ 画像をクリックすると拡大
図2、レジスタへの書き込みアクセス時のフォーマット(1バイト書き込み時)

また、複数バイトのデータをレジスタにまとめて書き込む事もできます。この場合、最初のバイトは指定したアドレスのレジスタに書き込まれますが、2番目のバイトは指定したアドレス+1のレジスタに書き込まれ、3番目のバイトは指定したアドレス+2のレジスタに書き込まれ・・・という具合に、各バイトのデータは、連続したアドレスのレジスタに、それぞれ書き込まれます。

例として、2バイトのデータをまとめて書き込む場合のフォーマットを図3に示します。

図3、レジスタへの書き込みアクセス時のフォーマット(2バイト書き込み時)
↑ 画像をクリックすると拡大
図3、レジスタへの書き込みアクセス時のフォーマット(2バイト書き込み時)

10-2-2.読み取り時

レジスタへ読み取りアクセスする場合は、図4のフォーマットに従って、I2Cバス上から、レジスタにアクセスしてください。

図4、レジスタへの読み取りアクセス時のフォーマット(1バイト読み取り時)
↑ 画像をクリックすると拡大
図4、レジスタへの読み取りアクセス時のフォーマット(1バイト読み取り時)

図4に示す様に、いったんレジスタのアドレスの書き込み動作を行ってから、連続してデータの読み取り動作をします。

また、データの読み取り動作時に、複数バイトのデータを読み取ると、最初のバイトは指定したアドレスのレジスタから読み取られますが、2番目のバイトは指定したアドレス+1のレジスタから読み取られ、3番目のバイトは指定したアドレス+2のレジスタから読み取られ・・・という具合に、各バイトのデータは、連続したアドレスのレジスタから、それぞれ読み取られます。

例として、2バイトのデータをまとめて読み取る場合のフォーマットを図5に示します。

図5、レジスタへの読み取りアクセス時のフォーマット(2バイト読み取り時)
↑ 画像をクリックすると拡大
図5、レジスタへの読み取りアクセス時のフォーマット(2バイト読み取り時)

11.問い合わせ先

商品を購入されて、輸送上のトラブル(配達されなかった、商品が押しつぶされていたなど)のトラブルが発生した場合は、販売店にご連絡願います。

商品の使い方が分からないとか、商品に初期不良があったなどの問題の場合は、こちらのフォームから、メールをいただきますよう、お願いします。その際、製品名の欄にI2C接続4×4キーパッドと入力してください。

目次へ  前のページへ (1) (2) (3) 次のページへ

このページで使われている用語の解説

関連ページ

関連製品

I/Oピン一つで読める4X4キーパッド(完成品) 商品名 I/Oピン一つで読める4X4キーパッド(完成品)
税抜き小売価格 1380円
販売店 スイッチサイエンス
サポートページ
I/Oピン一つで読める4X4キーパッドキット 商品名 I/Oピン一つで読める4X4キーパッドキット
税抜き小売価格 900円
販売店 スイッチサイエンス
サポートページ
I/Oピン一つで読める4X5キーパッドキット 商品名 I/Oピン一つで読める4X5キーパッドキット
税抜き小売価格 2400円
販売店 スイッチサイエンス
サポートページ
M3×6mm両側メススペーサ・M3X5mmネジ 各4本セット 商品名 M3×6mm両側メススペーサ・M3X5mmネジ 各4本セット
税抜き小売価格 120円
販売店 スイッチサイエンス
サポートページ
Arduino 電子工作
このサイトの記事が本になりました。
書名:Arduino 電子工作
ISBN:978-4-7775-1941-5
工学社の書籍の内容の紹介ページ
本のカバーの写真か書名をクリックすると、Amazonの書籍購入ページに移動します。