商品名 | I2C接続4X4キーパッド | |
税抜き小売価格 | 2400円 | |
販売店 | スイッチサイエンス マルツ |
2017年05月16日 | 暫定公開。 |
2017年05月24日 | 正式公開。 |
2020年05月08日 | I2Cレジスタの仕様を公開。 |
I2C接続4×4キーパッドを使うスケッチを作るには、TwiKeypadライブラリというライブラリをインストールする必要があります。TwiKeypadライブラリのインストール方法については、TwiKeypadライブラリユーザーマニュアル(1)をご覧ください。
I2C接続4×4キーパッドを使うスケッチの作り方については、TwiKeypadライブラリユーザーマニュアル(2)をご覧ください。
I2CインターフェースのSCLとSDAの信号線は、通常はArduinoに内蔵されているマイコン内部のプルアップ抵抗によりプルアップされていますので、通常は、特にArduino外部でプルアップする必要はありませんが、プルアップ抵抗を低くしたいなど、何らかの事情で、Arduino外部にプルアップ抵抗を付けたい場合、I2C接続4×4キーパッドに、そのプルアップ抵抗を搭載する事ができます。
写真20の様に、R1とR2には部品が実装されていません。ここに、1/8Wや1/6Wの小さなリード抵抗を半田付けすると、SCLとSDAの信号線が、半田付けした抵抗を通じて、VCCにプルアップされます。
TwiKeypadライブラリを使用せずにI2C接続4×4キーパッドを使うスケッチを作られる方や、TwiKeypadライブラリのソースコードを解読したい人のために、I2C接続4×4キーパッドが持つ、I2Cバス上のレジスタの解説を簡単にしておきます。
I2C接続4×4キーパッドが持つ、I2Cバス上のレジスタの一覧を表5に示します。
アドレス | レジスタ名 | 説明 |
---|---|---|
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 | これらのレジスタは予約されています。使用されません。 |
表5に示した各レジスタへのアクセス方法を説明します。
レジスタへ書き込みアクセスする場合は、図2のフォーマットに従って、I2Cバス上から、レジスタにアクセスしてください。
また、複数バイトのデータをレジスタにまとめて書き込む事もできます。この場合、最初のバイトは指定したアドレスのレジスタに書き込まれますが、2番目のバイトは指定したアドレス+1のレジスタに書き込まれ、3番目のバイトは指定したアドレス+2のレジスタに書き込まれ・・・という具合に、各バイトのデータは、連続したアドレスのレジスタに、それぞれ書き込まれます。
例として、2バイトのデータをまとめて書き込む場合のフォーマットを図3に示します。
レジスタへ読み取りアクセスする場合は、図4のフォーマットに従って、I2Cバス上から、レジスタにアクセスしてください。
図4に示す様に、いったんレジスタのアドレスの書き込み動作を行ってから、連続してデータの読み取り動作をします。
また、データの読み取り動作時に、複数バイトのデータを読み取ると、最初のバイトは指定したアドレスのレジスタから読み取られますが、2番目のバイトは指定したアドレス+1のレジスタから読み取られ、3番目のバイトは指定したアドレス+2のレジスタから読み取られ・・・という具合に、各バイトのデータは、連続したアドレスのレジスタから、それぞれ読み取られます。
例として、2バイトのデータをまとめて読み取る場合のフォーマットを図5に示します。
商品を購入されて、輸送上のトラブル(配達されなかった、商品が押しつぶされていたなど)のトラブルが発生した場合は、販売店にご連絡願います。
商品の使い方が分からないとか、商品に初期不良があったなどの問題の場合は、こちらのフォームから、メールをいただきますよう、お願いします。その際、製品名の欄にI2C接続4×4キーパッドと入力してください。
商品名 | I/Oピン一つで読める4X4キーパッド(完成品) | |
税抜き小売価格 | 1380円 | |
販売店 | スイッチサイエンス | |
サポートページ | I/Oピン一つで読める4X4キーパッド(完成品)サポートページ |
商品名 | I/Oピン一つで読める4X4キーパッドキット | |
税抜き小売価格 | 900円 | |
販売店 | スイッチサイエンス | |
サポートページ | I/Oピン一つで読める4X4キーパッドキットサポートページ |
商品名 | I/Oピン一つで読める4X5キーパッドキット | |
税抜き小売価格 | 2400円 | |
販売店 | スイッチサイエンス | |
サポートページ | I/Oピン一つで読める4X5キーパッドキットサポートページ |
商品名 | M3×6mm両側メススペーサ・M3X5mmネジ 各4本セット | |
税抜き小売価格 | 120円 | |
販売店 | スイッチサイエンス | |
サポートページ | M3×6mm両側メススペーサ・M3X5mmネジ 各4本セットサポートページ |