Sahara's WebLog

日記のような、備忘録のような、うらみつらみのような、自慢のような…。

分圧抵抗とADC端子1ピンで複数ボタンの押下を検知

PIC10F222は6ピンのPICなので使えるピン数は4本、そのうち1ピンは入力専用だ。
昨日あたりからPIC10F222を使ったゲーム用のワイヤレス・コントローラをやっているのだが、ワイヤレスの送受信に1ピン使うとなると、結果として3つのボタンしかつなげないことになる。
左右とリセットくらいになってしまう。

いまやってるゲームではそれで十分なのだが、将来性が無い。
ピン数の多いPICにすれば済む話だが、それじゃあ芸が無い。
そこでもうひとつ、最近やっていて頭に浮かぶのが、NTSCのビデオ信号がらみの回路だ。
信号用にいろんな電圧を取り出すのに分圧抵抗を用いている。
PIC10F222ってADCが付いてるのに全く生かされてないこととあわせて、上のようなことを考えながらWebをうろついてて見つけたのがこのサイト
つまりこんな回路にすればいいと教えてくれた。
pic10f222_bunatsu_adc_1
これなら、せっかく備わっているAD変換機能を生かせるし、理屈の上では1本のADピンでボタンをいくつでも検知できる。

で、抵抗の値はどうすればいいのか。
これは、最近マイ・ブームのhandyCalcにきいてみる。
pic10f222_bunatsu_adc_2
上から順に、10.0k、2.50k、4.17k、8.33k、25.0kということになる、計算上は。
手持ちの範囲で実際の抵抗値に置き換えてみると以下のようになる。
pic10f222_bunatsu_adc_3
これだけ電圧差が開いていれば、回路にさほど気を使わずに適当にプログラムしてもちゃんと検知できるだろう。
この例では5つのボタンが使えるので、上下左右とリセットってなことも可能だし、もっとボタン数を増やすことも出来そうだ。

このエントリーをはてなブックマークに追加

Posted under: PIC10F222


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.