1.はじめに

電子回路の実験をしていると、不意の場面でパルスが欲しい事があります。その相手がデジタル回路の時もありますし、アナログ回路の時もあります。パルス幅もいろいろな長さだったりします。このような時、「トグルスイッチで出す」などヤクザな方法は不可能ではありませんが、パルス幅がメチャクチャで一定になりません。また、チャタリングだらけの信号になります。そこで作ったのが、このパルス・ジェネレータです。

写真1 小型のジャノメ基板に作成したパルスジェネレータ

このように直接無線には関係しませんが、周辺回路の実験を行う時に使う、写真1のようなツールです。

2.本機について

回路にどのくらいの長さのパルスを入れると、どのような動きをするのか。また、動きが変わるスレッシュホールドの時間はどの位か。このようなチェックしたい時は、不思議と不意にやって来ます。このようなパルス発生器は、基本的な時間を測るものです。

これを作った時には特に必要とする目的もなく、作れるから作ってみよう、と作る事が目的でした。その後仕事でリレー回路をチェックする事があり、「逆」公私混同をしてこのパルス・ジェネレータを試したところ、「何msからは動作する」という結論を出す事ができました。このようなツールをたくさん持っていると、何かと便利です。測定器という程の大げさなものではなく、ジャラジャラ出てくるツールです。役に立つ事があるかもしれません。時間があると、このようなジャラジャラツールを考えている私です。

3.回路

図1に回路を示します。特にめずらしい部分もありませんが、AVRのAT90S1200を使ってソフトでパルスを作っています。クロックには10MHzのセラロックを使っていますので、これ以外の周波数を使うとパルス幅がDIPスイッチと合わなくなります。DIPスイッチでセットした値×msのパルスを出すようにしています。8ビットのDIPスイッチですので、0~255msの設定となりますが、時間が短い方では特に誤差があります。

図1 AVRのAT90S1200を使った全回路

0msではパルスが出てはおかしいのですが、実際には写真2のように1ms弱のパルスが出てしまいます。この程度の誤差がどの設定でもあるようですので、概ね信頼できるパルス幅は10ms以上からと考えた方が良いと思います。それでも10%程度の誤差はあるかもしれません。正確である事を考えるのであれば、セラロックではなくTCXOを使う方が良いのは当然ですが、そこまでするようなツールでもないと考え、簡易的にセラロックを使っています。

写真2 0msで設定してもこのようにパルスが出る。2ms/divなので1ms弱の長さとなる。

出力は5Vの正論理と負論理の2種類を作りました。AVRは5Vで動作させますので、他の電圧を直接作る事はできません。このような12Vや24Vを駆動したい時には、図2のように外付けのトランジスタを設ける必要が出て来ます。前述の仕事で使った時にも、オープンコレクタ用の出力を付けた方が良かったと、思っていました。

図2 外部に接続するものによっては、このようなオープンコレクタを用意しておくと便利。

同じパルスを繰り返したい場合と、一個だけというケースがあります。そこで、ジャンパーピンを使って、選択可能としました。連続を選択した時は、スタートボタンを押している間はパルスを出します。この場合のデューティ比は50%固定にしています。ソフトも操作も簡単にするためです。

4.作成

例によってジャノメ基板上に作成し、裏側にはゴムのシートを貼り付けました。電源も例によって、ボタン型のニッカド電池を用いています。この程度の規模の場合は、小型のジャノメ基板で十分となります。

このような裏側にゴムを貼る時には、コツがあります。ハンダ面に出る部品の足はなるべく短く切る事。ジャノメ基板の端の列はなるべく使わない事。この2点だと思います。実はそのような意味では、あまり良い作り方ではありません。

5.ソフト

  ここでダウンロードできます。簡単なソフトで、DIPスイッチで設定した値を引き算して行きます。ゼロになった時点でパルスはストップです。連続モードの場合には、DIPスイッチで設定した値を再び読み込んで引き算を再開します。HとLは50%の比で交互に変わります。1ビットを1msで割り当てていますが、10msでも100msでもソフト次第では可能となります。

もっと洒落た事を考えるのであれば、LCDに時間などの情報を表示する事も考えられます。そのようにすれば、もっと複雑な設定も可能となります。今回は簡単に作る事を目指しましたので、DIPスイッチで作ってしまいました。まだヒヨコのようなものですから、ソフトもハードも発展させる事はいくらでも可能です。

また、誤差についても、あまり深く考えていませんでしたが、ソフトを改善する余地はたくさんあります。試しに1ms幅のパルスを連続で出した時の波形を写真3に示します。この設定ではオシロでも読める程の誤差が見られてしまいます。写真4が10ms幅の設定ですので、この程度であれば使用に耐えると思います。

写真3 1ms幅の連続パルスをオシロで見た様子。2ms/divなので倍の長さが出ている。

写真4 同じく10ms幅の連続パルス。2ms/divなので、誤差も吸収されている。

6.おわりに

作っておくと便利という超地味なツールですので、ツール箱にでも入れておいて何かの時に使う事ができれば良いと思います。