前回の続きです。
ここのところ、いろいろと立て込んでおりまして、なかなか前に進みませんが、
とりあえず、コントロールプログラムが完成しました。
「ジャンピングワイヤー」という名のとおり、もの凄い“空中配線”状態になってますが、まぁハードの動作確認用ということで。0xF9C7
ちっぽけな回路ですが、想定どおり動いた時の感動は、一入(ひとしお)です。少なくとも、“ショップにお任せ”になっているヒトには、味わえない「歓び」でしょう。
(いまのところ、どこのショップにも売ってないですし)0xF9D1
フロントフォグランプの制御回路です。回路としては、非常に簡単です。
(電源回路等は、省略しています。また、抵抗等の型番も、省略しています)
ブレッドボードを使ってデバッグしていた時に、気付いた点を一つ。
リセット直後、I/OポートがInputに設定されたとしても、リレーが誤動作しないよう、パワーMOSFETのGate側にプルダウン抵抗を入れておいたのですが、リセット直後、なぜかリレーが動作してしまいます。
もちろん、リセット直後のイニシャライズルーチンでは、I/OポートはOutputに設定しているのですが。
しばらく悩んだのですが、理由は非常に簡単でした。(当たり前といえば、当たり前な理由でしたが)
I/Oポートは、Outputに設定した直後は、“High”の状態になってるようです。(データシートによると、“Unknown”なのですが)
よって、I/Oポートの入出力方向を設定した直後、Outputにしたポートについては、初期状態を強制的に設定(この場合は“Low”に設定)することにより、解決できました。
勘違いの元は、リレーの動作状態の確認用にと設置した「パイロットランプ」(高輝度青色LED)でした。
パイロットランプは、リセット直後は点かないので、リレー制御用のポートも“Low”になっているものとばかり思い込んでいたのですが、パイロットランプの制御は負論理でした。(“High”で点かなくて当然なのでした)0xF9C7
ちなみに、試しにI/OポートをInputに設定したままにしておいても、リレーは誤動作しないので、プルダウン抵抗を入れた意味は、ちゃんとあるようです。
ということで、これでハードとソフトは完成しました。
つぎは、基板の作製と、ライトスイッチユニットへの実装です。
(いつになることやら・・・)
Post Comment