こんにちは、nomuraです。
今回から回路の動作確認を行っていきます。まずはLEDの動作確認です。
前回は、電源が入ること、電源を入れても燃えないことが確認出来ました。
もちろん、燃えなかったからと言ってちゃんと動くとは限りません。
- はんだ付け不良で実は通電していないor隣のピンとショートしている
- 回路図が間違っていてCPUで処理できない(使えないピンに接続した等)
- はんだ付けで熱をかけすぎて素子が壊れている
など、様々なトラブルが予想出来ます。すんなり動いて欲しいですが、果たして…。まずは比較的簡単なLEDの発光について確認してみます。
壁センサ用のLEDは4つありますが、これらを下の通り時間差で順番に点灯させて壁を検出します。
左右で交互に光らせているのは、他のLEDが出した光を受けてしまわないようにするためです。このようにタイミングをずらす都合で、壁を見るために使える時間は1/4になってしまいます。ちなみに今回採用した緑LEDですが、強く発光させるためにスペックシートとにらめっこして100mAまで流せることがわかりました。1kHz周期の時に10%の時間までは光らせても壊れないようです。
回路の設計段階では「PWM機能でぴったり指定した時間だけ光らせなければ!」などと思っていたのですが、アルバイトに来てくれていたマウサー(※マイクロマウスを作る人の意)に相談したところ「点灯時間は適当でいいですよ」などとアドバイスを貰ってソフトの仕様がブレています。
必要な発光時間は、LEDが光り始めてからA/D変換で値が取れるまでの間なので、厳密でなくても大丈夫だとか。まぁ言われてみれば、そうですね?
データ処理の観点からは、周期だけ一定していればとりあえず良いかな…。
というわけで、今回は単純にタイマ割り込みタイミングでソフトウェアからLEDの点灯・消灯制御を行う事にしました。大きなブレなどあったらイヤなだぁと思い、全チャンネルを計測してみた結果がこちら。
信号が落ちている間が発光時間です。
狙った通り順番に光っていて、まぁおおよそ上手く動いているのではないかと思います。少なくとも回路には問題無さそうです。
ちゃんと10%デューティで発光できているかも確認しておきましょう。全体の周期がこちら。
1周期あたり600usecですね。発光時間はというと、
おおよそ60usecでした。ぴったりですね!ソフトでON/OFF操作しているので、もう少し余裕があった方が安全かもしれません。まぁ、発光時間や周期の調整はマウスとして動きはじめてから追い込んでいきましょう。
LEDの点灯が確認できたので今回はここまで。
次回は受光回路の動作確認を行います。