2013年12月13日金曜日

RIAAイコライザアンプ(フォノアンプ)の製作

こんにちは、kohtaです。

今回はEP・LPなどのレコードを聴くためのイコライザアンプを製作しました。製作動機はレコードを聞きたかったから

レコードプレーヤーから出てくる信号はとても小さく(2.5mVぐらい)、逆RIAA特性(※)に従っているので、
フォノアンプ(イコライザアンプ)で一旦増幅&イコライジングしなければなりません。
※レコードは低音を減衰させ、高音を強調して記録されている

詳しく知りたい方は、ググってください。

回路は、増幅素子にオペアンプを使いました。
また、電源はトランスと3端子レギュレータで正負電源を作るというオーソドックスなものにしました。

フォノアンプは2つ作り、第1作目はNF型、第2作目はCR型にしました。2つ作った理由は後述します。

今回も画像オオメです。

☆第1作目







第1作目は、NF型の構成にしました。NF素子の定数はマスカット氏のサイトを参考にしました。
しかし、トランスと回路がとても近かったので、懸念されていたハムノイズが出力に乗ってしまいました。(勿論シャーシはアースされている)
シールドのやり方も適当でした。
オペアンプはNJM4580を使っています。ケースはデジットの訳ありケースです。トランスは銅箔の下にあります。

☆第2作目


ケースはタカチのYM-100を使いました。
ちなみに第1作目にも使っているスイッチのボタンは、デジットで売っていたものです。
瞬間接着剤でスイッチと固定しています。


回路は、前作と全く同じでは面白く無いので、CR型としました。
また、電源電圧を±5Vに下げました。これはトランスが小さいので、電流を稼ぐためです。
細かいところですが、電源インジケータのLEDを、トランス出力直後に置きました。
オペアンプは最初、NJM4580DDを使っていたのですが、
このオペアンプは入力バイアス電流が最大500nAあり、回路中R1,R10により、
オフセット電圧が生じてしましました。
終段で2.7Vものオフセット電圧になってしまったのです。
現在はオペアンプをJFET入力のOPA2134PAに変更し、出力オフセットは80mVぐらいになりました。
(これでも多い方ですが、妥協しますwそのうち出力にカップリングコンデンサを入れようと思います。)
回路設計の甘さを感じました。
第1作目では、2つめのアンプの間にコンデンサが入っていたので大きな問題にはなりませんでした。



左から、電源基板、メイン基板、スイッチ基板


私は最近、コネクタ類を基板に乗せるようにしています。整備性が上がりますw



ケースのアースは右上のスペーサで取っています。



