ResKeypadライブラリ

このページをスマホなどでご覧になる場合は、画面を横長にする方が読みやすくなります。
2015年08月10日 Ver. 1.00公開。

アナログI/Oピン一つで使える抵抗分圧方式のキーパッドのArduino用ライブラリ

ResKeypadライブラリでキー入力している例
ResKeypadライブラリでキー入力している例

目次

1. はじめに … 1ページ
2. 対応するArduinoの種類 … 1ページ
3. 対応するArduino IDE … 1ページ
4. ユーザーマニュアル … 1ページ
5. リファレンスマニュアル … 1ページ
6. ダウンロード … 1ページ
7. インストール方法 … 1ページ
7-1. Arduino IDE 1.0.5以降をお使いの場合 … 1ページ
7-2. Arduino IDE 1.0.4以前をお使いの場合 … 1ページ

1.はじめに

マイコンで組み込み機器を作っている時に、キーパッドを付けて、数値の入力などをしたい事があります。キーパッドの読み取りは、キーマトリックス方式を用いることが一般的です。例えば、4X4のキーパッドを読み取るなら、図1に示すように、行方向に4本、列方向に4本のGPIO線を割当て、それらの交点にスイッチ(場合によってはダイオードも)を配置するのが一般的です。

図1、キーマトリックス方式のキーパッドの原理
図1、キーマトリックス方式のキーパッドの原理

図1の回路は、16個のGPIOピンを使う単純な回路よりはましではありますが、それでも8本ものGPIOピンを使ってしまいます。マイコンは、ピン数が増えると、価格が急激に上がる物が多いので、できればもう少しピン数を減らせる方法があれば便利です。

一方で、安価な家電製品に搭載されるマイコンでは、キーパッドの読み取りに、押すスイッチによって出力電圧が変わる抵抗分圧回路の出力を、A/D変換入力に接続して読み取る回路(図2参照)がよく使われます。この回路では、たったひとつのI/Oピンで、複数のスイッチの状態を監視できますが、(1)同時に複数のスイッチを押すと、その内のひとつしか読み取れない、(2)抵抗値の誤差やA/D変換の誤差を考えるとあまり多くのスイッチを接続できず、多くても5つくらいのスイッチで使われる事が多い、という欠点があります。

図2、抵抗分圧方式のキーパッドの原理
図2、抵抗分圧方式のキーパッドの原理

抵抗分圧方式の出力電圧の発生要因を詳しく考察したところ、抵抗値をよく吟味することにより、5%の精度の抵抗でも最大20個程度のスイッチを読み取れる事が分かりました。この話は、理論的な考察をついてはI/Oピン一つで読み取れるキーパッドの製作という記事で紹介しました。

このページで紹介するResKeypadライブラリは、抵抗分圧方式のキーパッドのスイッチの状態の取得をするための、Arduino用のライブラリです。A/D変換値から押されたスイッチへの変換や、チャタリング処理などは、ライブラリ内部で行いますので、ResKeypadライブラリを使えば、理論的な背景を十分理解していなくても、手軽に抵抗分圧方式のキーパッドを使う事ができます。

2.対応するArduinoの種類

ResKeypadライブラリは、多くの8ビットのArduinoおよび一部の32ビットArduinoで動作します。実際に動作確認が取れたArduinoは、次の通りです。

3.対応するArduino IDE

ResKeypadライブラリは、Arduino IDE 1.0.1~1.0.6、1.6.X、1.7.X (Xは任意の数字)で動作します。

4.ユーザーマニュアル

ResKeypadライブラリの使い方を詳しく説明したユーザーマニュアルをご覧になるには、次のリンクをクリックしてください。

ResKeypadライブラリユーザーマニュアル (工事中)

ユーザーマニュアルはまだできていませんが、このページをみるとResKeypadライブラリの使い方がおおむね分かります。

5.リファレンスマニュアル

ResKeypadライブラリの関数や定数の一覧表が載ったリファレンスマニュアルをご覧になるには、次のリンクをクリックしてください。

ResKeypadライブラリリファレンスマニュアル (工事中)

6.ダウンロード

ResKeypadライブラリをダウンロードするには、以下のリンクをクリックしてください。

リリースノート (バージョンアップの履歴)
広告

