目次>5章 第2ステップ(色々な実験)>(12)正弦波を作る>ボリュームで周波数を変える

正弦波を作る
簡易版
− ボリュームで周波数を変える −
更新日2008.8.10

今までの回路は、周波数をディップスイッチで変えていましたが、可変抵抗で周波数を調整できるようにして見ました。

尚、今回はPIC16F84Aを使っていませんが、正弦波シリーズとしてここに載せています。

回路の考え方

今回使用したPICは、A/D変換機能を持つPIC16F88とピン数が多いPIC16F873の2つを使いました。
いずれも、PIC16F84Aでは代替できません。

回路のイメージは下図の通りです。

PIC16F873は、正弦波作成の役目を持ちます。
・リセット時に、RA0/RA1の状態で分割数を決定する
・PORTCの値で1分割のループ回数を決定し、PORTBのラダー回路で正弦波を作成する
PIC16F88はコントローラとして使用します。
・RA0/AN0の電圧をA/D変換し、結果をPORTBに出力する
・RA5のプッシュボタンスイッチが押されたら、RA3/RA4の状態をRA1/RA2に出力し、RA7を一瞬0(PIC16F873をリセット)にする

操作としては、ディップスイッチで分割数を選択し、プッシュボタンスイッチを押す事でPIC16F873に反映し、RA0の可変抵抗で周波数を選択する、と言う流れです。
RA0の電圧と正弦波の波長は比例し、周波数は反比例の関係になります。

コントローラをPIC16F877などにすれば、周波数をLCD表示する事も可能です。

回路図

回路図は以下の通りです。

2つのPICを接続するのに10KΩの抵抗を介していますが、プログラムミスにより2つのPICを破壊しないための保護抵抗です。
一番右の出力用オペアンプは実際には試していません。恐らくこれで行けるだろうと言うレベルです。

ブレッドボードに組んだ状態です。
回路図に無いLEDがいくつか有りますが、デバッグ用であり実際には不要です。
ディップスイッチは、2つ用が手元に無かったので4つのタイプを使っています。

終わりに

PICで正弦波が作れないだろうか、と考えた事がきっかけでここまで来ました。
ちゃんとしたファンクションジェネレータを作るのであれば、PICだけでは無理でしょう。
専用のICを使ってPICで制御すると言うのが正当な方法だと思います。

ですが、周波数を1Hz刻みに設定すると言った必要性が無ければ、今回の回路でも充分です。
安く、手軽にできるメリットもあります。

コントローラにPIC16F877Aなどを使い、鍵盤を付けて電子オルガンなども容易に作れるでしょう。
また、正弦波作成のPIC16F873をPIC18F2320にして40MHz動作させれば、もっと高い周波数も作成でき、 周波数の刻みも小さくできます。

工夫しだいで色々応用ができると思います。