「カウント・ダウン・タイマー」で作ったユニバーサル基板上の手配線の回路をプリント基板化した。
7セグLEDを取り外したところ。
例によって、電源端子以外は表面に実装した。
DIP品のPICも7セグメントLEDもすべて無理やり面実装したので、裏はすっきりしている。
もとのユニバーサル基板に手配線したものはこんな感じだった。
裏に関しては圧倒的にシンプルになったし、表も、変な昇圧をやめて電源を外部から取ることにしたのですっきりした。
ちなみに、なぜか前回の作成時に残した配線図とユニバーサル基板上の実際の回路が食い違っていた。
なかなか気付かなくて、Aのセグメントだけ点灯しないという不思議な現象に悩んだ。
ユニバーサル基板の方をちゃんと調べてみたら、2本のピンがちょうど1組入れ替わって配線されていた。
プログラム上でピンを入れ替えて直したら、正常に動作するようになった。
当時、手配線の際に間違えて結線し、プログラムでごまかしてあったSLEEPからの外部割込みによる復帰のためにRB0ピンが必要になり、配線とプログラムを変更してあったのだと思う。
そのこと自体、すっかり忘れてしまっている。
追記(最初にユニバーサル基板で作った時の経緯の覚書き)
7セグメントと1ドットなので、8ピンの信号が必要になる。
RB0~RB7を割り当てると連続していて便利なのでそうする。
カウンタの設定とかを担当する3つのスイッチやセグメントのON/OFFはRAに割り当てる。
後に、SLEEP機能を追加することにした。
SLEEP後の復帰に外部からの割込みを使うことにする。
この割込み用のピンがRB0しかない。
LEDに充てていたRB0を、スイッチに充てていたRAと入れ替えて配線を変更する。
このとき、変更点を回路図に反映させておくのを忘れた。
回路の変更に応じてプログラムを変更する。
プログラムの変更は当然残っている。
その状態で今回作り直したので、回路とプログラムの整合性が保たれていなくてごたごたした。
追記(2018/05/16)
久しぶりにプログラムを変えようと思って、ICSP用の端子の位置が分からなくなっていたたのでPCBの図を貼っておくことにする。