ノイズ対策として、トランスに0.1mmの銅板で腹巻きをさせて、
鉄板で囲ってみました(これについては効果不明。
そしてアンプ回路をちょっとでも遠くになるように配置しました。
その結果、ハムノイズは消えました!!


第1作目との比較
サイズは、高さが少し低くなっていますが、全体としてはあまり変わっていません。
製作費用は両作ともに、3,000円ぐらいです。

☆まとめ
オペアンプは適切な物を選ぼう!
オーディオ機器の制作は楽しい!
レコード最高~~~~~~~~~~~~~~~~~~~~~~~~~~~~(゚∀゚)

☆参考文献

  1. RIAAアンプ時定数
  2. RIAA CR型イコライザー回路の計算
  3. デジットBlog:新発売!CR型RIAAイコライザアンプ独立実験基板キット「EQ_CR_G」



☆今後作りたいもの(電気もの)
・大型時計(2012年10月より停滞している)
・D級アンプ
・ヘッドフォンアンプ
・温度湿度計

2013年11月15日金曜日

初めまして

初めまして。Dr.Ashidakaです。博士取得者ではありません()只の中学生です()
実験室DANGERにも参加させて頂いているド素人です。理科が若干出来るだけで調子に乗っている俗に言う痛い人です。
今はコイルガンを製作しています。また進展がありましたら記事にさせて頂きます。
では。

ダイソーのUSBツインチャージャーを便利に改造

こんばんは、kohtaです。

100円ショップにはいろいろな物が沢山あって、お店の中をウロウロするだけでも楽しいですよね。

ダイソーに、「USBツインチャージャー」という物が売っていました。
これは、USBの電源を2つに分ける物のようです。ハブ機能はありません。

今回はこいつを改造して便利にしました。

出力の2つのうち、1つはデーター線を直結、
もう1つは出力のD+とD-をショートさせて、Android端末を高速充電(AC充電モード)できるようにしました。

1分で終わる改造ですね。

Android端末はACモードで充電すると1Aを軽く超えたりするので、PCによっては保護がかかるでしょうww


ちなみにこの製品のUSBのロゴは、本当のUSBのロゴと少し異なっています。ライセンスの関係でしょうね。


フリスクケースで電圧計

こんばんは、kohtaです。

フリスクのケースに回路を載せる工作を載せた工作は、割と見かける気がします。
経験のある人は多いと思います(?)
ケースを使うためにフリスクを買う人も多いのではないでしょうか。

今回は(と言っても作ったのは今年の7月ごろだが)フリスクのケースを用いて電圧計を制作しました。面倒なのでこれ以降、フリスクのケースをフリスクと呼びます。

このプロジェクトwは、2つの実験的な要素を含んでいます。その要素は次の2つです。

  1. 大きな7セグをフリスクに収める
  2. ADCのついていないマイコンATTiny2313でAD変換をする
……などと言ってみましたが、単に部品が余っていたので作りました。

~ハードウェアの制作~

フリスクのケースの内寸法は、小部屋と突起を切り取ると67.2*27.7*8.5 mmです。
このケースに入る7セグLEDを探したところ、10mmくらいの小さな物しか見つかりませんでした。
LEDはなるべくケースから飛び出させたくありません。
しかし、小さなLEDでは見にくいです。なるべく大きな7セグLEDを使いたいと思いました。
そこで、文字高さ14mmの7セグLEDを少し加工して使うことにしました。
ちなみにこれとか、 これとか、 これ です。
また基板はt=0.8mmで片面基板とすることで、フリスクの蓋とLEDの面を面一にできました。


 LEDを表面実装するのです。
また、マイコンも同じようにピンを曲げて表面実装型にします。(表面実装パッケージのものも売っていますがあるものだけで作りたいという趣旨があります)


プリント基板は、(不)安定の熱転写方式で自作


部品を実装するとこのようになりました。

フリスクケースのほうも加工します。小部屋をカッターで切り取り、蓋をドリルとヤスリで穴を開けます。バリ取りはカッターを使うと綺麗にできます。

~回路の設計~
 主に自動車で使うことを想定したものにしてみました。測定範囲は6~30Vで、電源と測定端子は共通にします。共通にすると内部抵抗が下がり、精度が悪くなりますが、妥協しましょう。
回路図を下図に示します。 
 
 まず電源の6~30Vを5Vに降圧します。7セグLEDはマイコンATTiny2313に直結しました。ダイナミック・ドライブします。アノードコモンのLEDを使いましたが、プログラミングを変えればカソードコモンも使えるはずです。
ATTiny2313にはAD変換器が付いていませんが、ATTiny2313にはアナログコンパレータが付いているので100uAの定電流ダイオードとコンデンサを外付しAD変換器を作りました。測定電圧は、ツェナーダイオードで降圧し、分圧したのちAVR ATTiny2313に入力しています。


~プログラムの制作~
 AVRのプログラムをCで書きます。
タイマ割り込みでLEDをドライブして、mainで測定の処理をしました。

AD変換の原理について
 コンデンサを定電流で充電すると、コンデンサの端子電圧は、直線的に増加します。
式で表すと、
 Vc = (i/C) * t
 (Vc…コンデンサの電圧、i…電流、C…コンデンサの容量、t…時間)
となります。

そして、ATtiny2313にはアナログコンパレータがついています。
コンパレータとは、2つの電圧の大小を比較するものです。

コンデンサの電圧と測定したい電圧を比較し、コンデンサの電圧が測定電圧より上回るまでの時間を計測すればAD変換の値を得ることができます。



より具体的に表すと、
  1. コンデンサを0Vまで放電させる
  2. コンデンサを充電開始 & 時間をカウント開始
  3. コンパレータの出力が変わったところでカウントストップ
  4. カウントの値が測定電圧(に比例した数)
となります。

ここで重要なのは、コンデンサや分圧抵抗、ツェナーダイオードの精度、クロック源の精度です。
これらを測定していって真面目に計算するのは結構大変なので、最初に適当なプログラムを作り、入力した電圧と、出てきたAD変換の値から逆算しました。
また、AD変換器のコンデンサは特性の良いフィルム系の物を使います。セラミックコンデンサは向きません。


実際に組んだプログラムです。(汚いのは勘弁w
/*********************************
  電圧計
  ○○○○○○○○○○○○○○○○
*********************************/
#define F_CPU 12000000UL //12.0MHz

#include <avr/io.h>
#include <avr/interrupt.h>
#include <stdlib.h>
#include <util/delay.h>

// グローバル変数
char keta = 0;
volatile int num = 0;
volatile unsigned long volt = 0;

void Set7seg( char number){
// セグ初期化
PORTB |= 0b00010100;
PORTD |= 0b01110111;
// セグメント割り当て
switch(number){
case 0:
PORTB &= ~0b00010100;
PORTD &= ~0b01010011;
break;
case 1:
PORTB &= ~0b00010000;
PORTD &= ~0b00010000;
break;
case 2:
PORTB &= ~0b00000100;
PORTD &= ~0b00110011;
break;
case 3:
PORTB &= ~0b00010100;
PORTD &= ~0b00110010;
break;
case 4:
PORTB &= ~0b00010000;
PORTD &= ~0b01110000;
break;
case 5:
PORTB &= ~0b00010100;
PORTD &= ~0b01100010;
break;
case 6:
PORTB &= ~0b00010100;
PORTD &= ~0b01100011;
break;
case 7:
PORTB &= ~0b00010100;
PORTD &= ~0b00010000;
break;
case 8:
PORTB &= ~0b00010100;
PORTD &= ~0b01110011;
break;
case 9:
PORTB &= ~0b00010100;
PORTD &= ~0b01110010;
break;
default:
break;
}
}

// タイマ0割り込み
ISR(TIMER0_OVF_vect){
// TCNT0 = 150;
PORTB &= 0x00; // 消灯
if(keta == 2){
Set7seg(num%1000/100);
PORTB |=  _BV(PB5); // 3桁目 点灯
keta = 1;

}else if(keta == 1){
Set7seg(num%100/10);
PORTB |=  _BV(PB6); // 2桁目 点灯
PORTD &= ~_BV(PD2);
keta = 0;

}else if(keta == 0){
Set7seg(num%10);
PORTB |=  _BV(PB7); // 1桁目 点灯
keta = 2;
}
}
// カウンタ1の捕獲発生
ISR(TIMER1_CAPT_vect){
TCNT1 = 0;
volt = ICR1;
}
int main(void) {
/*
a PB2
b PD4
c PB4
d PD1
e PD0
f PD6
g PD5
DP PD2
COM1 PB5
COM2 PB6
COM3 PB7

コンデンサは、500uSで満タン
*/
DDRD  = 0b01110111;
PORTD = 0b00001000;
DDRB  = 0b11111100;
PORTB = 0b00000000;

// タイマー0
TCCR0B = 0x03; // プリスケーラは  (dataseet p.66)
TCNT0 = 0; // タイマ0の初期値
TIMSK |= _BV(TOIE0);// タイマ0オーバーフローだけ割り込み許可

// タイマー1
TCCR1A = 0x00;
TCCR1B = 0b11000001;
TIMSK |= _BV(ICIE1);// 捕獲割り込み許可
TCNT1 = 0x0000;

// アナログコンパレータ
ACSR = _BV(ACIC); // アナログ比較器捕獲起動許可
//ACSR = _BV(ACIS1); // コンパレータ上昇で
//ACSR = _BV(ACIS0); //

DIDR = 0b11; // デジタル入力禁止

sei(); // 割り込み許可

char ave_cnt = 0;
long volt_ave = 0;

while(1){

volt_ave += (((volt*100)+69863)/1800);
volt_ave = volt_ave/2;
ave_cnt++;
if(ave_cnt >= 20){
num = volt_ave;
ave_cnt = 0;
}

_delay_ms(20);

DDRB &= ~_BV(PB0); // コンデンサのピンをオープン

cli(); // 割り込み禁止
// Cを充電開始
TCNT1 = 0x0000;
PORTB |= _BV(PB3); // 充電開始

// コンパレータが1を吐くまで待つ
while(!(ACSR & (1<<ACO))){
}
PORTB &= ~_BV(PB3); // 充電を止める
sei(); // 割り込み許可
// Cを放電
DDRB |= _BV(PB0); // コンデンサのピンを接地=放電



}




}

書き込みは平ピンICソケットを上から被せると便利です。




~まとめ~
フリスクケースでそこそこ見やすい電圧計を作ることができました。
また、定電流ダイオード+コンデンサの組み合わせで作ったAD変換器は、直線性も良く、安定した物ができました。
この基板を少し改造したら電圧計以外にもいろいろ応用ができそうです。ただし電源が別でいるのが厄介ですね。マイコンをSOPなどの表面実装部品に換えたら小さなバッテリーを置くことができそうですが、そうなるとLEDより消費電力の低い液晶のほうが有利になってしまいます。

7セグLEDはそのままでは見にくいので、グレースモークの下敷きを貼り付けようと思いました
が、力尽きました……

~参考文献~
簡易A/D変換(積分回路の応用)
ELM - シンプルなA-Dコンバータ

小型アンプの制作 ~TA8201Kとその仲間たち~

こんばんはkohtaです。
今回の記事の作品は、1年前(2012年11月頃)に作ったもので申し訳ないのですが、投下いたしますw

大阪日本橋のシリコンハウスでTA8201Kというカーオーディオ用パワーアンプICが1個100円という衝撃の安さで売っていました。思わず6個ぐらい買ってしまいました。(当時)



このICは、14Vで15Wぐらいの出力がある1ch、BTLのアンプICです。
折角なので、余っていたケースを使いアンプを1台作りました。

~回路構成~
大まかな構成は、
2入力→セレクタ回路→トーンコントロール回路→パワーアンプ回路
これらの回路は、マイコンでコントロールしてみることにします。電源はACアダプタです。

・セレクタ回路
 M15320PというビデオセレクタICが部品箱ありましたので利用しました。
 こいつはビデオの他にオーディオ用のスイッチを持っているのでそれを使いました。

・トーンコントロール回路
 トーンコントロールは、高音と低音を調整できるようにしました。
 マスカット氏のステレオアンプの回路を参考にし、オペアンプで組んでみました。
 NF型トーンコントロール回路です。

・パワーアンプ回路
 これは最初紹介したTA8201Kを使います。ステレオなので、2個使うことになります。
 また、ポップノイズ対策として出力に電磁リレーを付けました。(遅延してカチッと音がするの素敵だと思いませんか?)

・マイコン回路
 僕は、タクトスイッチを使ったスイッチがとても好きです。なので、タクトスイッチで電源のON/OFFと、セレクターの切り替えをできるようにしました。また、このくらいの小さな制作物では、トグルスイッチ等を使うと操作するときにケースごと浮いてしまったりします。

ついでにポップノイズ対策のリレーも制御します。
 AVRのATTiny13Aを使います。

全体の回路図を下図に示します。

したの図の右側のコネクタはトーンコントロールのボリューム用です。


~制作~
基板はEagleにて設計し、自分でエッチング♡します。

小さい基板はパネルとなります。
白黒反転しとるな
組んでみました。
このケースは、タカチのYM-130です。

ICの放熱はアルミアングル

動作テストのようす


順番が前後しますがケースの加工です。長穴はミーリング加工、それ以外はドリルとヤスリ


組み付けるとこのようになる。


スピーカー端子(出力)は安価に、端子台+基板の組み合わせです。

フロントパネル基板の固定はアルミの端材にタッピングしたものを使用した


~ボタンの加工~
スイッチのボタンは自作しました。
落ちていたアクリル板をミーリング加工します。
このアクリル板は、端が綺麗に仕上げられていたので、その面は残しました。




完成したものが上の写真になります。凸の形になっています。
透明にしたのは、LEDの光を通して光るようにするためです。


完成したものがこれです。
文字入れをしたいですができてませんw ツマミも適当なものがありません
左から、電源ボタン、入力切替、入力のLED、ボリューム
下のツマミが低音、高音のトーンコントロールです。(秋月で販売されているスライドボリュームを使用)

~音質など~
 普通
 トーンコントロールは定数が激しすぎた感じアリ

~まとめ~
 このアンプを作った動機はICが安かったから、という理由ですが、そこそこの物ができました。ツマミをつければ様になると思います。
製作時、ネジを極力多用しないようにしました。メイン基板に関しては、ICの放熱板とボリュームのナットで固定されています(ボリュームの半田にストレスがかかるので本当は良くないですが)。

ナニワトモアレ、オーディオ工作はとても楽しいです。
なおこのアンプは高校に忘れてきたので手元にありませんww

今度はD級アンプを作ろうと思っていますが、なかなか進みません。部品は揃っているのですが……。

この記事とほぼ同じ内容を自分のサイトに上げています。
  ステレオアンプ2(小型版) - <(。ε゚)>

2013年11月12日火曜日

25W LEDの駆動回路 ~投光器の製作~

こんにちは、kohtaです。

今回は、25WのパワーLEDを入手したので点灯させる回路を作りました。秋月電子通商やデジットで販売されているものです。
投光器として使えるようにします。
汎用性を高めるために、電源は10~25Vとしました。鉛バッテリーでも使用できます。

このタイプのパワーLEDは、発熱がとても多いので放熱させなければなりません。
私は、CPUクーラーを使いました。

 ヒートシンクにM3のネジ穴をタッピングして固定しました。写真には写っていませんが、ファンも使います。ファンがないと放熱が追いつきません。

ケースは、ダイソーのペンケースを使いました。本当は防水仕様にしたかったのですが、放熱の関係で難しいです。
このペンケースは歪んでいるものが沢山あるので選ばなければなりませんw

 電源ジャックは5.5-2.5mmのDCジャックにしました。ノートPCのACアダプタはこのコネクタが多いので、ノートPCのACアダプタでも動かすことができます。


LEDの上に付いているのは、温度センサーです。シリコンダイオードを3個直列にしたものです。
LEDの温度によってファンを自動でON/OFFさせます。



基板は(不)安定のアイロン転写。今回は片面で、表面実装部品は使いませんでした。
この基板、緑が美しいですw


やってみたかったフェイズシフト昇圧チョッパ、コントローラはTL494です。若干大げさな気はしますが……。
 TL494はFET氏から頂きました。インダクタは秋月で買ったものです。90uHの物ですが、20回解きます。(実測15uHになります(多分))


 動作テストのようす。勿論、明るさは可変できるようにしています。
なお、真の定電流駆動!(言ってみたかった

ところで、コネクタを使うと完成度が高まる気がしますw



 回路図
TL494以外は秋月電子で手に入る物です。MOSFETは今はなきPJP75N75を使いました。(ちなみにaitendoで取り扱われています)
50V50AぐらいのNchMOSFETならなんでも良いと思います。FETの放熱板は適当なアルミ板で十分でしょう。
オペアンプはCMOSの入出力RtoRのものでなければなりません。決してLM358などを使ってはいけません。

電源電圧範囲が30Vまでとなっていますが、実際は27VぐらいからLEDが光りだしてしまいます(Vfに近すぎる)ので、25Vが限界だと思います。
MOSFETのゲート耐圧が心配という方が居ると思いますが、ツェナーダイオードがどこかに潜んでいますので探してみてください。

この回路は昇圧型のものなので、感電する可能性があります。注意してください。
一応、LEDが繋がっていなければ45Vで停止するようになっています


これはアパートの2階から駐車場を照らしてみた時の写真です。
とても明るいことがわかります。屋外の作業灯にできそうです。


今後の問題点としては、
・投光器自体の固定方法………三脚に取り付けられるようにするとか
・LEDの加熱保護………温度ヒューズをLEDに直列に付けたい
といったところでしょうか。

パワーLEDは直視すると危険なので扱おうと思っている人は注意してください<(。ε゜)>