PICで電飾 音声回路製作 その2 書き込み回路とスイッチ周り
書き込み回路を作る
今回はまずPICにプログラムを書き込む回路を作ります。
電飾用に光と音を連動させようとすると、実際に動かしながら何度も光のタイミングを調整する必要があります。
ブレッドボードで書き込みとテストができる環境を作っておくと、そこで動作を確認しながら何度でもPICのプログラムを書き換えられるので、調整がスムースにできます。
まずはヘッダーピンをいちばん上の行の10-15の列に差し込み、下記の写真のように線で繋ぎます。
入り組んでいて分かりにくいのですが、要は13列のピンをPICのマイナス、14列のピンをプラスに繋ぎ、
11列はRB6、12列はRB7、15列はRA5に繋ごうということです。
これで書き込み回路ができました。
タクトスイッチ
次に、スイッチをつけることにします。
ブレッドボード上で使うスイッチとしてタクトスイッチという物があります。
こういう、ボストン・ダイナミクス社のえっさほいさ走る四足のロボットみたいな足が付いているのですが、この右前足と右後ろ足、左前足と左後ろ足はボタンを押さなくても常につながっています。
そしてボタンを押すと、左右の足が電気的に繋がります。
これを、図のように接続することにします。オレンジの線で3列目と21列目をつないでいます。さっき作ったグレーの線の上に覆いかぶさる格好になって見えなくなっていますが、グレーの線が必要なくなったわけではないので、注意してください。
スイッチの働き
こうやって作ったスイッチはどのように働くのでしょう?PICにつけるスイッチは、PICに対して「合図」を送る役目をします。PICは電子パーツですから、もちろんその合図は電気です。
ボタンを押していない間、RA5端子は、下図のオレンジの線で電源とつながっています。
つまり、電源から抵抗、タクトスイッチの右前後足、オレンジの電線を通ってRA5端子に電圧がかかり続けるわけです。
ところがボタンを押すと、タクトスイッチの左右の足が繋がります。
タクトスイッチの左足はマイナスに繋がっているので、ボタンを押すことでRA5はマイナスに直結されます。するとRA5にかかっていた電圧は瞬間的にマイナスに飛び込んで消え去ります。
以降ボタンを押されている限り、電圧はマイナスに行ってしまい、PICに行くことはありません。、
PICにしてみればさっきまでRA5の扉をどんどん叩き続けてきた電圧君が急にいなくなるわけですので、
「あっ!なんか起きた!」
とわかるわけです。そこで、
「それが合図だからそうなったらこれをしろ」
という命令文を書いて持たせておけば、ボタン操作で動くPICが出来上がるわけです。
プルアップ抵抗
ところでここの抵抗はどんな意味があるのでしょうか。
この抵抗はプルアップ抵抗と呼ばれます。
この抵抗がなかったら、ボタンを押した時にプラスとマイナスが直結してしまいます。抵抗値ゼロですので電流は際限なく流れて電源破損の原因になります。
ところでこの抵抗値はどの程度がいいのか、調べてもよく分かりませんでした。この工作では10kΩのものを使っていますが、これは手元にそれがあったという以上の理由はありません。
RA5は特別な足
このボタンはRA5につないでいます。その理由として、
第1にPIC16F1827ではRA5は入力にしか使えないからです。ボタンをつけるしか使い道のない無い端子からまずボタンをつけたわけです。
第2に、RA5はリセットボタンとして使うことができるからです。今回プログラムがややこしくなりそうだったので、テストランを途中で止めてリスタートするのを簡単にできるように、リセットできる環境で開発できるようにしたいと考えました。
というわけで、ここで今作ったのはリセットボタンです。
(実はリセットボタンが不要ならこの工作は飛ばしてもかまいません。実際、電源を切って入れ直すのと、リセットボタンを押すのと、今回の工作程度の規模の開発ならさして違いはありません。)
RBと内蔵プルアップ抵抗
あと2つ、波動砲発射ボタンと、エンジン起動ボタンが必要です。それぞれRB3とRB2の端子を使うことにして、下の写真のようにします。
Gボタンが波動砲、Eボタンがエンジンです。それぞれボタンを押すと、RB2とRB3がマイナスと直結するように配線します。
さっきプルアップ抵抗の説明をしたばかりなのに、今度はプルアップ抵抗がありませんね。
実はRB端子にはプルアップ抵抗と回路が内蔵されていて、外にプルアップ抵抗を付ける必要がありません。
じゃあプルアップ抵抗の説明する必要あったの、という感じがしますが、ボタンを付ける以上、プログラムの時に内蔵プルアップ抵抗を使うモードに設定してやる必要があります。
後でプログラムの説明をするときに、内蔵プルアップ抵抗の意味を説明しやすくなるので、外付けプルアップ抵抗がつく回路を説明を先にやっておくことにしました。
プログラムで適切な設定をしてやると、内部の回路を通じて電圧君はRB2,RB3の扉をどんどん叩き続けます。
そこで例えばGボタンを押すと、RB3端子はマイナスと直結するので、RB3の扉を叩いていた電圧君は回路を伝ってマイナスの井戸に飛び込み、消えてしまいます。
プログラム上では、
RB3==0
という状態です。
PICはこれを認識して、命令を実行に移します。
これでコントロールする側の回路は出来上がりです。次はコントロールされるMP3プレーヤーについて。