見出し画像

反射センサで回転数測定

DCファンの回転数を測定する必要に迫られた。
メンテ時に回転数低下を見つけるのが目的なので、羽根の近くに反射センサを近づけて測定することにした。(測定が終わればセンサを取り除く)

反射センサ(フォトリフレクタ)の出力をPICマイコンのComparator に入力して単位時間(1秒)当たりのパルス数を計数する。

まずは反射センサのフォトトランジスタ出力(コレクタ端子)に直列接続したコンデンサを介し、PICのDAC出力をDCバイアスにしてComparator に入力した。
タイトル画像はComparator 入出力のオシロ波形です。
(赤が入力、黄色が出力です。)

ノイズによる不具合

良さそうに見えますが、単位時間当たりのパルス数(立ち上がりエッジ数)をカウントさせると想定の2倍位の値になりました。

時間軸を調整して何度も波形を確認すると、下図のような波形を観測しました。

画像1

これは立下りエッジの波形ですが、複数のパルスが見られます。

Comparator のヒステリシスを有効にしていますが、入力信号に含まれるノイズによってファンの羽根1枚で1パルスになっていないことが分かります。

このままでは使えないので、次のような対策を行いました。

対策1 より良いセンサ位置を選ぶ

回転する羽根に対するセンサ(受発光素子の相対位置)を変えてみて、より良い位置を選ぶ。

タイトル画像に比べて2倍程度の振幅が得られるようになりました。

対策2 コンパレータ閾値を修正する

オペアンプ回路を追加して、PICのDAC出力(=Comparator 閾値)より80mV程度低いDCバイアスを作りました。

DCバイアス(センサ波形の平均電圧)に対してComparator の閾値電圧を少し高めにして、2つの電圧のギャップがノイズレベルよりも大きくなるようにします。これによって羽根が回っていない時もノイズによる誤計数を防止出来ると思います。

対策3 エッジカウント後に不感期間を作る

エッジをカウントしてから200usecの間はカウントを停止する不感期間を設けました。

とりあえず計数結果が安定した

この段階で、想定される計数結果が得られるようになり、繰り返し実験しても安定した値が得られました。

また、回転が止まっている間は計数値0で、これも安定しています。

ひとまず、これで目的を達成出来たと思います。

追加対策案 ローパスフィルタを入れる

念のため、CRによる簡単なローパスフィルタを構成可能な回路図を書いてA/W作業に入ります。


感想

PIC18F に Comparator があることは知っていましたが、もっぱら外付けのアナログ回路でデジタル変換してからPICに入力していました。

今回は外付けのオペアンプ無しではうまく行かなかったですが、バッテリー電圧の監視などの用途では手軽で便利そうです。

今後ますます活用して行きたいと思います。



何等かお役に立てれば幸いです。


追伸:

別の記事で回路図を使って少し詳しく紹介しています。



出来ればサポート頂けると、嬉しいです。 新しい基板や造形品を作る資金等に使いたいと思います。