home>>電気工作:素材と道具>>工作してみた(みる)

工作してみた(みる)

安定化電源の作成

PC100170.JPG

いままで実験用の安定化電源をもっていなかった。一応400円ぐらいで買った5Vのスイッチング電源基板(どこで買ったのか忘れた。多分若松)に秋月で売ってるトライステートの電源分配基板(+3.3Vレギュレータ)をつけて、これもまた秋月て売っているポリケースに入れたものを使ってはいた(右写真)のだが、これであれこれやるにはチープで無理があるなあと、最近思い始めてきたので、安定化電源を作ってみることにした。



5V,3.3V固定の出力を複数。オペアンプ用に、-5V出力を確保。可変で20Vぐらい出るものを一つ欲しい。電流は大していらない。使用時に300mAもあれば十分。むしろ狭い工作机の上におけるコンパクトなやつ。

まずトランスが必要。街にあるハードオフ(田舎でもあるのだ!すごいだろ)に行って、動かないトランジスタアンプ500円、30年以上前のサンヨー製品ってのがあったので、一発勝負で買う。ビンゴ!。64V,18V,4Vがとれて4Vはセンタータップになってる。もちろんトランスの電流容量はワカラン。ヒューズは1.5Aのものがついていたので、さすがに300mA程度をとれるだろう程度に考えておる(根拠なし)。

4V*2からブリッジ型全波整流で+-8V以上をとれれば、+-5Vと+3.3Vは確保できるので、試してみると大丈夫っぽい。(8V*1.4-1V(ダイオード降圧分)-3v(レギュレータ分) > 5V )

18Vからは全波で20V程度は取れるとみなす(18V*1.4-2V(ダイオード降圧分)-3V(レギュレータ分))。

次にレギュレータの選定。まず+5は7805CTdatasheet 。-5VはLM337Tdatasheet を使う。LM337Tは可変なので、半固定抵抗で電圧を調整する。3.3Vは500mA最大定格のTA48M033Fdatasheet でよろしい。

可変用のレギュレーターはKA305datasheet 。一応1.2V-33Vまで可変ということで、5KOhmのボリュームで調整する。

放熱板は写真のようにKA305と7805CTにはつけたが、-5V用と3.3V用はそのままいけーっていう感じである。

PC080167.JPG

可変電圧表示は、秋月で売っているSD1602HUOBという「超小型LCD」(緑)をはり込んだ。900円もするのであるが小型薄型なのが気に入る。atmega168のA/Dポートに抵抗分圧で電圧を入れ、表示。

写真左に小さなトランスがあるが、これはmegaと液晶用の別電源。

なんともめんどくさがりやなので、mega168に16Mhz水晶をくっつけ、arduinoのプログラムを流し込むという安易なやりかた。25Vあたりで抵抗分圧で5V入力になるようにする。実測で0-1024の最高値が980ぐらいになるよう抵抗を調整した。ちなみに最高電圧は22Vでした。



一応工作ホビーサイトのお約束なので、表示部の基板裏を示しておきます。使った蛇の目基板は最近秋月に登場した<準通常在庫商品 片面ガラス・ユニバーサル基板 140x40mm 752穴 めっき仕上げ>(な、長い)というやつで、これがかなりいいのです。10枚買ったのだけど、もう少し確保しておこうか、と思わせる基板でした。この電源制作だけで4枚も使っちゃったし。

PC080165.JPG

arduinoのスケッチはページ最後に掲載している。なんとも手抜き。LiquidCrystalライブラリが標準添付されているので、すごく楽であります。

スケッチでもわかるように、可変電圧表示以外は、パネルのDCアダプタの並びの電圧を2行表示してる。写真のように、パネル側に鬼門の「文字入れ」をしなくて済むので、我ながらいいアイデアだと思っているのだ。



PC100169.JPG

PC060161.JPG

パネルは2mmの白アクリル。CNCで穴をあけた。ケースはトライステート Web Radioを「加工」してみるで使ったタカチのSY-190A。右の写真にあるように、中を組み立ててからパネル穴の位置を実測する。そうしないと穴がずれるのであります。素人の悲しさである。以前よりは少しは定規の使い方とか、CADでのお絵かきとかCNCの操作に慣れてきたとはいえ、このパネル作りに一番時間がかかりました。なんでかasease 。なお今回は丸穴にも挑戦してみたが、うまくあきました。ちょっとうれしい。



---

#include <LiquidCrystal.h>
LiquidCrystal lcd(7,6,5,3,2,1,0);

void setup()
{
 delay(100);
  lcd.begin(2,16);
  lcd.clear();
  lcd.print("start meter.....");
  delay(500);
  lcd.clear();
}

float f;
float j;
int prev = 0;
void loop()
{
  f= analogRead(1);
  if (prev !=f) {
  j=f/42.0;
  lcd.clear();
  lcd.print("+");
  if(j<10) {
    lcd.print(" ");
  }
  lcd.print(j);
  lcd.print(" +3.3 +3.3");
  lcd.setCursor(1,1);
  lcd.print("-5.0  +5.0 +5.0");
  prev = f;
  delay(80);
  }
  delay(200);
}













annex

補足情報はありません













note