色で電圧を表現する
PICマイコン、PIC12F675にアナログ信号を入力し、A/D変換を行い、電圧値に応じて色を変化させて表示させようとするものです。3色LEDをソフトウェアPWMで制御しています。 シンセやエフェクタのモジュールで、EG や LFO といった電圧変化のインジケータとして便利です。 もともとはEDNの作例を参照しようとしていたものですが、私の所有していないコンパイラで作られていたので、パラメータも替えてアセンブリ言語でスクラッチから書きました。回路図はEDNのものを参照していますが、いずれ描き起こしたいと考えています。
そもそもはアナログシンセのLFOを色で表現してみたいという考えから作ったものです。この回路では+5Vの系統しか書かれていませんが、正負電源を用意してクリッピングしてやるなど、システムに組み込む上では信号の電圧レンジなどを考慮したコンディショニング前処理が必要になります。
しかし、PICはなんとなく書きにくい。いや、書いたはいいけどあとで読み直すのがイヤになるニーモニックであるなぁと常々思います。ペリフェラルの初期化もなんかこの順序でないとうまくいかなかったりするものもあったりするようでしたが、とりあえずは動けばいいので追求はしていません。
はじめからEDNのソースが流用できないと気づいていれば、マイコンもAVRにしてGCCで書いたのですが、一度作ってしまったこの回路、ビルディングブロックIPとしてさまざまなモジュールに搭載しています。
製作情報
回路図
https://gyazo.com/3ec91ff51bc5b80e5359393967526873
ソースコード
A/Dコンバータは ADCON0レジスタのADONフラグを立てないといけないらしい
FAQ
入力電圧のレンジは?
0~5Vです。必要に応じて適宜分圧、保護回路挿入してください
参考文献
更新履歴
2017/10/20
2017/10/20 Scrapboxにて記述開始