PIC [スピーカー出力]
PIC16F84A を使って単純な音の出力を試みます。今回もC言語で挑戦します。
更新日 2016-02-13
設計
まずはコチラのページをご確認ください。とてもシンプルな構成です。これに挑戦します。
仕様
ラダー抵抗回路
ラダー抵抗回路は、電圧の簡単なD/A 変換回路 です。今回はPIC16F84A のRB0〜RB6 を出力として使う為、以下の回路になります。なんでこんな回路を
使うかというと、サイン波を7bit つまり128階調の電圧で表現したいからです。ちなみデジタルなオンオフでできる波形は矩形波(短径波ではない)になります。
RB ポートは一括してオンオフを設定出来るため、処理速度的にも有益です。
なお10kΩですがバラツキはあるもので、デジタルテスターで一つ一つ計測して選びます。
なお10kΩですがバラツキはあるもので、デジタルテスターで一つ一つ計測して選びます。
アンプ
今回は10Ωのスピーカー(ツィーター)2機で出力したいので、秋月通商から出てるHT82V739使用ミニモノアンプ基板 を利用します。1200mW の出力が可能です。さらにコンパクトに8pin にまでできます。ちなみにHT82V739 自体は共立エレショップでも買えます。
PIC プログラミング
MPLAB IDE でPIC16F84A 用のプロジェクトを作成します。
ソースコード
speaker_main.c を参照下さい。サイン波の計算をその都度行うと処理速度が間に合わないので、あらかじめ計算しておいた値をPORTB に次々にセットする事にします。計算はC# で作った CalculateDAC.exe にて行いました。
C# CalculateDAC プロジェクトファイル一式

Hitech C を使っていますが、体験版の為最適化されません。上記のソースコードは結構ギリギリです。改良するなら4K ワードあるPIC16F シリーズを使う方が良いでしょう。
テスト
まずはブレッドボードで動作確認をするべきです。十分に検証してください。
組み立て
テストを無事終えたら組み立て作業です。ハンダは一度盛ったら外せません。慎重にやりましょう。
ハンダ付け
まず基板にパーツを載せて、だいたいの位置合わせだけやります。後はどんどんハンダ付けします。一時的に過熱できるスイッチボタン付きハンダごてが便利です。
配線にはハンダの熱でも溶けず、柔軟で取り回しを維持してくれるETFE 線というのを使います。フラックスは爪楊枝で適量付けながらやるとラクです。
電子部品は熱に弱いので、ヒートクリップというアルミ製の放熱工具を併用します。この工具も十分熱くなりますので注意です。
一気に仕上げてしまうと配線チェックが分かり難くなるため、こまめにテスターでチェックしておくと良いでしょう。(実際、今回の最初の製作品はどこか不安定で
廃棄となりました)
アクリルケースを自作
アクリル板を使ってケースを作ります。ヒンジ部は造形補修剤プラリペアでくっつけてます。プラリペアも硬化が速いので便利です。パソコンのマザーボード用
台座ビスを使っていますが、インチねじは基板の穴よりも若干大きい為、ドリルで拡張する必要がありました。
スピーカーを自作
今回は20kHz 近辺での出力を想定しているため、ミニツィーターユニットを購入しています。2個セットで600 円程度。名古屋大須の第一アメ横ビル2F 突き当たりの
パーツショップ「ボントン」に売ってます。ケースはアクリルで作成しました。配線しただけです。
完成図
HT82V739-DIP-A を使う場合
秋月のHT82V739使用ミニモノアンプ基板を使いましたが、このチップにはDIP 版のHT82V739-DIP-Aもあります。こちらを使うとより安上がりです。ただし1uF (x2)と100uF (x1)の積層セラミックコンデンサーが必要です。