ピックワールド(PIC World)

インフォメーション

この記事は 2018年01月18日 に以下のカテゴリに投稿されました Arduino Blog.

この記事のタグ

, , , , , , , , , , , ,


Arduino で周波数を計測する – バイクのタコメーターを作りたいんだよ!(その4)

波形の整形が必要だぁ~

ってところで止まっていたのだけれど、言い訳ではあるが、機材が届かなかったのね。

こちらで紹介した、ファンクションジェネレータ。

外は寒いからさぁ。

バイクのそばで細い線繋いでなんて、お年寄りには酷な訳なので、ゆるしてちょ~だい。

このファンクションジェネレータを購入した目的の一つに、波形の整形が必要なパルスと同じ形の波形を出力させて、製作を進めよぅ!ってのもあったわけ。

で、機能的に必要なことは、今のちょっとした、こんなファンクションジェネレータにも任意波形が出力できるって機能がある。

PC にソフトウエアをインストールすると、任意波形を PC の画面で描いて、その波形の信号を出力できるという機能だね。(便利でしょ)

でも、このファンクションジェネレータが届き、最初にいじくりまわしていたわけだけれど、同じような波形がすでにプリセットされていて、出力することができるのよ!

プリセットされている波形も、たくさんあって、その中の一つに、こんな波形が・・・

ファンクションジェネレータにプリセットされている波形

ファンクションジェネレータにプリセットされている波形

黄色い線がその波形ね。(見にくくてゴメン)

この波形って、前回測定したこれとよく似ているので、これを使って波形整形してみることにした。

こちらが前回測定した波形(イグニッションコイルに入る前の波形)

オシロの画像

オシロの画像

前回同様、ダイオード2本でクランプしてあげて、最大電圧を5V程度とし、マイナス成分は除去する。

その後の波形整形ということなのだけれど、これは実は簡単で、定番だろうなぁと思うのだけれど、シュミットトリガインバータを使ってしまう。

シュミットトリガインバータとは、2つの閾値を持っていて、それを超えたら信号を出力し、それより下がった時に、信号を止めるという回路。

だから、例えば正弦波が入ってきたら、それを直流にする必要はあるけれど、2つの値でシュミットトリガインバータを通って、パルスの形に出力できるということ。

世の中都合の良いものがあるのですよ~

シュミットトリガインバータといえば、これは 74LS14N があるよね。

こいつには、実は6個のシュミットトリガインバータが入っている。

足の数が多いと、実装時に小さくするのが難しくなるので、もっと小さいのを探してみたのだけれど、こちらは都合の良いものがないんだよなぁ。

ディスクリートでくむこともできるだろうけれど、2つのトランジスタと数本の抵抗と、小さなコンデンサでできそうだが、おそらくは実装面積は、そんなに変わらないと思われるので、却下。

あとは、SMD(表面実装)の部品を使う方法があるけど、これは確かに全体的に小さくなるのだけど、ローガンで見えないので当然却下。

ということで 74LS14N (または互換品)の DIP を使うことにする。(手に入れるのも容易だし)

1つのシュミットトリガインバータがあれば、波形は整形できるけれど、信号が反転してしまう。

この場合には、パルス幅を求めるだけだから、別に反転していても良いのだけれど、まぁ、教科書の通り、2つ使って信号の反転を防げばよい。(それでもまだ余るんだよな)

前回の DC パルスを作る回路の後に、シュミットトリガインバータを2つ直列につないであげれば良いだろう。

さて、以下の回路で早速実験。

波形を整形する回路 – シュミットトリガインバータ(74LS14N)使用

波形を整形する回路 – シュミットトリガインバータ(74LS14N)使用

まずは信号がきちんと整形されているかを確認。

これは、各周波数で行わないとだめだね。

では早速。

もう慣れたので、新しいファンクションジェネレータも、デジタルオシロもバンバン使う。

まずは、アイドリング回転数(ぐらいを想定)の1400回転。

1400RPM

1400RPM

2現象のオシロだけど、3現象みたいに見えるでしょ。でもこれ、一番上が元波形でこれは、波形をメモリーしておいたものを表示している。(水色の波形ね)

2番目は、ダイオードを使って、クランプして、マイナス分を除去した波形。(赤い波形)

3番目が、シュミットトリガインバータを使って、整えた波形。(黄色い波形)

まぁ、四角いパルスになってはいますな。

こうなっていれば、Arduino に信号を入力してもきちんと回転数として表示ができてる!(やったね!)

続いて、回転数(周波数)をあげてみる。

3000RPM

3000RPM

6000RPM

6000RPM

10000RPM

10000RPM

15000RPM

15000RPM

20000RPM

20000RPM

ふん。

大体良い感じ。

波形もまずまずだし、Arduino でも、まぁ問題なく数値が出ている。

20000回転ぐらいまでは、この波形であれば、何とか正確な値で表示ができるが、それ以上となると、だんだん誤差が大きくなってくるね。

40000回転で、大体だけれども、500回転ぐらい少なく表示されるようだ。

まぁ、想定の範囲内なので、良しとしよう。

おそらくは、最高に回っても、1万回転ぐらいだろうから。

良い感じではあるのだが、おそらくは、この回路に入力される、ピックアップコイル手前の信号のレベル(強弱)によって、直列に入れてある(一応インピーダンスとかを考慮して)抵抗値は、調整しなければならないだろうなぁとは思う。

さて、お次は、実際に愛車リトルカブに装着してテストしてみる。

寒い中、動作の確認と、抵抗値の決定だねぇ。暖かい日中に行おうとは思うけれど、どうやら明日も関東地方は冷え込みが厳しいみたい。

そんなこと言っててねぇ。日本海側は大雪で大変みたいで、お見舞い申し上げます。

その次は、Arduino 側で、少し、ソフトウエアをブラッシュアップしようかなと。

思っているのだが、秋月電子で、気になるものを発見してきた(表示器)ので、表示側の回路も少し変更するかも・・でも少しそこでも障害があるんだよね~(解決できるけど)

のんびりやってますが、お付き合いください。


コメントを残す

最近の投稿

最近のコメント

アーカイブ