次回は最終回としてチャレンジ課題を書きますが、その前にちょっとだけ補足をしておきます。して以下のリンクに公開しています。〜実践編〜ピンが少ない...PIC12F638はピン数が全部で8ピンで、電源用に2ピン取られてしまい、さらにプログラム書き込むために3ピンをとれらてしまいます。今回作った回路も、以下のように一通りピンは使ってしまいました。これから自分のアイデアでこの回路を拡張したり、チャレンジ課題をやっていく上で、もうひとつスイッチを追加したり、もうひとつ発光ダイオードをつけたりしたいことがあります。今回はチャレンジ課題の前に、この回路にもっと部品を追加する方法を説明します。ピンの有効活用ピンが足りない、という場合、ピンの使い方を工夫する必要があります。ピンが足りなければ、ピン数が多いマイコンを買えばいい、という策もありますが、それでも足りない場合は、、、ということもありえますので、まずは今回のPIC12F683でピンの活用方法を検討してみます。上の回路ですが、よく考えてみると、以下の赤い部分はPICマイコンにプログラムを書き込むときにだけ使用していて、PICマイコンが動作しているときは何にも使用されていません。ICSPDATピンの3本です。これからそれぞれのピンの有効活用方法について説明します。MCLRピン(4番ピン)の有効活用4番ピンはちょっと特殊で、以前説明しましたが、PICマイコンのリセットピンか入力ピンにしか使えません。リセットピンに使用しない場合は、スイッチ状態を読み取るための入力ピンに使用することができます。このピンにスイッチをつなげるのは非常に簡単です。以前、スイッチをつなげるときは必ずプルダウン抵抗かプルアップ抵抗をつなげる必要がある、と説明しました。ここはうまくできていて、4番ピンにはすでに抵抗が接続されています。これをプルアップ抵抗とみると、このようにスイッチをつければOKです。プログラム書き込みの際はスイッチをOFFにしておく必要がありますので注意してください。逆にスイッチをOFFにしておけば、最初の回路と変わらないですよね。これでスイッチをもうひとつ追加することができます。注意点としては、プルアップ抵抗となっていますので、GP4は、スイッチをONにしているときは0、スイッチをOFFにしているときは1となります。7番ピン)の有効活用ICSPCLK/ICPSDATピンは入力と出力両方設定できます。これらのピンを入出力ピンとして使用する場合は注意が必要です。このピンを出力ピンにして発光ダイオードを付ける場合、発光ダイオードは以下のように接続すればよさそうですが、このように接続すると、プログラム書き込み時に発光ダイオード側に電流がとれらてしまい、うまくプログラムが書き込めない場合があります。この場合、ちょっと面倒ですが、スイッチをつけてプログラム書き込み時は以下のように発光ダイオードに電流が流れないようにします。このスイッチですが、タクトスイッチなどのように、スイッチを押している間だけONになる、というスイッチは使いづらいので、以下のようなスイッチを使います。トグルスイッチただ、このようなスイッチは値段が高いので(といっても100円程度ですが)、配線などで切り替えた方がよいかもしれません。ブレッドボードを2つ用意して、ひとつはプログラム書き込み専用、もうひとつは回路作成専用にして、プログラムを書き込むときは書き込みようのブレッドポードにPICマイコンをセットして使用、プログラムが書き込みできたら、回路用に差し替える、という方法もあります。他にも回路的に分離する方法があります。具体的には、PICマイコンから直接発光ダイオードに接続するのではなく、一度トランジスタを介して接続する方法です。この場合、トランジスタの知識が必要になりますのでここでは説明を省きます。この説明もいずれ時間があればこのブログで説明したいと思います。入力ピンとして使用する場合も、PICkit3のユーザガイドを見ると、プルアップ抵抗などはつけないように、と書かれていますので、出力ピン時と同様にスイッチなどで分離した方がよいと思います。