I2C接続のキーパッドを試作

自作のマイコン回路にキー(スイッチ)をたくさんつけたい場合、I/Oピンをたくさん使うのが問題です。その問題を解決するためにアナログ入力ピン一つで読めるキーパッドを以前開発しましたが、A/D変換器を積んでいるマイコンでしか使えない欠点がありました。そこで今回、I2C接続のキーパッドを試作しました。

試作したI2C接続のキーパッド

広告

このキーパッドの回路図はここをクリックするとダウンロードできます。

PIC16F1823がキーをスキャンし、I2Cポートからキーの問い合わせがあればそれに応答します。また、ジャンパーピンの設定で、アドレスを08Hから0BHまでの範囲で変更できるようにしました。

AVRマイコンを使う事が多いのですが、コストダウンのためにPICマイコンを使ってみました。

パソコンのOSをWindows 10にアップデートしてからPICの開発を一度もやっていなかったので、MPLAB X IDEのインストールをするところからスタートです。(^^;

プログラムをしていて、「I2Cの割り込みと、タイマー割り込みと、どちらが優先順位が高かったんだろう?」と思って、データシートを調べたら、そもそも8ビットのPICマイコンには多重割り込みの機能がありませんでした。そういえば、以前高専でPICマイコンの事を教えていた時に、そう教えてたっけ?本当に色々忘れています。(^^;;

ともあれ、色々思い出しながら、プログラムを組んだら、無事キーパッドが動く様になりました。次の写真は、Arduinoとキーパッドを接続して、キーを読み出している様子です。

キーパッドをArduinoに接続した様子

8ビットのPICは5Vに対応しているので、5Vのマイコンとも、3.3Vのマイコンともインターフェースできていいですね。

今回は、何も考えずに、手元にあったPIC16F1823を使って試作をしましたが、EPROMのないPIC16F1503を使う方がコストが下がりそうです。こんど、SMDのPIC16F1503に替えて、基板を起こそうと思います。I2CコネクタをGrove互換にしてもいいなぁ。

2016年12月24日追記:

コメント欄で要望があったので、MPLAB-X IDE 3.45用のプロジェクトファイルをこちらからダウンロードできる様にしました。

2017年5月29日追記:

I2C接続の4×4のキーパッドを、スイッチサイエンスで販売し始めました。詳しくは、製品サポートページをご覧ください。

I2C接続4×4キーパッド

関連ページ

広告

「I2C接続のキーパッドを試作」への2件のフィードバック

  1. 今日は、「I2C接続のキーパッド」をキーワードにこちらにやってきました。今I2C接続のキーパッドの政策を考えているのですが、よろしければソースを公開していただけませんかよろしくお願いします。

    1. プロジェクトファイル(ソースファイル群)を一式ダウンロードできる様にしておきました。その内、使い方や動作原理などを解説した記事を書くかもしれませんが、とりあえず、全く解説なしで公開します。

コメントを残す

メールアドレスが公開されることはありません。

認証コード(計算結果を半角数字で入力してください) *