7.インストール方法

ResKeypadライブラリのインストールの方法を、Arduino IDE 1.0.5以降をお使いの場合と、Arduino IDE 1.0.4以前をお使いの場合の2つのケースに分けて説明します。

7-1.Arduino IDE 1.0.5以降をお使いの場合

Arduino IDE 1.0.5以降(1.6.Xや1.7.Xも含む)をお使いの場合は、ダウンロードしたResKeypadライブラリのZIPファイルを解凍することなく、Arduino IDEにインストールしていただけます。

まず、Arduino IDEを起動し、スケッチ→ライブラリを使用→ライブラリをインストール...メニュー(Arduino IDE 1.7.6の場合)を選んでください。なお、メニューの表記がArduino IDEのバージョンにより一定していませんのでご注意ください。下のスクリーンショットを参考にメニューを選んでください。

図3、Arduino IDE 1.0.6の場合
図3、Arduino IDE 1.0.6の場合
図4、Arduino IDE 1.6.4の場合
図4、Arduino IDE 1.6.4の場合
図5、Arduino IDE 1.7.6の場合
図5、Arduino IDE 1.7.6の場合

そうすると、インストールするライブラリのZIPファイルを選択するダイアログボックスが開きますから、ResKeypad_XXX.zip (XXXの部分はバージョンによって異なる)を選択して、開くボタンをクリックしてください。ライブラリがインストールされます。

図6、インストールするライブラリのZIPファイルを選択する
図6、インストールするライブラリのZIPファイルを選択する

ライブラリが無事インストールされかを調べるには、スケッチ→ライブラリを使用メニュー(Arduino IDE 1.7.6の場合)に、ResKeyPadが追加されている事を確認してください。なお、メニューの表記はArduino IDEのバージョンにより一定しませんので、下のスクリーンショットを参考にしてください。

図7、Arduino IDE 1.0.6の場合
図7、Arduino IDE 1.0.6の場合
図8、Arduino IDE 1.6.4の場合
図8、Arduino IDE 1.6.4の場合
図9、Arduino IDE 1.7.6の場合
図9、Arduino IDE 1.7.6の場合

7-2.Arduino IDE 1.0.4以前をお使いの場合

Arduino IDE 1.0.4以前をお使いの場合は、ダウンロードしたResKeypadライブラリのZIPファイルを、一旦解凍してからインストールする必要があります。

私がWindows環境で開発しているので、それを前提に説明します。

まず、何らかのソフトを使って、ZIPファイルを解凍してください。(Windows標準の圧縮フォルダ機能を使ってもよい)そうすると、ResKeypadというフォルダができるはずです。

Arduinoのライブラリのインストール先は、スケッチブックの保存場所(標準では"マイドキュメント\Arduino")の下のlibrariesフォルダとなります。スケッチブックの保存場所が分からない場合は、ファイル→環境設定メニューを選ぶと確認できます。

図10、ファイル→環境設定メニューを選ぶ
図10、ファイル→環境設定メニューを選ぶ
図11、スケッチブックの保存場所の確認
図11、スケッチブックの保存場所の確認

エクスプローラでスケッチブックの保存場所を開き、librariesフォルダがある事を確認してください。

図12、librariesフォルダの確認
図12、librariesフォルダの確認

まだ1度も外部ライブラリをインストールした事のない人は、librariesフォルダが見つからないかも知れません。その場合はlibrariesフォルダを新たに作ってください。

最後に、librariesフォルダの中に、ResKeypadフォルダをコピーまたは移動してください。

図13、ResKeypadフォルダの移動
図13、ResKeypadフォルダの移動

当方にMacの環境がないので未確認ですが、Arduino公式サイトに載っている"Installing Additional Arduino Libraries"によると、Mac環境の場合は"Documents/Arduino/libraries"フォルダ(日本語環境なら"書類/Arduino/libraries"フォルダか?)の中にReskeypadフォルダを移動あるいはコピーすればいいようです。

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

関連ページ

Arduino 電子工作
このサイトの記事が本になりました。
書名:Arduino 電子工作
ISBN:978-4-7775-1941-5
工学社の書籍の内容の紹介ページ
本のカバーの写真か書名をクリックすると、Amazonの書籍購入ページに移動します。