試作ステップ
|
内容
|
実験・試作・基板・ソフト
|
キャパシティブセンシングのタッチキーをどうするか |
金きりはさみでじょきじょき切れるという薄い基板を入手しました。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に関係無し。 |