i2c接続キャパシティブセンシングキー+LCD           nobcha(c)2012

 

 以前キャパシティブセンシングの実験やってテーブルライトのON/OFF、明るさ設定制御に組み込んでみました。しかし、タッチ端子の作りがいまいちでしたので、実用的にもいまいちでした。

 今回は0.5t程度のガラエポ基板を使い、基板の裏からタッチするというやり方を採用します。なおかつ、インターフェイスはi2cでLCD表示も兼ね備えるという試作です。メインのマイコンさんはアプリケーションに集中し、キー入力とLCD表示はi2cで外注するという制御システムのまとめ方ができ、試作実験のレパートリーが広がるのではないかと影で期待しています。

 ここではとりあえず、i2cスレーブのキー+LCD試作を説明します。PIC161827プリント基板シリーズ試作(その3)として、FUSIONで作ったプリント基板を使いまわしております。

 

試作ステップ

内容

実験・試作・基板・ソフト

キャパシティブセンシングのタッチキーをどうするか 金きりはさみでじょきじょき切れるという薄い基板を入手しました。0.5mmぐらいの厚さの片面銅箔です。

これを15ミリ15ミリぐらいの面積でキーパッドにします。

LCメーターを使い容量を測ってみようと思う 以前試作したフランクリン発振回路を使用したLCメータは数pFから測定できるので、これを使ってみることにします。PIC16F1827を使った2号機です。
銅箔面に触れると人間も含めた静電容量に成るはずです。この容量なら検知は十分可能ですが、静電気破壊の心配があります。(右側) 蓑虫クリップのグランド側はオープンなので、LCメータのグランド部を基準にして浮遊容量を測っていることになると思います。(左側)

  

5pFぐらいになるようです 裏から触れてみます。指をグット押し付けます。このメータのフランクリン発振回路の周波数が表示されていますが、500kHzで0.5%ぐらいの変動になっています。 裏からタッチ
回路図 LCDや,i2cやICSPなどの回路を搭載したPCBを使い、キャパシティブセンシング回路を組み立てました。
信号線割付 信号線割付計画です。
基板の組み立て もともとタクトスイッチが3個付く回路がありましたので、その配線パターンなどを利用してキーパッドをくっつけました。PICの信号端子の数から、キーパッドは4個になります。
プログラム メインプログラムと4ビットインターフェイスのLCDを接続する関数からなっています。

HI−TECH C使用 MPLAB 

メイン

LCD関数(3V動作なので、Delayが微妙です)

LCD関数ヘッダ

(バグ情報)void init()のosccon記述が間違っています。正しくはosccon=0b01111000;です。

CSMの発振周波数 5mSのゲート時間でCSMのパルスをカウントします。電流値が3種類選べますが、HIGHのとき周波数が高くなります。1000ぐらいなので100kHzぐらいです。

写真ではデバッグモードでCSMのカウント値をヘキサデシマル4桁表示しています。上が5回平均値、下が瞬時値です。

電流が中のとき 電流設定をMEDIUMにしてCSM周波数を表示させます。
電流が小のとき 電流設定をlowにしてCSM周波数を表示させます。
キー動作 上位とつなぎ、キー入力要求をもらってスキャンしているところです。写真では見えないがキー1を触っています。スレーブ側はデバッグダンプ表示にしてCSMの値を出しています。触ると0x200が0x1A0ぐらいになるので、平均値から瞬時値が30変動したらキー入力ありの閾値としました。
i2cマスターと連動 上位からLCD表示とキー入力制御を行います。SCM電流値はHIGHを選びました。安定にキー入力が受け付けられます。使い物になりそうです。ただし、キースキャン中にLCD表示をさせると割り込みが間に合わないことがあります。右の画面の1行目のt文字が重なっているのがそうです。表示とキー表示を排他で行えば問題ありません。

表示中のCNTはテスト回数値でCSMに関係無し。

   開発はMicrochip社の開発環境を利用しました。MPLAB V8.85, HI-TEC C PRO LITE V9.83、PICKIT3を使っております。回路図は水魚堂のBSchを利用しました。提供元、開発者の方に感謝します。

 本試作実験はnobchaの趣味活動で実施しております。再現性や安全性に関して保障はできません。また本資料を初めとしてプログラムなどの創作物には著作権が有りますので、丸のままコピー引用は認められません。

 

全体目次に戻る アイコンは「牛飼いとアイコンの部屋」からの提供。ありがとうございます。

inserted by FC2 system