LEDデスクライトのDCジャック追加 [電子工作]
炊飯器の修理~日立IH炊飯器 RZ-SV100K~ [電子工作]
ヘアドライヤーの修理 [電子工作]
表面実装部品のはんだづけ [電子工作]
超音波式加湿器のパワー制御 [電子工作]
目覚まし時計の修理 [電子工作]
再び鳩時計の夜鳴きを止めた話 [電子工作]
PICでTVリモコンを模擬した話 [電子工作]
2017年4月17日の日記
TVの近くに置いておいてこれをタイマーにしてon/offします。
このところ,PICで遊んでいます。道具をそろえるのが非常に面倒だし,また,ソフトを組むのもデバッグするのも本当に大変なんですが,自分でマイコンを使った機器を作れるようになるとなかなか便利です。
先日,子供用にタイマーつきのあんどんを作りました。今日はTVのリモコンを模擬したものを作ります。
そもそも,ちゃんとTVにはリモコンがついているのに,なんでわざわざPICでリモコンを作らなきゃなんないのか? って実はiruchanもそう思います。
ところが,こうしないといけなくなっちゃったんです。
実は,半年ほど前,某関西に本社があるP社(もちろん,"開拓者" のP社じゃありません)の大型液晶TVを職場で買いました。
といって,職場でTVを見るわけじゃなく,単にパソコンのモニター用として購入し,特定の画面を表示させておくためのものでした。
ところが.....。
ここに落とし穴がありました。パソコン専用のモニターとして使うなら,ちゃんとモニターを買うべきだったんです。
今は液晶TVはかならずHDMI端子がついていますから,そこにパソコンをつなげば大型モニタになるし,DVDやブルーレイも再生できる,プレゼンもできるので便利です。アナログのビデオ信号と違って1本のケーブルで音も出せるのは便利です。普段はTVとして使っていて,たまにパソコンからDVDを再生する,と言うこともできますね。
ただ,今回のように,パソコン接続専用,ということならちゃんとしたモニターを買うべきです。
なにがまずかったか,というと.....。
実はそのP社製の液晶TVは信号がoffの時は一応,省エネで電源をoffにできるのですが,次回,信号がonになっても起動しないんです!!!!
そんなの,パソコンの液晶モニターだったらそれこそWindows95の頃から,無信号時にはoffになり,パソコンをつけると自動的にモニターもonになる機能がついていて,わざわざ液晶モニター自身のスイッチをいじる必要はなかったのに,と思います。
ところが,あろうことか,そのP社の液晶TVはそんな簡単なことすらできないんです。
だから,夕方になって,退社するときにパソコンの電源を切るとか,スリープにすると,自動的に液晶TVもoffになるかスリープモードになって消費電力を減らし,朝,みんなが出勤する頃にパソコンが起動するかスリープから復帰すると自動的に液晶TVがonになって画面を表示させたいのですが,これができません。
まあ,一応は無信号時になるとoffにする機能はありますので,それを使えば,朝,誰かが液晶TVの電源を入れればいいだけの話なんですけど.....。
また,オンタイマーの機能はありますので,それを使おうと思いましたが,今度は肝心の時間情報がないのでこれすらできません。
と言う次第で,結局,どうしても地デジ放送をつながない限り,オンタイマーすら使えません。
どうせHDMIが着いているんだからパソコンから時間情報を取り込めばいいじゃん,と思うんですけどね....。あるいは初期設定画面で時刻を設定できればいいんですけど......。
とはいえ,そもそも無信号状態になったら自動的にoffにする機能くらい,簡単じゃないのか,と思います。
一応,そのP社になんとか時刻設定ができないのか,webから問い合わせしました。
ところが....。
すぐに返事が返ってくるかと思ったら返事が来たのはなんと1週間も経ってからでした.....orz。おそらく,自社の製品に都合が悪いことだから,と放っておかれたのか,それとも上司の許可を待っていたのか,それにしてもお客様からの問い合わせに1週間もかかる,というのはいただけません。また,回答も,時刻の設定画面はないし,地デジに接続しないと時刻設定できない,と言うものでした。
もうおっ~~~~!!!!!!
とうとう頭にきたiruchanは本件,ネットにさらしておくことにしました。もとからこのP社のTVやレコーダは番組表に広告が出て見にくいったらありゃしないってんで頭にきてるんですけど,この対応もいただけません。もうP社の製品は買いません!!
という次第ですが,別件で同じ頃,親に掃除機を買ってあげようと,某H社に掃除機について同じくwebから問い合わせをしたことがありますが,返事は翌日かな,と思っていたらなんと,10分もかからずに届きました。実は,そのとき,P社のとどっちにしようか迷っていたんですけど,もちろん,買ったのはH社です。
さて,とうとう,ここまで来るとPICでリモコンを模擬してTVの近くに置いておき,一定の時間になると電源on/offの信号を出させるしかない,と思いました。ただ,さすがにPICは時間情報はもっていないので,○○:○○にon/offする,というプログラムを作るには時計モジュールからI2Cバス経由で時間情報を取り込む必要がありますが,まあ,そこまでしなくても,という気がするので,単純に12時間ごとにon/offする,と言うプログラムにします。
一応,iruchanはPICが使えるようになったし,TVなどのリモコンは赤外線LEDを決められたコードに基づいて点滅させているだけなので,なんとかPICでできるはず,と思いました。すでに,ネットを見るといろんな方が試しておられますね。
今回はリモコンと言っても,電源スイッチの入切だけなので,電源ボタンを押したときの信号でLEDを点滅させればよいわけです。
一応,今回,いろいろと調べてみました。
TVなど,赤外線LEDを使ったリモコンは国内の電機メーカだと下記の3通りがあるようです。
☆家電協方式‥‥(財)家電製品協会に属する会社が使っているもの。P社,最近台湾系になったS社など。
☆NEC方式‥‥‥N社,H社,もうじきTV部門も売却のT社など
☆ソニー方式‥‥品川に本社があるS社
いずれもコード体系が異なるだけですからPICで作成可能だと思います。ここではP社が採用している家電協方式について説明します。
家電協リモコンのコードは次のようになっています。 クリックすると拡大します。
ややこしいのは,LEDが点滅してコードをTVに伝えますが,単純に1のときだけ点灯し,0のときは点灯しない,と言うようなパターンではありませんし,かつ,点灯しているときは連続点灯しているわけではなく,38kHzで点滅しています。
ビットが0の時にはずっと点灯しない,というパターンじゃないのは理由があり,CDの信号でもそうですけど,こうしちゃうとどこがビットの切れ目かわからなくなっちゃうからです。だから,0の時も1の時も必ずhighになる部分があり,そのあとのlowの時間の長さで0か1かを区別します。
CDの信号も同じで,ずっと0が続くとピックアップの信号がずっと0となるため,サーボ回路が働かなくなってしまうためです。
家電協方式のリモコンの場合はかならず,0.4msのhighとなる部分があり,その後,lowの部分が0.4msだと0,1.2msだと1を表すようになっています。
また,信号の始まりを表すリード部分があり,その後,4バイトのカスタムコードおよび2バイトのデータコードがあり,最後にストップビットがあります。NEC方式だと信号の訂正のため,反転ビットを続けたりしていますが,家電協方式はありません。
カスタムコードは早い話,メーカの識別番号で,各メーカにより異なります。
データコードは電源やch.ボタン,ボリウムボタンなど,各種のボタンごとのコードです。
実際に,リモコンの出力波形をオシロで調べてみました。
信号全体を示しています。先頭の太い部分はリーダーコードです。
やはり38kHzでスイッチングしていることがわかります。
と,ここまで来たらあとはそのカスタムコードと,電源ボタンのデータコードがわかればいい,と言うことになります。
といって,こういうことを一般消費者がメーカに尋ねると今の時代,何の目的に使うのかと根掘り葉掘り聞かれたりして,結構,面倒なことになりそうです。 でも,技術者は必要な情報ですし,メーカごとにマニュアルがあり,サービス会社や販売店などには開示されているはずです。
幸いにも,秋月電子のPICマイコン赤外線リモコン学習キットの取説にP社のコードがでていました。
ということで,P社のTVリモコンの電源ボタンのコードは次の通りです。
40, 04, 01, 00, BC, BD (16進)
最初の4つがカスタムコードで,あとの2つが電源ボタン操作時のコードです。メーカが異なる場合,同じ家電協のリモコンならカスタムコードが違うだけです。
これが2進法だと
0100 0000 0000 0100 0000 0001 0000 0000 1011 1100 1011 1101
となるわけで,これの0と1を上記のパターンで38kHzで変調してLEDを点滅させればOKです。
PICのプログラムは例によってGreat Cow Basicで作りました。
使用したPICはいつもの12F1822です。なんでか,というと12F1822はハードウェアPWMの機能がついていて,便利なんです。今回,38kHzでLEDを点滅させることが必要ですが,ハードウェアPWMの機能がついているとそのPWMの制御コマンドが1行で済んじゃうので簡単です。Great Cow Basicだと,単にHPWMというコマンドを使うだけです。
HPWM ch. freq duty
です。ch. は12F1822のPWM出力チャンネル(1822は1チャンネルのみなので1しかありません),freq は周波数(今回は38kHzなので38),duty はデューティです。Great Cow Basicは8ビットで表すので,最大は255です。
ソースファイルは次のようなものです。
回路は簡単なもので,前回のあんどんみたいに単にタクトスイッチとLEDをつけただけ,という感じです。配線も万能基板です。タクトスイッチを軽く1回押すと信号がでます。3秒以上,長押しするとタイマーが起動し,12時間ごとに信号を出すようにしました。
LEDは赤色のものと赤外線の2つ使っています。
なんでか,というと単に赤外LEDだけにしちゃうと肉眼では見えないので,テストがやりにくいんです。そこで,普通の赤色LEDを使ってモニターします。
もっとも,赤外LEDは目に見えないと言っても,CCDには見えちゃうので,デジカメで見れば薄紫色に見えますので,点灯しているかどうか確認できます。
というのは前から知っていて,それを利用していましたが,スマホの一部では赤外線に反応しないものもあるようで,スマホのカメラだとこのように見えないものがあるのでご注意ください。
なお,さすがにメーカさんも単純な赤外LEDだと見えないので何かと不便,ということで可視領域にも若干,感度を残しておいて,赤く薄く光る赤外LEDというのもあります。こういうのを使うと便利だと思います。
デジカメでは赤外LEDはうすく青 or 紫色に写りますが,肉眼では見えません。
ただ,最初,赤外LEDも,テスト用の赤色LED同様,PICの出力ポートに単純に100Ωの抵抗を介して取り付けたところ,やはり光量が不足なのか,TVの反応はいまいちでした。かなり近づかないとTVが反応しませんし,少しでもLEDを首を振ると反応しません。
実際,LEDに流れる電流を測定してみたら2.5mAでした。最近のLEDは高輝度なので,これくらいの電流でもものすごく明るいんですが,iruchanが使った赤外LEDは中古品だし,古いものなのでどうも光量が足りなかったようです。
それで,その電流制限抵抗を100Ωから33Ωにしたらおかしな現象が.....。
今度は赤色LEDも点灯しなくなってしまいました......orz。
てっきり,抵抗を替えたときにはんだづけをミスったか,といろいろ回路を調べてみますがダメ。
改めて12F1822の規格表を見てみると,出力電流は25mAまで,と言う記載があります。
でも,そこから先は何も書いてないんですが,それ以上の電流を取ろうとするとどうもPICが動作しないようです。ちゃんと保護機能が働くんですね。
しかたないので,1個,Trを使って電流を増幅することとしました。2SC1815のベースをon,offしてそのコレクタ電流で赤外LEDを点灯させることにしました。
これで75mAも流しました。さすがにかなりの大電流ですが,φ5mmのLEDは100mAくらいまでは流せるので大丈夫です。φ3mmのものだと25mAくらいまでですので,ご注意ください。やはり,LEDの電流制限抵抗を10Ωにしたのは小さすぎるようです。100Ωくらいがよいかと思っています。
こうやって結構,うまくいくようになりました。 3mくらい離れていてもP社のTVは無事にon/offできました。これで,12時間ごとに液晶TVをon/offできて省エネになりますね!!
2017年7月4日 追記
やはりタイマー式だと時間が正確ではなく,内部クロックのせいもあるのでしょうか,1日1分くらい早くなっていきます。
それに,PICだとそれこそI2Cバス経由で電波時計モジュールなどと接続するとかしない限り,カレンダー機能なんて無理ですから, 土,日はTVをつけない,なんてことはできません。
と言う次第で,パソコンから制御することにしました。また,当然ながらパソコンから電源も供給したいと思います。
と言って,パソコンでソフトを作ってなにかのポートに赤外LEDをつないでパソコンから直接on,offするなんて考えてみると,実は非常に難しいことなんですよね。
一昔前ならセントロニクス仕様のインターフェースが普通に付属していたので,そのポートをon,offすることができましたが,セントロニクスを使っていたプリンタがUSBになったのはずいぶん昔のことですし,今どき,パソコンでLEDをon,offしようなんて考えると大変です。普通ならデジタルI/Oボードの購入が必要でしょう。
そこで,iruchanはRS-232Cを使うことにします。
えっ!? と思う方も多いと思います。今どき,RS-232Cなんてパソコンにはついていませんよね。
もちろん,USBで接続します。
今回,製作したPIC仕様の基板にUSB⇔RS-232C変換基板を取り付けて,USB経由でRS-232Cを制御します。RS-232Cだといくつかのポートがあり,個別にon,offできます。
実を言うと,世の中,USB接続の機器でも内部構成はRS-232Cになっていて,出入り口の部分にこのようなUSB⇔RS-232C変換器を持っているものが多いのです。こういう機器はソフト側でも普通にRS-232Cのソフトを組んで,それがそのまま動きます。デバイスマネジャで使用するCOMポートを調べて,ソフトでそのポートを使う,という風に設定すれば昔のRS-232Cのソフトがそのまま使えます。
と言う次第で,iruchanは今回,VB.netでごく簡単なソフトを組んで,このPIC基板に接続しました。
ソフトは簡単なもので,RS-232CのRTS(送信要求)ポートを使います。これをon,offしてPICを制御します。
普通はRS-232Cなのですから,TxDやRxDを使うのでしょうけど,これらはデータ(早い話が文字列)の送受信用で,これらは自由に気ままな間隔でon,offしたりすることができないので使えません。
さて,さすがに変換器は必要なので購入します。
一昔前だとMAX232などのICをよく使いましたけど,今回はFT232Rを使います。最近はよく使われるようです。
これらはRS-232Cの信号レベルが通常のパソコンやマイコンで使う,TTLレベルじゃないので,それを変換するためのものです。RS-232Cは "0" が9Vで, "1" が-9Vとなっています。±15Vくらいになっている場合も多いです。
TTLだと "0" が0Vで, "1" が5Vですよね。
ただ,これだとどこかで線が切れていてずっと "0" になっていても,故障で "0" になっているのか,本当に "0" が続いているのか,わかりませんよね。そこで,RS-232Cは0でも1でも絶対値が0Vじゃないようになっていて,極性も反転します。電圧も大きいのでノイズに強く,電話線で信号をやりとりするのに便利で,今もファクスなんかでも使われています。
VB.netではserialport.RTSenableというメソッドがあるので,それをtrueにするかfalseにするかでRTSを "0" か "1" にできます。これで,PIC基板のタクトスイッチをon,offするようにしました。
単に,タクトスイッチの接点にTrを挿入しただけです。
最初,Trを使ったスイッチということなので,NPNのTrを使ったのですが,RS-232CのRTSポートはパソコンの電源を入れた状態ではRTSポートの電位は-9Vくらいになっていました。当然,USB⇔RS-232C変換基板のRTS出力は常時,5Vとなっていて,これじゃ,PIC基板を接続したときにはTVのon/off信号が出っぱなしで,TVがonしたりoffしたりするので,論理を逆にするためPNP Trを使っています。
この赤い基板,Amazonで売られているものです。中国のHiLetgoというブランドの FTDI FT232RLというもので,たったの230円ほどのものです。秋葉原のお店などで,別の同じ機能のものが1,000円くらいで売られていますが,これで十分でした。おまけに5Vと3.3Vのピンもついていて,入力のUSBの論理によらず,PCにつないだだけでPICなどに電源を供給できるのも便利です。Arduinoとの通信用としてもよく使用されているようです。
これで指定した時刻にTVをon/offできるようになりました。もちろん,土,日はTVをonしない,なんて簡単にできます。
といって,ハッピーマンデーのおかげで祝日はどうにもなりません。Microsoftも日本の祝日を返す関数なんて用意してくれてませんしね。結局,手動で祝日を記録したファイルを作っておいて,それを読み込むくらいしか手はありません。まあ,いろいろと手は考えられるんでしょうけどね。それにしてもハッピーマンデーなんて早くやめて!! って思うのはiruchanだけでしょうか。
今回,iruchanもVB.netを使いはじめなんですけど,驚いたことがあります。
なんと,デバッグをしたいのに,ブレークポイントが機能せず,通過しちゃうんです!!!!!
それこそ,最初は "はぁ?" って感じで,これには驚いちゃいました。なんでこんなことになるの?
ようやく原因がわかりました。モードがDebugになっていないとブレークポイントを無視しちゃうし,そもそもデフォルトがReleaseになっているからなんですね。ちょっと頭にきちゃいました。
キャンドルICの使い方~PIC編~ [電子工作]
2017年4月8日の日記
6年前,キャンドルICを使ってあんどんを作りました。当時はタイマIC555を使って数分後に切れる,と言う風にしました。
そろそろうちの子(11歳♂)も1人で寝るようになり,親としてはひと安心ですけど,やはり夜寝られない,というので,またそのあんどんを持ち出してきて,夜寝るときに点けておくように,と言おうと思いました。
ところが,久しぶりに取り出してみると故障中。なぜかLEDが点灯しません。ありゃ。
面倒だな~,と思っていたんですが,PICでタイマを構成して作り直そう,と思いつきました。PICだと何より回路が簡単,と言うこともありますが,きわめて消費電力が小さいので,LEDを点灯するくらいなら半年くらいは電池を交換しなくても済みそうです。
ということで,PIC式に作り替えることにしました。
単にタクトスイッチとLED,キャンドルICをつけただけの簡単なものです。555を使うと,やはり回路は面倒です。パスコンの10μFと0.1μFはなくてもOKです。
タクトスイッチを押すと,#6ピンをプルダウンします。PICは普通,弱いプルアップというんですが,基本的にプルアップされているので,最初,33kΩは入れなかったのですが,これはダメらしく,電池をつないだとたん,LEDが点灯してしまいました。テスターで電圧を測って原因がわかりました。#6ピンは0.6Vくらいで,これじゃプルアップされていません。最初からスタートする状態ですね。しかたないので33kΩを入れて明示的にプルアップしたら無事に動作しました。
使ったLEDは秋月で売っている,φ5mmの電球色のものです。台湾OptoSupply社のもので,OSM54K5111Aといいます。If=20mAで35cdという明るいものです。
前回同様,常時点灯するLEDと,キャンドルICを使ってLEDがろうそくみたいにチラチラと点滅するものの2個を使いました。こちらの方が実感的だと思います。
PICは12F629を使います。定番のPICですね!
ソフトは簡単なもので,コメント行はありますが,実質8行です。これをhexファイルにコンパイルして12F629に書き込めば完了です。タクトスイッチで#6ピンをプルダウン(low)にすると,GPIOポートの4番(#3ピン)がonして3Vを出力します。これでLEDをドライブするだけです。
15分たったら自動的にそのポートをoffにするようにしました。
いつもどおり,PIC用のフリーのGreat Cow BASICを使いました。 ソフトは▼です。これを全部コピーしてメモ帳に貼りつけ,それを.hexという拡張子で保存して書き込めばOKです。
さて,これを愚息にあげたら結構,喜びました。夜,寝る前にスイッチを押して,あんどんを点灯させ,それで寝ているようです。"寝られない" とか言っていましたけど,割にこれをあげたらよく眠れるようです。
とはいえ,昔から,意外に,寝る,と言うことに関しては手のかからない子でした。赤ん坊の頃,夜泣きをしたことはほとんどなく,朝まで寝ているし,風呂上がりにとりあえず,おむつをはかせて掛け布団の上に寝かせておき,3歳上の姉ちゃんにパジャマを着せ,さて,次は坊主,と思って振り向いたらもうすやすやと寝ている,というような赤ん坊でした。
なんで子供らだけで寝てんだ~!!
でも,大好きな "アナと雪の女王" (まだはまってます)の冒頭のエルサとアナの幼い姉妹が,彼らだけで寝ているシーンはかわいいけど,ちょっと違和感ありますね~。まあ,ディズニーだから,アメリカの価値観で描いているんでしょうけどね。
アメリカじゃ,子供が2歳くらいになると泣こうがわめこうが,何しようがテディベアでも与えておいて,子供部屋に閉じ込めて強制的に寝させる,なんてことは普通ですね。子供が寝たら大人の時間,というわけです。まあ,彼らにしてみれば,子供の自立心を養うため,なんて言うんですが,それはやはり親の勝手じゃない,と思います。
アナ雪はノルウェー? あたりの北欧が舞台なので,欧州の王侯貴族がこのような子育てをしていたのか,というのもよくわからないのですけど,少なくとも,皇后が一緒に寝られなくても乳母か,信頼する侍従が一緒に寝ていたでしょう。この点でも,なにか違うような気がします。
さる高名な教育学者の先生が,米国で青少年の犯罪が多いのは子供の頃,一人で寝かせるのが原因とラジオで話しておられましたけど,同感です。やはり子供は日本人みたいに川の字になって寝るのがよいと思います。
まあ,とは言っても,そろそろ思春期だし,うちの坊主も一人で寝ないといけないので,自立したのが少し寂しい,オヤジではありますけど.....。
もとの基板を調べていて,気がつきました。なんと,電池のホルダの端子部分が折れて外れています。これじゃ,点灯せんわけだな~。簡単な故障でした......orz。
スナップ端子を交換して無事に修理完了。また何かで使うことにします。
LED調光器のパワーアップ [電子工作]
2017年1月2日の日記
皆様,どうも明けましておめでとうございます。本年もどうぞよろしくお願いします。
さて,今日は正月休みなので少し工作をします。
実は,以前,LED照明を購入して自作の調光器でワークベンチで使っています。とてもサイズがコンパクトで,磁石でくっつくし,明るいし,何より電球色というのも気に入って愛用しています。
使っているのはAmazonで購入したイルミカ東京さんが発売している,TK-12-600WWという照明で,全長600mmのものです。本来はショーウィンドウなど,店舗内の照明に使われるものですが,非常にスリムでコンパクトなのでワークベンチで使っています。
ただ,もちろん,パソコン作業や読書には十分すぎる明るさなんですが,すでに老眼が進んでいるiruchanがアンプを作ったりすると少し手元が暗く,もう少し明るくしたい,と思っていました。
これは連結して使えるようになっていて,どんどんつないで長~く使えるようになっているので,もう1つ接続したら明るくなるはずです。
ところが,困ったことに前回製作した調光器が意外に発熱して,このまま2つ連結すると結構厳しそう,という感じです。
これは,前回の回路にあるとおり,原因はスイッチング用の制御素子にバイポーラTrを使っているためです。
残念ながら,このような電力制御に今,バイポーラTrを使うことはほとんどないと思います。鉄道模型のコントローラもMOS-FETを使うのが普通でしょう。
理由は簡単。断然MOS-FETの方が性能がよいし,値段も安いからです。
MOS-FETの方がスイッチング速度は10~100倍くらい速いし,また,損失の点でもバイポーラTrの1/10~1/100くらいと非常に小さいので,バイポーラを使う理由なんてありません。おまけにMOS-FETは電圧制御なので,Trよりドライブ回路が簡単です。そのほか,温度補償の点や2次破壊がないなど,メリットは多いです。昔だと,MOS-FETが高かったのでバイポーラを使う理由になりましたけど,今じゃ,MOS-FETの方が安いくらいで,あえてMOS-FETを使わない理由なんてないと思います。
iruchanはそれこそ中学の頃からはんだごて握っていますけど,その頃はまだMOS-FETが出たばかりで,非常に高くてとても中学生の小遣いじゃ買えなかったし,その上,静電気で壊れやすいとか,発振しやすいとか,いろいろあって素人には使いにくく,その辺が今でも気になって敬遠しちゃいます。
アンプに使っても,どうしてもMOS-FETは眠い音がするし,今でもあまり好きじゃありません。それに,何よりiruchanは何でも古いものが好きなので......。 やっぱ,電車といえば475系,機関車はEF81だし,アンプはもちろん,真空管。それも45や2A3のようなのが好きなので。半導体だとTO-3型の2SA627/D188とか,V-FETの2SJ18/K60がお気に入りですね!!!!
と言う次第で,いつも半導体や鉄道模型のコントローラを作るときはバイポーラTrを愛用しています。
ただ,今回は発熱を減らすのが目的なので,もはやバイポーラTrの出番じゃありません。
バイポーラTrはエミッタ~コレクタ間飽和電圧VCEsatが0.2~1.5V程度あります。アンプの設計だと1Vで計算したりします。このVCEsat×コレクタ電流が損失になるわけですし,今回のように1Aくらい流れる回路だと1W以上,熱が発生します。厄介なことに,VCEsatはコレクタ電流が増えるほど大きくなるので,損失がどんどん増えちゃいます。
また,PWM式コントローラを使うと,方形波のパルスを出力して理想的には損失は0なのですが,スイッチング速度が遅い,と言うことは,その立ち上がり,立ち下がりに時間がかかるので,その間,損失が出ます。
この点,MOS-FETだとスイッチング速度がきわめて高速なのでスイッチング損失は小さいし,また,飽和状態だとオン抵抗×ドレイン電流2 が損失になりますけど,オン抵抗は普通,mΩ単位なので非常に小さいです。
ちょっとシミュレーションして確かめてみませう。負荷電流は0.5Aとなるようにしました。スイッチング周波数は約20kHz,デューティ50%でシミュレーションしてみます。
バイポーラTrのシミュレーション回路
MOS-FETのシミュレーション回路
結果はこうなりました。
やはり損失はMOS-FETはバイポーラTrの約1/16です。ヒゲのように立ち上がりと立ち下がりで損失が出るのはどちらもスイッチング速度のせいです。Spiceは平均損失も簡単に表示してくれますが,バイポーラTrだと484mWになっていますけど,これはデューティがほぼ50%だからで,もし,100%だと平均損失で約1Wと言うことになっちゃいます。なんでこうか,というと,やはりVCEsatのせいで,素子がONのときにもバイポーラだとこうやって損失が発生しちゃいます。一方,MOS-FETだとこの間の損失がほぼ0です。2SK442だと少し,出てますけどね。もっと最新のMOS-FETだと無視できるくらい小さくなります。 やはり問題はPWMのON状態のときです。
と言う次第で,今回,出力の素子をMOS-FETに変更しました。
なお,素子は手元にたくさんある,東芝の2SK442を考えたのですが,やはり最新の同じ東芝製TK34E10N1を使いました。なんか,もう2SK○○○というJIS型番じゃないのに驚いちゃいますけどね。 とうとうディスクリート半導体なんて儲からなくなって,EIAJに登録するのも面倒くさくなっちゃったんでしょうか。おまけに,最近のTO-220パッケージはフルモールドといってコレクタやドレインが金属で露出してないものが多いんですけど,これは昔ながらのやつ。これだと絶縁のマイカやデンカシートが必要ですが,これがあると取付がめんどくさいため,自動車屋さんからクレームがついて最近はフルモールドばかりになったんじゃなかったでしょうか......。
VDS(V) ID(A) PD(W) VDSon(V) オン抵抗(mΩ)
2SK442 70 10 30 1.4 記載なし
TK34E10N1 100 75 103 0.2 7.9
2SK442は1980年代の製造だと思いますけど,それに比べると,なんか,あまりに技術が進歩しているのに驚いちゃいますね。同じTO-220なのに,TK34E10N1はドレイン損失が100Wを超えています。昔だったらTO-3型のパッケージになるんですけどね。
おまけにドレイン~ソース間飽和電圧が非常に小さく,わずか0.2Vです。ここに2SK442を使うとバイポーラ並みかそれ以上の損失を発生しちゃいます。
と言う次第で,やはり最新のTK34E10N1を使います。値段もせいぜい100円程度で,非常に安いです。
出力のTK34E10N1のソースに入っている0.47Ωは保護抵抗です。これを入れない人が多いですが,これを入れておくと過電流の時にTK34E10N1がカットオフするようになっていますので,入れておく方がよいと思います。
12Vの出力なので逆転SWをつければもちろん,鉄道模型のPWM式コントローラとしても使えます.......(^^;)。
さて,実際に組み上がったら点灯してみます。
やっぱ,非常に明るい~~!!
それと,驚いたのは発熱。ほとんど発熱しません。一応,TO-220用の小型放熱器をつけてあるんですけど,ダブルで照明を点灯させてもほとんど熱くなりません。よく使われるTO-220型用の放熱器の熱抵抗は大体,20℃/Wなので,使えるのは2Wくらいまででしょう。前回の回路だと,照明1本でも結構熱くなりました。 これだと安心です。
と言う次第で,ワークベンチも明るくなったので,また真空管アンプでも組み立てることにしませう。
調光器もネオジム磁石で棚にくっつくようにしてあります。
2020年5月30日追記
電源を交換しました。
使っていたのは12V,1.3Aの基板タイプのスイッチング電源でしたが,かなり発熱します。▲のスイッチング用のMOS-FETが発熱するならしかたないのですが.....。
電源自体が発熱し,夏は結構,ケースが熱くなります。
今まで,鉄道模型のコントローラ用の電源としても愛用していましたが,そのときも結構ケースが熱くなりました。
そこで,前回,ファンレスPCの電源用に使用した,COSELのTUHS25F12と交換することにしました。定格も12V,2.1Aとパワーアップしていますし,何よりびっくりするほど小型です。
これまで使っていた電源自体はもう製造中止になったようですが,発売は1985年のようなので,かなり古いです。TUHSシリーズは2014年の発売なので,30年ほどでこれほど進歩したわけです。
2023年12月1日追記
どうもCOSELのスイッチング電源は突入電流が大きい,と思っていましたけど,やはりとうとうスイッチが逝っちゃいました。
どうも最近,電源on時にバチバチ言うな,と思っていたらとうとう点灯しなくなりました......
しかたないので,スイッチを交換中です。