{{publish any}} {{tag AVR,電源,ATtiny26}} !header 電子負荷装置の製作も完了したので、実験用安定化電源の製作に取り掛かります。とは、いっても、トランスと3端子レギュレータつかった単純なものですね。この電源に内蔵する電圧計と電流計をワンチップマイコンのAVRかPICで作ってみます。 !body 今回も、ワンチップマイコンをAVRにするかPICにするかで悩みます。 電源は、+5V 固定出力と+1.5〜16Vまでの可変出力の2系統とする予定なので電流計が2系統、可変電圧の表示に電圧計が1系統と合計3系統の表示が必要となります。できれば、3系統を同時表示したいと思います。 7セグメントLEDで表示部をつくると、かなりのポートが必要となるか、ダイナミック点燈にでもしたらえらいややこっしい配線になることが想像できます。・・ということで、LCDを表示に使うしかありませんね。 AD変換が3ポート以上で、LCD接続(4bit接続)で6ポートとなるので、手持ちからの選択肢は、PIC16F88かAVRのATtiny26ということになります。PIC24FやATmegaシリーズは、オーバースペックでしょうね。 で、今回は、AVRのATtiny26を使うことにしました。 {{image DSC01142.jpg,,,size:50%}} 早速、日本語のデータシートを”HERO'S Download"からダウンロードさせていただいて(ありがとうございます。)、スペックを確認するとAD変換も11ポートあるし、ピンも20ピンDIPということで余裕でしょう。ただ、フラッシュメモリが2KByteと少ないのが気になります。 AD変換(ADC)を[こちらのAVRWiki|http://avrwiki.jpn.ph/wiki.cgi?page=Getting+Started+Notes]を参考にしながらプログラミングしてみました。 {{image DSC01147.jpg,,,size:50%}} とりあえず、3系統の電圧表示が完成しました。 前回、AVRを使用したLCメーターの製作では、フラッシュメモリ16kByteのATmega168を使用したので、LCDへの実数表示にfprintf を使って簡単に実現したのですが、今回も同じ手法をとると、かる〜く、2KByteをオーバーします。(というか4KByteを超えます--;) それだけじゃなくて、実数計算を行うだけで2KByteを超えるので整数演算しかできません。ちょっとなやんだのですが、さっきのAVRWikiサイトのサンプルプログラムに小数点表示機能つきのitoafなんて関数があったので利用させてもらいました。(ありがとうございます。) あと、LCDライブラリは、[あきぼうのAVRで遊ぶ日々|http://www11.ocn.ne.jp/~akibow/AVR/index.html]からいただいたものをそのまま利用しております。(ありがとうございます。) ということで、大部分が他力本願ですが、なんとかこれでイケソウデス。