こんにちは!はしもとです。
前回は、以下の内容についてまとめました。
- 部品配置を行い、部品同士の位置関係を確認
- 各部品同士でどのようなつながりを持っているか回路ブロック図を作成
- 部品配置を参考に、STM32にピン配置
今回は、実際に回路設計を行っていきます。
発光回路
使用した赤外線LEDはSFH4550です。
赤外線LEDを発光させる際、先輩のブログにも記述されているとおり、マイコンからの出力電流が25mAまでしか出力されず、LEDの順電流である100mAには届かないです。なので、自分もMOSFETを使います。MOSFETはゲートにわずかな電圧をかけることで、ドレイン電流を増やすことができます。MOSFETの動作原理はこちらの動画が参考になりました。
また、回路内にはローパスフィルタも追加することで電源電圧の変動に伴うノイズを抑制しました。ローパスフィルタは、遮断周波数よりも低い周波数しか通さないフィルタです。なので、遮断周波数よりも大きい周波数のノイズを除去することができます。
では具体的にどのような回路にしたか説明します。
まず、ローパスフィルタにするためにはRC回路にする必要があります。
下記の図に示したとおり、上記の回路図内には記載されていない配線抵抗があります。なのでこの配線抵抗とC1, 同様にして配線抵抗とC2の組み合わせがそれぞれローパスフィルタになっています。(抵抗とコンデンサの順番を逆にした場合はハイパスフィルタになります。)
このとき、コンデンサの容量によって遮断できる周波数が異なります。遮断周波数\( f_c \)の求め方は以下のとおりです。
\( f_c = 1/2πRC \)
上記の式からわかるとおり、コンデンサの容量が大きいほど遮断周波数が小さくなり、低周波のノイズを除去することができます。一方で、コンデンサの容量が小さいほど遮断周波数が大きくなり、高周波のノイズを除去することができます。
また、R1の抵抗値の決め方ですが、この値は赤外線LEDにどれくらいの電流を流すかによって変わります。今回扱う赤外線LEDの順電流は100mAです。順電流は流し続けられる電流の上限値です。一方で先輩のブログに書かれているとおり、今回はセンサを一定の間隔で発光させます。順電流では100mAが上限でしたが、一時的に発光させるのであればもう少し電流を流すことができるのです。より多くの電流を流し発光させることでより遠くの壁を検出することができます。
SFH4550のデータシートを確認すると、一時的に流すことができる電流の上限値「Forward current pulsed」は1Aなので、これを加味して抵抗を選定していきます。
まず、電源電圧は3.3V、赤外線LEDの順電圧は1.5Vであるため、電位差は3.3V-1.5V = 1.8Vになります。次に抵抗値を求めます。もし、上記の回路図のようにR1を10Ωにした場合のときの抵抗値を考えます。MOSFETの抵抗値はデータシートによると6Ωなので抵抗は10Ω+6Ω=16Ωになります。したがって、赤外線LEDに流れる電流値は1.8V/16Ω = 0.1125A = 112.5mAになります。この電流値は順電流は超えますが、瞬間的に流せる電流の上限値に対しては許容範囲内となりました。
もし、これ以上の電流値を流したい場合は、R1の抵抗値を小さくすればよいです。
そのほかの回路内の抵抗値R3、R2の役割は以下のとおりです。
R3 ・・・ FETのON,OFFの切替時に発生する発振を防ぐため。ゲートに入れる抵抗値が大きくなるほどスイッチングの速度が低下します。
R2 ・・・ マイコンの初期化中、不安定な信号を確定させるため。Nch FETのインアクティブはLowであるためプルダウン抵抗。
受光回路
今回使用したフォトトランジスタは、ST-1KL3Aです。
フォトトランジスタは、受光する光の強さによって出力する電流が変化する素子です。
一方、電流はAD変換できないため、マイコン側はセンサ値がどれくらい変化しているかわかりません。
そこで、IV変換(抵抗に電流が流れると電圧が発生する)するため負荷抵抗を使います。今回は1kの抵抗を使いました。
また、受光回路同様にノイズ除去のためのフィルタを追加しました。今回はハイパスフィルタを使います。ハイパスフィルタは、ローパスフィルタの反対で、高周波数のみを通して、低周波数のノイズを除去するフィルタです。マイクロマウス競技において、蛍光灯などの低い周波数(50Hz, 60Hz)はノイズになりうるので、それらを除去するためにハイパスフィルタを使用します。
下記回路では、遮断周波数\( f_c \)は、\( 1/2πRC = 1591Hz \)となり、これ以下の周波数は除去することができます。
また回路図内では、マイコンに割り振るピン名がすべてRF_ADC1になっていますが、本来はRF_ADC1, RF_ADC2,,, と自分がマイコンに割り振ったピン名に変更する必要があるのでご注意ください。
まとめ
今回は、発光回路、受光回路の設計を行いました。
自分は回路設計初心者なので、回路設計の本を調べまくったり、マウス経験者の方々に質問しまくったりしてなんとか回路設計の知識をつけようと頑張っていますが、まだまだわからないことだらけですorz
ですが、ポジティブに言えば伸びしろしかないので、どんどん知識を吸収して回路設計に早く慣れていきたいです〜
今回は以上です!それではまた!