So-net無料ブログ作成
検索選択

コアレスモータ対応鉄道模型用コントローラの開発~その10・PFM&PWM式~ [模型]

2017年6月4日の日記

PFM&PWM controller+D51.jpg 今日はPICで作ります。

前回まで,PFM式のコントローラを作って調整しました。今まではタイマIC555を使ったハードウェア方式でしたが,今日はPICを使ったソフトウェア方式で作ります。

PFM式は非常に性能がよく,鉄道模型に適していると思います。正直言って,作った本人が自分の作ったものにこんなこと言うのは慎むべきだと思うんですが,今までのコントローラとは次元が違う,という感じがします。

もちろん,今まで,iruchanはPWM式をずっと作ってきたわけですが,それは従来のレオスタット式やトランジスタコントローラ式の連続制御タイプのものにくらべてPWM式がスムーズに起動して,鉄道模型に適していると思っていたからですが,PFM式はそれこそ,PWM式に比べてもさらによく,次元が違うレベルという感じがします。

具体的に言えば,新幹線TGVというくらい違います

                                                               もちろん,TGVの方が優れています....(^^;)

ご乗車になった方はおわかりいただけると思いますが,TGVの方がはるかに車内は静かですし,乗心地は新幹線なんて比べものにならないくらい揺れずにスムーズに走っています。iruchanも初めて乗ったとき,"次元が違うな~" と思いました。新幹線なんて,車内の騒音はひどいし,通路を歩くのも大変なくらいですからね.....。

まあ,ある意味,車内の騒音レベルは高い方が酔っ払いやおばはんのグループが大声で騒いだりしていても気にならないのでいいのかもしれませんが........。TGVだとおばはんがうるさくてたまらんだろうな。いや,向こうのおばはんはレディーだから,騒ぐようなことはないかぁ~。車内で酒飲んで騒いだり,大声で世間話をして盛り上がったりなんて,やはり日本はレベル低いな~,と思います......[雨][雨][雨]

と言う次第で,ちょっとPFM式コントローラの特性について調べてみたいと思います。

今まで,コアレスモータ用には高速PWM式を開発してきました。実際,DCモータの教科書なんかにはPWM式のことは詳しく書いてありますし,普通,ブラシ付DCモータはPWMで制御する,というのが常識でしょう。

とはいえ,従来の教科書は自動車や産業用の機械など,ある程度高速で回転し,ギヤで減速するようなモータについて書かれていると思います。

確かに,そのような場合はモータは高速回転していますので,PWMで制御する場合のデューティも80%とか,高いものでしょう。

でも,鉄道模型は考えてみると,ごく低速で起動させ,通常運転時も低めのデューティで運転することが多いと思います。その場合はPWMでは適していないのではないか,と考えています。

もし,産業用の機械なんかで,DCモータを数%のデューティで常時回転させる,なんて設計をしたら上司に叱られるでしょうね。ところが,鉄道模型はこのあたりのデューティの制御が重要なんです。

従来のPWM式はスイッチング周波数を20kHz以上とした場合,出力の素子のスイッチング速度が遅く,低デューティのパルスが出てこなくなり,突然,5%以上のデューティのパルスが出てくる,という特徴があります。そこで,出力素子のドライブ段を挿入して,出力段の高速化を図って1%以下の低デューティのパルスが出るようにしたのを開発してきました。

と言って,やってみるとここまで来るのに結構苦労しました。なかなかPWMだと1%程度のパルスを作るのにも苦労しちゃいます。

ところが,PFM式はパルスの幅は一定で,パルスがoffとなっている期間を調整してデューティをコントロールするので,低いデューティのパルスなんていくらでも作れちゃいます。

と言う次第で,PFM式は非常にコアレスモータを使った模型でも低速から起動するので,起動がスムーズであることがわかります。

でも,それだけじゃなく,前照灯や室内灯などのLEDが点灯してから,モータが回転して模型が走り始めるまでの間に非常の余裕がありますし,起動してから最高速に達するのも非常にスムーズです。

まずはPWM式のデューティについて再度,考えてみます。

simulation 20kHz.jpg従来のPWM式の場合(Spiceシミュレーション)

第4回に載せましたが,iruchanが昔作った従来のPWM式の場合,スイッチング周波数を20kHz以上にすると,低いデューティのパルスが出てこなくなり,▲のグラフの ━ 線のように0%からスムーズにデューティが立ち上がらず,突然,10%くらいからパルスが出力されます。

これでも,従来のコアつきモータの模型の場合は起動時のデューティが30%以上なので問題はなかったのですが,コアレス機は数%のデューティで起動してしまうので,このようなコントローラだとラピッドスタートになっちゃいます。

本当は原点から直線的にデューティが100%に変化していかないといけないのですけどね.....。

もちろん,直接原点からだとちょっとつまみを回しただけで模型が動き出しちゃうので,少し,"遊び" の部分を作ってやりますけど。

今回開発した,高速タイプのPWM式コントローラだと最低デューティは1%以下なので十分,コアレスモータに対応できます。

では,PFM式の場合はどうでしょうか。PFMだとこうなります。

PFM controller 周波数・duty1.jpgPFM式の場合

ちょっと,横軸が変で,さっきの図と左右が逆になってしまい,申し訳ありません。実は,Excel2013で横軸を左右反転することができるのですが,そうするとどうしてもグラフの線が ━ 線しか反転せず,  は反転しませんでしたのであきらめました。Excelのバグじゃないでしょうか?

ただ,今回製作したPFM式はこの図の通り,速度調整のボリウムは抵抗値が大きい方が低速となりますので,普通のPWM式とは逆です。ちなみに,KATOのKC-1も同じですけど。

でも,このグラフを見て納得。PFM式だとデューティの変化がきわめてゆっくりです。

ただ,これだと,最高速あたりで急に加速し,まずいんじゃない? と思われる方もいらっしゃると思いますが,実際,運転してみて,そんな風には感じませんし,むしろ非常にスムーズに加速する,という印象を受けます。実際の電車は速度が上がるほど,加速度は下がってくるので,逆な感じがするんですけどね.....。

おまけに,よくこのグラフを見ていただきたいのですが,横軸は対数軸になっています。

横軸が対数軸でこんなにカーブが緩やか,ということは,もし,横軸が直線だったらもっと緩慢な曲線になるわけです。

PFM controller 周波数・duty2.jpgPFM式の場合(X軸はリニア)

これじゃ,デューティ100%のあたりがよくわからないので,ひとつ上のグラフでは対数軸にしました。

よく,PWM式のコントローラを作る際に,調整用のボリウムをBカーブじゃなく,Aカーブで作る方がいらっしゃいますが,このような効果を狙ったものでしょう。

ボリウムは何種類もありますが,大きく分けてAカーブとBカーブの2種類があります。

Aカーブは対数曲線になっていて,小さな抵抗値の間は緩慢で,大きくなるほど急激に変化するようになっています。

これは,本来は音量調整に使うもので,人間の耳の特性に合わせてこんなカーブになっています。ですから,アンプやラジオなどの音量調整にはAカーブのものを使います。ここにBカーブのものを使うと小さな音量のところが調整がやりにくくなっちゃいます。

もっとも,普通の電圧調整用なら直線の方がやりやすいので,直線状に変化するものがBカーブです。

ほかに,Cカーブやバランス調整に用いるM-Nカーブというものもありますが,今では入手が困難です。

そこで,鉄道模型は低速が重要だからと,Aカーブのボリウムを使いたいのですが,PWM式だと先述の理由の通り,低いデューティのパルスは出てこないので,あまり意味がありません。と言う次第で,iruchanは今まで,鉄道模型のコントローラはいつもBカーブを使っています。

ところが,PFM式はAカーブのように変化します。

ただ,実を言うと,Aカーブだと対数軸の場合は直線になるはずなので,PFM式はAカーブ以上に緩慢に変化する,と言うわけです。

これならスムーズに速度が変化しますね[晴れ]

また,最大抵抗値(速度で言うと,一番低速の位置)を見ていただくと0になっていません。

PFM式は絶対にデューティが0%にはなりません。

だから,速度調整のつまみを一番左に回した状態でも必ずパルスが出ていて,前照灯&室内灯が点灯します。

これもPFM式の特長です。

ある意味,停車中にもずっと前照灯が点いちゃうわけなので,どうしても消したい場合はコントローラをoffするしかないのは問題なんですけどね.....。

でも,そういう場合は単にスイッチを1個,追加するだけでOKですので,問題ないと思います。

次に,周波数についてみてみると,右側の第2主軸に周波数が表示されます。

残念ながら,今まで書いてきましたとおり,周波数はPWM式の場合は一定ですが,PFM式は大きく変化します。

20kHzからスタートすると,最終的には2MHzくらいになっちゃいます。

もっとも,高周波になると自然に波形が崩れてきて,iruchanが作ったものは160kHzくらいでデューティが100%となるので,問題ないと思います。

といって,高性能なPFM式を設計するとマジで1MHzくらいの周波数となりそうです。

こうなると模型に問題はないのか,と心配になりますし,また,レールがアンテナになってAMラジオに雑音が出そうです。

と言うことで,低速はPFM,高速はPWMとしたいのですが,そういうコントローラは作れないのでしょうか。

事実,スイッチング電源にはこういう設計をするものが増えてきていて,スイッチング電源用のICもPFM&PWM両対応のものが出てきています。

MaximやLinear Technology,Texas Instrumentsからも出ていて,こういうICは使えないかとiruchanはさんざん規格表をにらんで調べてみたのですが,鉄道模型など,モータ制御用に使えるものはなさそうです。それに,これらのICはいずれも表面実装のICになっちゃっているので,たとえ使えたとしても,はんだづけするのにも苦労しそうです。

そんなわけで,あっさり,PICを使うことにしました。

PICだったらA/D変換してボリウムの位置を調べ,その電圧をもとに,低速はPFM,高速はPWMと切り替えができそうです。

と言う次第で,いきなり回路です。クリックすると拡大します。

PFM&PWMコントローラ(PIC)1.jpgPFM&PWMコントローラ回路図

ちょっと複雑に見えますが,いくつもあるLEDはインジケータ用なのでなくても構いません。MOS-FETはNECの2SK2412を使いましたが,これはMOS-FETの割にCissが小さく,ゲートしきい値電圧も低いので使いやすいFETです。

今回の研究成果である,2SA10202SC2655によるプッシュプルドライバ回路を挿入していますので,他社のMOS-FETでもOKです。

もっとも,今回,PFMモードのパルスは1μsと従来の0.5μsより倍広いので,ドライブ回路は不要かもしれません。パルス幅は3μsくらいまでなら許容範囲です。

PWM式コントローラ(PIC・最簡略版)1.jpg最簡略版

もっと,回路を簡単にしたい,と言う方は第4回に載せた▲の回路でもOKだと思います。なお,MOS-FETのゲートに入れる抵抗はできるだけ小さい方がよく,10Ωくらいにした方がよいと思います。最悪,直結でもよいとは思うのですけど.....。寄生発振などの問題もあるのでおすすめしませんが。

PFM⇔PWMの切り替えはとりあえず,デューティ5%としました。その場合,デューティや周波数の変化は次の通りとなります。

PFM&PWM controller 周波数・duty.jpgデューティ,スイッチング周波数の変化

こんな風に,ボリウムが低い位置ではデューティの変化は緩慢で,PWMモードに切り替わると直線的に上昇します。一方,スイッチング周波数は最高50kHzで頭打ちとなります。まあ,PFM⇔PWM切り替え点は10%の方がよいかとも思っているのですが....。実験して決めたいと思います。

ソフトは大苦心。やはり,大変でした。

簡単にすぐ作っちゃったのですが,うまく動作するまで,昨日から2日かかりました.....orz。

最初の問題はやはりPFM。そもそも使用したPIC 12F1822をはじめとして,PICにはハードウェアPWMの機能を持つものがあっても,ハードウェアPFMの機能を持ったものはありません。

しかたないので,最初はデジタル出力ポート(PORTA)を計算したデューティと周波数で指定した時間だけon,offするソフトにしましたが,うまく動きません。どうしても出力パルスは5μsくらいです。

そんなはずはないんだけどな......と思ってみましたが,よく考えてみりゃ,最高,50kHzでスイッチングするのに,1波ごとに計算してたんじゃ,間に合うわけがありません。

そこで,変ですけど,ハードウェアPWMをPFMのルーチンでも使うことにし,一定の時間ごとにサンプリングした基準電圧ごとに同じくデューティと周波数を求め,それでハードウェアPWM(CCPポート)を使うことにしました。

これでようやくPFM波が出力されるようになりました。

ところが,どうしてもPFMモードのときに,最初と途中で2回,出力がoffになる期間があります。

そんなはずはこれもないはず。ソフトもバグはありません。

結局,これもCPUのクロックの問題でした。やはり応答速度なんですね。最初は12F1822は16MHzで動かしていましたが,最高の32MHzで動かしたら解決しました。

これで,ようやくPFMモードは解決したと思ったんですが,今度は次のPWMのモードが変。どうしても最高デューティが75%くらいになっちゃってて,100%になりません。

最初は出力段の応答速度かと思ったのですが,そうではなく,マジで12F1822が75%くらいのデューティのパルスしか出力してません。

何じゃ,こりゃ[雨]

半日かかっちゃいましたが,結局,原因はデューティを計算するところが問題。

PICはしょせん,8bitのCPUなので,変数は浮動小数点は扱えないので,デューティの計算などは全部整数でやらないといけませんが,そのため,うっかりかけ算の一部の項で計算中に0.1とか,1未満の数字になると結果が有無を言わせず,0になっちゃったりするので気をつけないといけませんが,今回はオーバーフローしちゃってました。そのせいで,デューティがエラーになっていたようです。使用している,Great Cow Basicはintegerは-32767~32767の間なんですが,うっかり,計算中にこの範囲を超えてしまっていました。結局,duty,freqなどの変数をLONG型に変更してOK。やれやれ[晴れ]

PFM&PWM controller基板1.jpg 基板が完成しました。

今回,基板上に4個もLEDを載せちゃいました。iruchanは光ものが大好きなので......(^^;)。

ピンクのLEDはパイロットで,単に電源が入っているかどうかのチェック用です。5V用にレギュレータ78L05を入れているので,それのモニタです。

ほかに,PFM,PWMのモードを示すためのLED(緑,青)を入れました。こんなの入れておくとモードの切り替えがわかって楽しいですね。また,出力のモニタ用に電球色LEDをつけました。これはないと不便です。

PFM&PWM controller基板2.jpg PFMモードの時

PFMモードの時は緑色のLEDが点灯します。最大デューティは5%なので,出力のモニタ用の電球色LEDもボ~ッと点灯しているだけ,というのはおわかりいただけると思います。

PFM&PWM controller基板3.jpg PWMモードの時

PWMモードに切り替わると青色のLEDが点灯し,デューティは直線的に変化し,最後に100%となります。出力の電球色LEDも明るく点灯します。

ただ,今回は失敗で,PFMモード指示用に使った緑色のLEDは暗すぎるし,逆に,最近お気に入りのアイスブルーのLEDは逆に明るすぎでした。

どちらも秋月で買ったものですけど,よく輝度を調べて買わないと明るさがまるで違うのでご注意ください。▲の回路図でも,緑色のLEDの電流制限抵抗が100Ωなのに対し,アイスブルーの方は22kΩにもなっています。これくらいでようやく明るさがほぼ同じくらいとなりました。しかたないので,後日,オレンジ色の超高輝度タイプのものに変更しました。今どきこんな暗いLEDはさすがに必要ないと思います。▲の回路図は変更後のものです。

オシロの写真を示します。

PFM&PWM controller min duty.jpg 最低デューティです。

今回,パルス幅は1μsでソフトを組みました。それより低いデューティのパルスを出力しています。ただ,いくらPICがこのように狭いパルス幅のパルスを出力しても,出力段のMOS-FETの入力容量の問題をクリアしないとこのように狭いパルスが出力できませんのでご注意ください。やはりドライバ段は必要だと思います。

PFM&PWM controller D51起動duty.jpg KATOの新D51起動時です。

このように,ボリウムを回していくとPFMモードなので,パルス幅は変わらず,パルスの数が増えていきます。

驚いたことに,KATOのコアレスモータを搭載した新D51はこのように低いデューティで起動します。最近のED70だとコアつきモータなので,やはり30%くらいで起動し,PWMモードに入ってからになります。

PFM&PWM controller D51 PWM duty.jpg PWMモードです。

デューティが5%を超えると,今度はパルスの数は変わらず,幅が広くなっていきます。

PFM&PWM controller 最大 duty.jpg 最後です。

最終的にデューティが100%となって最高速度になります。

なお,試運転してみた結果はやはりコアレスモータだと5%程度のデューティで起動してしまいます。できれば,コアレス機はPFMモードで起動した方がスムーズですので,もう少し,PFM⇔PWMモード切替デューティは高い方がよいと思います。

PFM&PWM controller基板.jpg プリント基板図

サイズは55×29mmです。

PFM&PWM controller基板(部品配置).jpg 部品配置(部品面から)

と言う次第で,なんとか,PFM&PWMモード混合タイプのコントローラを製作できました。もうしばらくソフトを組み替えてテストしてみます。ソフトについては,修正後,upしたいと思います。もうしばらくお待ちください。


2017年6月10日追記

ソフトの最終版を載せました。つづきをご覧ください。

nice!(5)  コメント(4) 

KATO ED70入線 [模型]

2017年5月21日の日記

kato ED70-2.jpg KATOのED70です[晴れ][晴れ]

まさか,こんな日が来るとは思ってもみませんでした。

昨年の秋,KATOのホームページにED70の生産予告が出ていました。

北陸在住のiruchanはとてもED70が好きなので,以前,マイクロエースのものを買っていますけど,まさか,そのときにはKATOから将来,出るとは思いもしませんでした。とてもマイナーな機関車ですしね。北陸でしか走っていませんでしたし,わずかに19両製造されただけですから。

北陸本線の田村~敦賀間の電化完成は1957年10月1日ですが,先に田村~木ノ本間が完成し,そこで訓練運転する目的があったため,実車はひと足早く,1957年6月に試運転を開始することとなっていました。設計開始は前年の5月で,1年という期間しかなく,かなりの機器は仙山線で実験していた,ED45 1の機器と共通です。設計期間も短かったし,信頼性の低い水銀整流器を使っていたので,実際の運用は苦労があったと思いますが,交流機関車のパイオニアとして,大変貴重な機関車だと思います。

さて,KATOのED70が発売されたのは今年2月23日です。同時に買う予定だったトラ90000が発売延期で,送ってきたのは先月末です。

本当に待ち遠しい機関車でした。KATOらしく,非常に精密にしっかりとした出来ですし,動力の性能も素晴らしいです。

今日は,さっそく整備します。

まずはいつもどおり,スナバ回路の装備です。

PWM式などのパルス式コントローラを使って,機関車が停車していても前照灯を点灯させた状態で停車する,いわゆる常点灯に対応させるための工事で,iruchanが考案したスナバ回路を装着して反対側の前照灯が点灯しないようにします。

別にスナバ回路がなくても常点灯には対応するのですが,これがないと反対側の前照灯が点灯しちゃいます。

と言う次第で,とりあえずボディをばらします。

kato ED70内部.jpg ボディ内部です。

乗務員室あたりの窓ガラス部品にツメがありますので,これをうまく外してボディを外します。

kato ED70 基板.jpg スナバ回路の挿入状態です。

左側のLEDのすぐ右にコンデンサがありますので,これを撤去します。こうするだけで常点灯に対応しますが,これだけだと右側のLEDも点灯しちゃうので,スナバ回路を挿入します。

表面実装の部品なので非常にはんだづけがやりにくいですが,フラックスを塗ってはんだづけするとうまくいきます。むしろ,フラックスを塗るので,普通の電子工作で使う,ヤニ入りハンダじゃないほうがうまくいくかもしれません。

コンデンサや抵抗は最近は非常に小さくなり,▲のように途中を電線で結ばないといけません。絶縁した方がよいので,ロジックICの配線などに用いられるラッピングワイヤを使っています。

kato ED70&PFM.jpg 最新鋭のPFMコントローラでテスト中。

最近,試作したばかりのPFM式コントローラを使ってテスト中です。これは非常に高性能で,きわめてゆっくり起動しますし,▲の写真のようにつまみを一番左に回して絞った状態で常点灯という状態になります。通常のPWM式だと,前照灯は点灯するけど,機関車は動かない,という微妙な位置につまみを止めておく必要がありますが,PFM式は非常に常点灯の範囲が広く,単にボリウムを一番絞っておくだけで常点灯にできます!!

右側の前照灯が点灯しないのはスナバ回路のせいです。これがないと右側も点灯しちゃいます。

kato ED70 特高圧配線オリジナル.jpg オリジナルの状態

knuckle coupler.jpg ナックルカプラーへの交換

KATOのナックルカプラーに交換するのは非常に面倒で,なかなか排障器が外れないし,外れたと思ったら金属の板バネがどっか行っちゃったりして大変ですが,このようにボディを外しちゃったらついでにカプラーセットごと外してからやると簡単です。

ナンバーはマイクロエースのが2号と14号なので,7号機にしました。

さて,ここまで来たら試運転,と行きたいのですが......。

どうしても気になるところがあるんです。

特高圧配線の一部が金属線じゃなく,プラの一体成形ものになっています。

kato ED70 特高圧配線オリジナル1.jpg オリジナルの状況

    空気遮断器(ABB)と特高圧引込み碍子周辺がプラです。

以前,KATOのEF81でこうなっていて,どうしても気になって金属線に交換していますが,今回も交換しました。最近のEF70では全部,金属線になっていましたので残念ですがコストの問題もあるのでしょう。

まずは寸法を調べておきます。といって,ノギスでいきなり調べてもうまくいかないので,スキャナで部品を読み込んで,"花子" で採寸します。

もちろん,写っているスケールは"花子" での採寸用の基準寸法となります。"花子" で,スケールを任意の縮尺にして,このスケールの20mmが画面上で20mmとなるように設定すれば,寸法が原寸で表示できます。

ED70特高圧配線図面.jpg 図面作成中。

KATOのED70の高圧配線の金属線はφ0.4mmのようでしたが,この特高圧碍子に穴を開けないといけないので,一回り細く,φ0.3mmの洋白線を使いました。

ED70特高圧配線固定中.jpg ただいま固定中。


kato ED70 特高圧配線洋白線化.jpg 取り付けるとこんな感じです


kato ED70.jpg  とても美しいフォルムです。

こういう具合にうまく配線の改良もできました。

色合いも非常によく,実車の雰囲気をうまくとらえています。スムーズで静かな動力に感激しました。本当にどうもKATOさん,ありがとうございました。これから先日,入線したばかりのEF70 1000番台と一緒に試運転をしませう。


コアレスモータ対応鉄道模型用コントローラの開発~その9・PFM式~ [模型]

2017年5月20日の日記

先週,PFM式の鉄道模型コントローラを試運転しました。

残念ながら,かすかですが音がして,かなり甲高い音を出しますし,当然ですが,つまみを回していくとどんどん周波数が高くなります。チョッパ電車なら一定の音なのでそれほど気になりませんが,初期のインバータ電車みたいに音の周波数が変わるので非常に感じが悪いです。まぁ,機関車が走り出すと気にならないレベルですけど。

すっかり泥沼にはまってしまいました。これじゃ,ウクライナの湿地帯にはまってしまって身動きが取れなくなったドイツ軍,という感じです......orz。

しかたないので,なんとか冬将軍が来る前に無事撤退,という具合に行きたいものです。

先週は,スタート時点のスイッチング周波数を500Hzと想定して設計しました。やはりこれはダメで,もっと高い周波数にしておかないと耳に聞こえてします。

ただ,そうしなかったのは,先週も書いておきましたが,PFM式は当然,周波数がどんどん変わるので,最終的にはかなり高い周波数になってしまいます。実際,先週の測定では610Hz~63kHzというものでした。つまり,大体100倍くらいの周波数になります。

こうなってくると,仮に20kHzでスタートすると最終的に2MHzにもなることが予想されます。

そうなると使用しているタイマIC555の発振可能周波数がいくらまでか,と言うのが問題になります。

555の発振可能周波数は大体,500kHzというのが相場です。iruchanもそう思っていました。

でも,テキサスインスツルメンツが出しているNE555の規格表を見ると,もっと上まで出そうです。

NE555 free running frequency.jpg TI社NE555データシートから

たしかに,100kHzまでしか表示されていませんが,RA+2RB=1kΩの線を伸ばすと1MHz以上は出そうです。

ということで,C,Rをまた変更してテストしてみることにします。

まずはSpiceでのシミュレーションから。LTspiceは幸いなことに,NE555のモデルが標準でついています。

PFM controller (20kHz) simulation schematic.jpgシミュレーション回路

PFM controller (20kHz) waveform.jpg スタート時点の最低デューティ。

最低デューティは約1%で,周波数もほぼ20kHzとなっています。

PFM controller (20kHz) waveform-2.jpg 最終段階です。

最終的にはデューティ100%となる直前の状態です。初段の非安定マルチの出力は1.6MHzで,波形も崩れてきていますが,まだちゃんと出力しています。

ということで何とかなりそう.....,という雰囲気です。

それに,波形が崩れてきていますが,そもそもデューティが90%以上になっている段階でのことなので,ここで波形が崩れても,単にデューティが90何%かから100%に飛ぶだけのことで,問題ありませんね。

PWM式の場合,波形が崩れるのは第4回にも書いておきましたとおり,デューティが低いときです。

ここで波形が崩れてしまうと,低いデューティのパルスが出てこなくなり,ラピッドスタートになっちゃうので大問題ですが,PFM式は低デューティは大得意ですから,問題ありません。

ということで,ここまで来たら基板上の部品を取り替えてテストしてみます。

今回,555の発振周波数を決めるCとRのほか,2段目の単安定マルチの555の充放電コンデンサの放電用の2SA1015を1ランク上の2SA1020に取り替えました。Spiceのシミュレーションで120mAくらい流れることがわかったためです。

PFMコントローラ2.jpg 現時点での回路図です。

基板(20kHz).jpg プリント基板です。

ICは初段は通常の555ですが,2段目はあとでLMC555に変更しています。また,2段目の555の横にあるジャンパー線は試作時のもので,下記のパターン図は修正後のものです。

最低デューティ(10kHz).jpg 出力波形です。

▲のオシロの波形は最低デューティの時です。残念ながら周波数は11.5kHzと予想より低めですし,最低デューティも6.6%になっています。さんざん原因を考えたのですがよくわかりません。初段に使っている555のコンデンサが150pFと異常に小さいですし,セラミックコンデンサなので誤差も大きいからか,と考えていますがよくわかりません。まあ,これで動かなければOKなので,とりあえずテストしてみます。

最大デューティ(改良後)1.jpg ちなみに,最大デューティ時です。

試運転.jpg ただいまテスト中。

やはり驚き.......。

     [晴れ][晴れ] ものすごくスローで動くんです [晴れ][晴れ]

もちろん,常点灯にも対応し,停止した状態で前照灯が明るく点きます。6%くらいのデューティだと機関車は動き出しちゃうんですが,動かずに停止しています。ちょっとなんでだか説明できないんですけど。

それに,PFM式のよいところは最低デューティでも必ずパルスが出ているので,ボリウムを一杯に絞っても必ず前照灯が点灯します。

これはいいことなのか,悪いことなのか,どちらにも解釈できちゃうんですが,いい方としては,いちいち,今回作ったKC-1改PIC式のもののように,調光用のボリウムを調節しなくても前照灯が点灯するし,また,TL494を使った従来のPWM式のようにつまみが1個しかないタイプのものは機関車は動かないけど,前照灯は点灯する,という位置につまみを止めておかないといけませんが,コアレスモータ機はLEDが点灯するデューティと機関車が動き出すデューティの範囲が狭く,そういう状態で止めておくのはなかなか厳しいですが,今回のPFM式だと楽勝でした。それも単につまみを一番絞っておくだけでOK,というのは楽です。

まあ,逆に,前照灯を消したいときはコントローラをoffするしかない,と言う欠点もあるのですが.....。

また,前回,テストしたときに気づいたのと同様,PFM式は非常にスローで動きます。これはKC-1も真っ青と言っていいくらいです。なにより,さっきも書きましたとおり,常点灯する範囲が非常に広く,時計で言うと10時くらいまでは前照灯のみが点灯して,それ以後は機関車がゆっくり動き出す,という感じで,非常に鉄道模型のコントローラとして優秀だと思います。PWM式の場合,今回製作したものも含め,常点灯する範囲というのは非常に狭く,特に,コアレス機は厳しいのですが,今回,製作した一連のものでも常点灯の状態を保つのは非常にクリティカルなのに,PFM式は本当に楽勝,という感じです。

常点灯(20kHz).jpg もちろん,停車中です。

マニアの皆さんを機関区に集めて撮影会するにも楽で,これだと皆さんに喜んでいただけますね......(^^)。

と言う次第で,PFM式は大いに将来有望で,今後,研究していきたいと思います。

ソ連に侵攻したドイツ軍は1815年のナポレオン軍同様,冬将軍に負けちゃうわけですが,こうして無事にiruchanは泥沼から脱出し,キスカ奇跡の撤退ができました。


2017年5月29日追記

プリント基板図のご要望がありましたので,upしておきます。まだiruchanはPFMコントローラは未完成と考えていますので,とりあえずの暫定版とお考えいただければ幸いです。

実験しましたが,2段目の555はC-MOSタイプのLMC555をお使いください。最低パルス幅は0.8μsで,最低デューティは1.4%となりました。2段目の単安定マルチバイブレータはより高速タイプのものが必要なようです。

ただ,残念ながら,初段の非安定マルチにLMC555を使用すると動作しませんでした。こちらは通常のTTLタイプの555をお使いください。

PFM controller(基板)1.jpg プリント基板(銅箔面)

PFM controller PCB(部品面)1.jpg プリント基板(部品面)

サイズは53×37mmです。 はジャンパ線です。


2017年8月3日追記

2SA1020が発熱して壊れた,というご報告がありました。正常に動作する場合は全く発熱しないはずです。そこで,Spiceで調べてみました。

2SA1020損失.jpg 正常に動作している場合

正常時はピーク電流こそ120mAくらいになりますが,平均電流はごくわずかです。コレクタ損失も230μWくらいですから,全く発熱しないはずです。

ただ,このTrをうっかり,逆向きにはんだづけしてエミッタとベースが逆に配線されているとすると......,

2SA1020逆接続.jpg 誤接続した場合

コレクタ損失は5Wを超えてしまい,すぐに2SA1020は壊れてしまうと思います。

ただ,念のため,出力を調べてみたら,この状態でもパルスは出力されるようです。おそらく,模型もしばらくの間は動くと思います。

という次第で,このTrの接続には十分お気を付けください。


2017年8月11日追記

回路を修正しました。

いくつか改良したのですが,まずは2段目の555のRAはもっと大きくしないと電流が大きいので,2.2kΩにしました。ここは時定数RA×Cでパルス幅を決めているのですが,パルス幅を小さくするにはこの時定数を小さくするとよいのですが,RAは電流が流れるため,あまり小さくできません。

次に,どうしても初段の555は普通のTrタイプの555じゃないとうまく動作しなかったので,やはりこちらも2段目同様,C-MOSの555LMC555CN)にしたいと思います。一般的にTrタイプの555は最高500kHzくらいまでですが,C-MOSだと1MHz以上発振できます。

ただ,今まではどうしても初段だけ,C-MOSタイプにすると動かなかったので改良したいと思います。

原因はオシロを見てわかりました。初段のデューティが高すぎるんですね。初段はRAに可変抵抗を用いて,非安定マルチを作り,周波数可変の発振器として使っていますが,デューティが高すぎて発振はしているんですが,2段目の555にトリガをかけるほど,off期間が長くなっていないようでした。

そこで,初段の555周辺の定数もいじりました。

最低デューティ(最終版LMC555×2).jpg 最低デューティです。

パルス幅は1.4μs,最低デューティは3.5%となりました。少し最低デューティは大きいかもしれません。もし,模型が動いてしまう場合は先ほどの2段目の時定数をいじってください。

最大デューティ(最終版,LMC555×2).jpg 最大デューティです。

きちんと100%になります。直前のパルスの周波数は525kHzでした。

初段最高周波数(LMC555).jpg 初段LMC555の最高周波数

驚いたことに1.4MHzを超えています。まさか,555で1MHz以上の発振ができるとは思わなかったので感動です。ただ,ノーマルのTrタイプの555ではここまで出ません。もっとも,出力は1.4μs程度のパルスが隙間なく出力されるようになるとデューティ100%となるので,出力波形はこんな周波数になりません。

最大デューティ(最終版,555&LMC555).jpg Trタイプの555のとき

今回の定数で,今まで使っていた日立のHA17555の場合です。最大デューティは25%くらいにしかなりませんでした。やはり,発振周波数が低すぎて,100%になりません。今回の回路では初段の555もC-MOSタイプのLMC555をお使いください。

と言う次第で,最終的な回路図を示します。

PFMコントローラ3.jpg最終版の回路です。

なお,本機の最低デューティは3%くらいで設計していますが,最近購入したKATOのC12だと起動デューティが2.7%だったので,この定数だと動いてしまうかもしれません。

もし,つまみを0にしても機関車が動いてしまう場合には,初段の555のRBを100Ω,2段目のRAを3.9kΩにしてみてください。これでデューティが2%くらいになって止まるはずです。


2017年8月16日追記

2SA1020が過熱する,というご報告がありました。

いろいろ調べてみると,8月3日の追記にあるように,どうもピン配置が東芝のオリジナルと異なるものが紛れ込んでいるのでは,と思いました。

台湾・友順科技股份有限公司UTC(Unisonic Technologies, co. ltd.)のホームページを見て,ようやくわかりました。驚いたことに,確かにピン配置の異なるものがあるようです。最初はまさかと思いましたけど......。


iruchanも使ったのはUTCの2SA1020で,手持ちの10個ほどを確かめましたが,いずれも東芝の2SA1020と同じピン配置でした。しかし,秋葉などで売られているものには電極がECBじゃなく,EBCのものがあるようです。しかも,▲のデータシートを見ても,実物の表記からはどのピン配置か,わからないようですが,EBC配列のものはTO-92パッケージで,東芝2SA1015と同じパッケージのもののようです。オリジナルの東芝製2SA1020と同じパッケージ(TO-92NL。TO-92より長い)のものはピン配置も同じECBのようです。

UTC製のTO-92版2SA1020はピン配置が東芝のものと異なります。お気をつけください。


コアレスモータ対応鉄道模型用コントローラの開発~その8・PFM式~  [模型]

2017年5月15日の日記

先週,コアレスモータ車両にはPFM方式がよいのではないかと考え,基板を作ってテストしてみました。

ところが,大チョンボをしてしまい,ドツボにはまってしまいました.......[雨]

一杯にボリウムを絞ってもLEDが点灯するのはいいのですが,1秒ごとにパッ,パッと点滅する有様で,常点灯とは言えますが,これじゃお客さんから苦情が来るってば!!

ちゃんと停車中もずっと灯りが点滅せずに点いてなきゃいけませんね......orz。

PFMは低デューティのパルスを出力するのに優れた方法で,最近はスイッチング電源が負荷が小さいときに従来のPWMより損失が少ないので用いられています。KATOのKC-1はスイッチング電源用のNECのμPC494Cを使っていますが,これは古いICなのでPWMのみですが,最近のものは負荷に応じてPFM⇔PWMのモード切替をするものが増えてきています。

鉄道模型用のコントローラとしては,PFMは安定して低デューティのパルスを作れる,と言うメリットがあると思います。

それに対し,iruchanも昔から作っているPWM式はあまり低いデューティのパルスを出力できません。

というのはPWM式はパルスの幅,言い換えるとon時間を可変するため,パルス幅が狭くなってくるとスイッチングする素子の速度が問題になってくるためで,特に,鉄道模型だとスイッチングによる電磁音が聞こえないよう,20kHz以上のパルスを出力しますが,それで低デューティとなるとパルスの幅が狭くなって余計にスピードが問題になり,パルスが出力できなくなってしまうからです。

一方,コアレスモータは起動時のトルクが大きく,また,機械的抵抗が小さいため,非常に低いデューティで回転してしまいます。

iruchanが実測したところ,最低で4%くらいのデューティで起動してしまうようです。

常点灯に対応させるためには,さらにこのデューティより小さいパルスを出力させないと,前照灯,室内灯のLEDが点灯しないため,目標として1%のデューティが出力できるコントローラを開発しています。

ところが,仮にスイッチング周波数を20kHzとし,デューティ1%とすると,パルス幅はわずかに0.5μsとなります。

第3回に書きましたが,これだとバイポーラTrはダメで,MOS-FETじゃないと出力できません。

じゃ,MOS-FETでいいじゃん,と思っちゃいますが,今度はゲートの入力容量が問題となり,その容量の充放電を速くするため,ドライブ回路が必要となりました。

と言う次第で,結構,PWM式で高速コントローラを作る,というのは面倒なことになります。

一方でPFM式はと言うと....,

安定したパルスが出力できる周波数で一定幅のパルスを作り,off期間を可変してデューティを変化させるので,無限に0%に近いデューティのパルスを出力できます。PWMだと,on期間を可変するので,どうしてもパルスの最小幅には限界があり,あるところでパルスが出力されなくなってしまって最低デューティは数%となってしまいます。

そこで,前回,PFM式を試作してみたのですが,大チョンボをしてしまい,ボリウムを一杯に絞ったら前照灯&室内灯が点滅してしまう,という不具合を生じてしまいました。

off期間を無限に延ばせばデューティを限りなく0にできる,と思ったのは間違いで,確かにそうだけれど,鉄道模型の常点灯に応用する場合はoff期間には自ずと限度があるのです。

こんなの,ちょっと考えりゃ,気がつくんですけど,iruchanは基板をテストして基板上に取り付けたLEDが点滅していても気がつきませんでした.....orz。

そこで,今回はまず,off期間が最大どこまで延ばせるか検討してみます。

PWMもPFMも同じで,どちらも常にLEDは点滅しているので,要は人間の目に点滅しているとは気がつかないくらいまでは伸ばせるわけです。

とりあえず,500回と決めました。実際,目に感じられる回数としては映画が24回,TVが30回ですから,これくらいで十分な気がしますが,あまり低いスイッチング周波数は損失も増えるので,高めにしました。

となると,toffは最大でも1/500sec.で,2msec.と求められます。デューティはton/(ton+toff)ですから,1%のデューティのパルスを生じさせるためには,tonはさらに1/100で,約20μsです。

PFM controller duty settings.jpgデューティの決定

これならなんとかバイポーラTrでも十分出力可能です。前回,出力に東芝のダーリントンTr2SD686を起用したので,できればこれをそのまま使いたいのですが,何とかなりそうです。

前回も書きましたとおり,回路は非安定マルチバイブレータでトリガ信号を作り,それをもとにして単安定マルチバイブレータで一定幅のパルスを作らせようとしていますので,前段の非安定マルチは500Hz,次段の単安定マルチは1/20μsで50kHzで動作させればよいのです。

タイマIC555の規格表には上記の周波数で発振させる場合のC,Rの計算式が載っていますので,それに基づいて再計算しました。iruchanはいつも新日本無線(JRC)のNJM555の規格表を見ています。ご参照ください。

といって,今回使用したのは部品箱から出てきた日立のHA17555なんですけど.......(^^;)。

日本ではJRCのほか,NEC,東芝,日立など主だった半導体メーカが555を作っていました。今でも世界中で大量に作られていますが,DIPタイプを生産してくれているのはもう日本ではJRCさんだけのようです。HA17555もルネサスのwebを見たら新規採用非推奨となっています。

なお,555を2個内蔵した,556と言うICもあります(スプレー式の潤滑油じゃありませんけど。もちろん,豚まんじゃないってば。ちなみに551というICはありません)。これを使うとICは1個で済みますが,あまり556は見かけたことがありません。もちろん,556をご使用になってもOKです。

以上の計算からC,R類の定数を変更して,検証のため,LTspiceでシミュレーションをしました。

PFMコントローラsimulation schematic.jpgシミュレーション回路です。

PFM simulation 波形(16.5us).jpg 最低デューティの状態です。

━ が初段の非安定マルチの出力で,その立ち下がりに同期して2個目の単安定マルチが出力します( 線)。ただ,どうしても2個目の単安定マルチのパルス幅が広く,最低デューティが大きくなってしまったので,1個目の非安定マルチの出力を利用して2個目の555の充電用コンデンサ0.1μFを放電させています。実は2SA1015は結構,重要な役割を果たしているのです。

PFM simulation 波形(16.5us)2.jpg 途中の状態です。

徐々にパルスの数が増えていき,パルスの間隔が狭くなっていきます。最後は100%となって,完全な直流となります。

PFM simulation 波形(16.5us)3.jpg 拡大

パルスの周波数としては,最低が610Hzで,最高がなんと63kHzにもなります。ただ,最高の状態でもパルスはきれいな方形波を保っており,PFM式としては成功のようです。555はなかなか優秀なICですが,最高で500kHzくらい,と考えていたので,もう少しよいようです。


さて,これでうまくいくはずです。抵抗とコンデンサを取りかえてテストしてみます。

基板(改良後,最低デューティ).jpg なかなかいい具合です[晴れ]

▲の写真はボリウムを一番絞った状態ですが,モニター用の青色LEDは明るく光っていますし,肉眼で見て点滅しているとは全く見えないのでOKです。もっとも,初段の555の発振出力でパイロット用のピンクのLEDよりは暗いので,やはり停車中は少し暗くなると思います。でも,最近のLEDは輝度が高いので,全開にしたらもうまぶしいくらいでした。これでも電流制限抵抗を10kΩにもしているんですけどね。昔だったら12Vの電圧をかけるんだったら電流制限抵抗はせいぜい1kΩでしたけどね.....。  

オシロで波形を確認してみます。

最低デューティ(改良後).jpg 最低デューティ。0.78%でした。

中間デューティ(改良後).jpg 途中の状態です。

  こうやって徐々にパルスが増えていきます。

PWMだと,パルスの数は一定で,徐々にパルスの幅が広くなっていくのが観測できますが,やはりPFMだとすこし状況が変わります。

最大デューティ(改良後).jpg 最大状態です。デューティ100%となります。

また,off期間中も2V前後の電圧が出ていて,ノーカットオフ回路がうまく動作していることがわかります。モータに使用すると,off期間中でもわずかに電流が流れていますので,騒音が小さくなると思います。

PWM式だと何も工夫せずに作っちゃうと最低デューティは数%だし,最高デューティもKATOのKC-1もそうですが,完全に100%とならないものが多いので,PFM式はどちらも容易に達成でき,いいシステムだと思います。


と言う次第で,試運転です。

しかし.......。

コントローラのつまみを回していくと,やはりピーッと言う音がします。しかも,機関車が動くまで,どんどん周波数が上がっていき,ピ~~~~~~ッという感じでどんどん音が甲高くなり,非常に感じが悪いです。

PWM式でもスイッチング周波数が低いと音が聞こえますし,実際,iruchanは300Hzでスイッチングできるようにして201系そっくりな音を出して喜んでいたりするんですけど(変態!!),PWM式では音の周波数は変わらず,いつも一定の周波数の音なので,それほど違和感はありません。ところが,こういう風にどんどん周波数が変わっていく,というのは非常に気持ち悪いです。

一応,ノーカットオフ回路を構成してあって,モータには常に電流が流れているので非常に音は小さいのですが,やはり近くで聞くと耳障りです。

と言う次第で,結局,今回もボツ。

やはり,スイッチング周波数は20kHzくらいから上になるようにしないとダメなようです......orz。


でも,かすかな希望が.....。

試運転して気がついたのですが,非常にスローで動きます。自作したKC-1改も非常にスローで動きましたけど,これもなかなかのもの。いや,それ以上という感じです。実際,測定してみると1cm/sくらいのスピードで動きます。KC-1改でも2.6cm/sでしたから,非常に優秀だと思います。

Nゲージに限らず,鉄道模型はスローで走ることが求められるわけですけど,このPFM式はその点,非常に優れているのではないかと考えています。

次回,周波数を向上して音の問題を解決したいと思います。


コアレスモータ対応鉄道模型用コントローラの開発~その7・PFM式~ [模型]

2017年5月8日の日記

GWを利用して基板を3枚作りました。そのうちのひとつをご紹介します。ただ,今日は失敗でした。それはまた後ほど。

このところ,KATOが蒸機のリニューアルに際して採用しているコアレスモータに対応したコントローラを作っています。

どうにもこのコアレスモータというのは何より小型で,世界的にも細くて小さな日本の蒸機のボイラーにも収まるし,また,性能面でも非常に低速でもスムーズに動くので大変な優れものです。

ただ,少々扱いにくい面があり,市販されているPWM式コントローラを使っても停車中に前照灯を点灯させておく,いわゆる常点灯に対応しないばかりか,少しラピッドスタート気味で,つまみを回していくと突然走り出す,という現象があるようです。

iruchanはずっと昔からコントローラは自作しているので,市販品で調べたことはないのですが,皆さん,ネットに書いておられるのを見ると市販のコントローラもこのような現象があるようです。

といってえらそうなことを書いていますけど,iruchanが自作したコントローラも全く同じ現象で,どうにも突然走り出す,という感じがします。

ということで,コアレスモータ対応のコントローラを開発するべく,このところ研究をしていました。

ラピッドスタートの原因についてはほぼ特定できました。

原因はPWM式コントローラが実は,非常に低いデューティ(パルス幅)の出力が苦手で,特に,PWM式は電車で言えば電機子チョッパ制御なのでどうしてもモータから音がしちゃうので,それが聞こえないよう,20kHz以上の周波数のパルスを出すように設計するのが普通ですが,こうすると低いデューティのパルスが出力できなくなります。

iruchanが従来,使っていたコントローラも最低デューティは5~8%くらいです。一方,第4回に書きましたが,コアレスモータ車の起動時のデューティは4~8%くらいでしたから,これじゃラピッドスタートするのは当たり前,という気がします。

そこで,これまでのところ,最低デューティを1%程度としたPWM式コントローラを作ってきました。これなら無事に常点灯にも対応しますし,機関車も超低速からスムーズに起動します。

ただ,通常,PWM式のコントローラはモータが音を出すため,人間の耳に聞こえないよう,20kHz以上の周波数でスイッチングするのが普通です。こうするとスイッチング損失が減り,教科書でもPWM制御をする場合には高周波が有利,と書いてあります。

コアレスモータの大手マクソンモータのwebにもそう書いてあり,周波数は39~60kHzなんて書いてあります。100kHz以上でスイッチングすることも多いようです。

ところが,20kHz以上の周波数でスイッチングすると,高速なMOS-FETを使っても1%のデューティのパルスを出力するのは困難であることがわかりました。そこで,前回までは出力のMOS-FETの前段にドライブ回路を挿入し,MOS-FETのスイッチング速度を向上させました。

あるいは,低いデューティのパルスを出力するにはスイッチング周波数を下げる,という方法も考えられ,やはり鉄道模型には低周波のPWMが有利です。仮にスイッチング周波数を300Hzとすると,1%のデューティのパルス幅は33μsですから,スイッチングの遅いバイポーラTrを使っても余裕で出力できます。

ところが,これには大きな問題があり,ひとつは騒音です。

モータが瞬間的に最大トルクと0を繰り返すため,モータが振動して音を出します。これは普通の電車も同じで,201系は300Hzでチョッピングしながら走行していましたから,プーッと言う音を出していましたし,インバータ電車は周波数可変ですから音の調子も変わりながら音を出していますね。

と言う次第で,iruchanはスイッチング周波数を300Hzにしたコントローラを作り,201系のチョッパ音を楽しんだりしているんですけどね.....。

一方,KATOのKC-1は前照灯&室内灯用に24kHzの高周波パルスを併用していて,機関車が動き出さない程度に高周波パルスを出しておくと停車中にも照明がつくようになっています。

この方法はもう一つ,大きなメリットがあり,低周波の大きなパルスの間に高周波の幅の狭いパルスが埋めることになり,モータにはフリーホイーリングDiを介してoffの期間中も循環電流が流れて騒音が出ません。

この辺は第2回で解析しましたので,ご興味がある方はご覧ください。

と言う次第で,今回は再び低周波PWMに取り組みたいと思います。

ただ,今回は単純な低周波PWMではなく,PFMにしたいと思います。

PFMってなんや? ってお思いの方も多いと思います。

PWMとの違いは,PWMはPulse Width Modulation の略で,パルス幅変調と訳されますが,周波数は一定で,パルスの幅,すなわちon時間を変化させるのに対し,PFMはPulse Frequency Modulation でパルス周波数変調の意味ですが,パルスの幅は一定で,off時間を変化させます。1秒あたりのパルスの数,つまり周波数が変わるのでPFMと呼ばれます。

PWM原理.jpg   PFM原理.jpg             

                  PWM                  PFM


詳しくは第1回に書いておりますのでご参考になさってください。

こうすると低デューティ時の効率が向上し,最近ではスイッチング電源の制御に用いられているようです。理由は効率にあり,スイッチング電源用のICもデューティが低いときは通常のPWMからPFMに制御を変更し,効率の向上を図ったものが増えてきています。

鉄道模型用としては,低いデューティが容易に得られる,と言うことでしょうか。off時間を無限に延ばせば,デューティは限りなく0に近づきますからね。PWMだと,素子のスイッチング速度の関係で,限りなく0に近づけることができません。あるところで突然0になります。もっとも,スイッチング周波数が300Hzとか,50Hzとか,低かったらほとんど問題ないんですけどね.....。

さて,と言う次第で,PFM式のコントローラを開発したいと思います。

PWMで言えば,スイッチング周波数300Hzにしよう,と思いました。201系と同じ周波数ですし,コアレスモータとの相性もよいようで,Tomixの5001PWM改造コントローラでも300Hzだとコアレス機がうまく動きましたので。

そこで,パルス幅は1/300sec.ということで3.3msec.とします。また,最低周波数は1秒とします。そのときのデューティは1%となるように設計します。でも,ここに落とし穴がありましたが,iruchanは基板を作るまで気がつきませんでした......orz。

PFMコントローラsimulation schematic.jpg

                PFMコントローラシミュレーション回路

最初,回路としてはPWM式の基本回路である,三角波発振回路とコンパレータを組み合わせたもので考えたのですが,どうしても低いデューティにならないし,また,よく考えてみると,発振周波数を変えると同時にパルス幅も変わっちゃうのであきらめました。

と言うことであきらめて基本に立ち返って,可変周波数のパルス発振回路でパルスの間隔を決め,それをトリガにして一定幅のパルスを発生させる回路の組み合わせ,と言うことにしました。具体的には,非安定マルチバイブレータと単安定マルチバイブレータの組み合わせ,と言うことになります。

非安定マルチと単安定マルチ,ということなので簡単にタイマIC555を使いました。PICを使う,と言うことも考えられるのですが,周波数が低いのでハードウェアPWMが使えず,ソフトウェアに頼るところが大きいのでやめました。

ただ,いつも思うんですけど,なんで電子工学の世界でバイブレータなんて言葉を使うんでしょうね~。それに,非安定とか単安定とか,双安定とかやたらたくさんバイブレータがあります。iruchanは普通にオシレータと言えばいいんじゃない,と思います。電子工学を学び始めたとき,なんてなんだと思いましたけど。覚えるのも大変なんですけどね.......(^^;)。


なお,詳しくはLTspiceでシミュレーションしながら設計しましたが,難しいのはこの回路でもやはり低デューティで,単純に555を2個組み合わせた回路ではダメでした。どうしても10%くらいから下のデューティにできません。

原因は2個目の単安定マルチのパルスが大きいことで,どうも発振の時間を決めるコンデンサC3をうまく放電できていないようです。

しかたないので,これを高速で放電させるべく,初段の555の出力を利用してPNP Tr Q3を使ってそのコンデンサを放電させることにしました。2SA1015がそれです。これがないと幅の狭いパルスが出せません。

ただ,これでいいかというと,低いデューティの時はPWMと同じでモータには循環電流が流れませんので,大きな騒音を出すと思います。

これじゃ意味ありませんね~。やはり高周波PWMか,KATOのKC-1みたいに低周波&高周波PWMの混合タイプにしないといけません。

と言うことでiruchanもPFM方式は一度,あきらめちゃったのですが......。

いいことを思いつきました[ひらめき]

出力の制御素子を完全にカットオフするのじゃなく,あらかじめアイドリング電流を流しておけばカットオフ寸前でしないようにできますね!。

これって,1970年代のノー・カットオフパワーアンプじゃない?

って思う人は相当な爺さんです(失礼)。iruchanももちろん,その一人です......(^^;)。

半導体アンプの最大の欠点はB級出力段によるスイッチングひずみでした。原因はプッシュプルになっている出力段が信号の正負に応じてカットオフするためで,これを回避するため,普通だったらA級アンプにすればいいのですけど,これじゃアンプがあっちっちになっちゃうし,出力もロクに取れないので,回路を工夫してB級のまま,上下のTrがカットオフしないようにしたのがノー・カットオフアンプでした。

iruchanも中学3年の時,苦労してA級アンプを作りましたけど,あまりに熱いので夏は大変でした。それに懲りて,いままでA級アンプは作ったことがありません.........(^^;)。

こういった欠点を改良したのがノー・カットオフアンプで,最初に開発したのはパイオニアじゃなかったか,と思いますが,ソニーやテクニクス,Lo-Dなど,ほとんどのメーカが新しい回路を考案して採用していました。当時,"無線と実験" とか,"ラジオ技術" によく解説が載っていましたし,NHK出版が出していた今はなき "電波科学" (懐かし~~)が熱心に解説記事や製作記事を載せていました。

iruchanは熱心にこういった記事を読んでいたので,今回,それを思い出して,PFM式コントローラに応用することにしました。

回路は簡単で,PFM用のパルスとは別に,出力の制御素子にバイアスを加えてカットオフしないようにしています。

定電流Diを使ってバイアス電圧を作ります。完成後,出力端子が0Vとならないように調整すれば,制御素子はカットオフせず,モータに常に少し電流が流れてモータ電流が途切れないようにして音が出ないようにします。実際,LTspiceでも確認できました。

PFMコントローラmin.デューティ時波形.jpg シミュレーション結果です。

パルスがoffとなっている期間に注目していただきたいのですが,普通のPWM式のコントローラの場合はここは電流,電圧ともに0ですが,本機は0.8Vくらいを出力させ,40mAくらいの電流をモータに流しています。こうすると音が小さくなる......はず.....です??? もちろん,こんな電圧ではモータは回転しませんし,LEDも順方向電圧以下なので,点灯しません。

▲の図は最低デューティの時を示していますが,最低デューティは約0.4%です。

第4回に書きましたけど,前照灯が点灯するのが約3%,コアレスモータが回転するのは最小で約4%くらいですから,十分低い値です。シミュレーションどおりだとうまく常点灯もできますし,非常にスムーズに機関車が起動するはずです。

PWM式だとほぼこれが限界のデューティとなりますが,PFM式だといくらでも小さくできます。しかし,あまり最低デューティを小さくすると,どこまでつまみを回してもなかなか起動しない,と言うことになりますので,これくらいが最低デューティとして適当ではないかと思います。実際には,模型を運転してみて,多少,変更しないといけないと思います。

最後に,出力はバイポーラTrを使うことにします。高周波PWMだと高速なMOS-FETの採用が必要ですが,今回は300HzなのでバイポーラTrで十分です。今じゃ,はるかに高性能なMOS-FETがたくさん出ていますので,MOS-FETでもいいんですけどね.......。
なお,バイポーラTrにする場合,hFEの大きなものが必要なのでダーリントンTrにしました。起用したのは東芝の2SD686です。NECの2SD560同様,鉄道模型のコントローラによく使われましたね。懐かし~~。
 
もちろん,まだこれらのTrは入手可能ですが,高いのでこういう古いTrを使う必要は全くありません。同じTO-220タイプの2SD1415A(東芝),2SD2014(サンケン)などでOKです。でも,iruchanは古い素子は大好きなんですよね~(^^;)。

さて,ここまで来たらプリント基板を作ってテストしてみます。

PFMコントローラ基板1.jpg 基板が完成しました。 

ピンクのLEDは最初の非安定マルチの出力のモニターです。これが点灯していれば,非安定マルチは動作していることがわかります。あとでこれはパイロットランプにしてしまう予定です。 

2つめのブルーのLEDは出力のモニタ用です。これを同じ基板に作っておくとテストの時に便利です。 

可変抵抗は左一杯に絞った状態でもパルスが1秒ごとに出て,ブルーのLEDが瞬間的に1秒に1回点灯します。その後,可変抵抗を回していくと徐々にパルスの間隔が狭まり,最終的に完全な直流となってLEDがずっと点灯したままになるとOKです。

PFM controller wave.jpg 出力波形です。 

オシロで観測すると,計画通り,1秒ごとにパルスが出て,最低デューティは0.7%でした。また,最大デューティは100%で,うまくいきました。また,パルスがoffの期間でも0.8V程度の電圧が出ていて,バイアス電流がうまく流れていることがわかります。

ところが.......。

ここまで来て,大変なことに気がつきました。

そもそもパルス幅を0.3msec.としてしまったので,1秒ごとに瞬間的にLEDが点灯するのが目で確認できちゃいます。

ってゆ~ことは......,

前照灯や室内灯が1秒ごとに瞬間的に点灯する.......わけです。

こんなおかしいことはありません。確かに,モータは起動しないので停車中にも点灯するわけですが,これじゃ,点滅しているだけで,お客様から "新聞が読めへんやないか!!" と苦情が来ることは必至です......orz。

考えてみれば当たり前なんですけど,iruchanはアホですね。できあがってみるまで気がつきませんでした。

と言う次第で,今回は失敗です。やはりスイッチング周波数を向上させて,再挑戦してみます。


続きはこちらで。


再び鳩時計の夜鳴きを止めた話 [電子工作]

2017年5月6日の日記
 
鳩時計1.jpg
 
2年前に家で使っている鳩時計が照度スイッチがないため,暗くなっても鳩が鳴くので照度スイッチを作って夜は自動的に止めるようにした,と言う記事を書きました。
 
ところが,せっかく作ったのに,電池の寿命が短く,せいぜいひと月くらいでスイッチが応答しなくなってしまいました。
 
原因はやはりCdSを使ったアナログ回路じゃ消費電流が大きく,電池の持ちが悪いのです。
 
と言う次第で,今回,PICを使った回路にしたいと思います。
 
PICは非常に消費電流が少なく,単4電池2本を使ったりすると半年以上,電池が持ちますので,こういう風にしたいと思います。
 
と言う次第で,前回同様,フォトMOSリレーを使って,鳩時計のモータ回路をon/offするような回路にしました。もともと,手動でon/offするスイッチがついているので,その接点を自動的にon/offするようにしたのです。
 
使ったPICはA/Dコンバータのついている12F1822です。
 
回路は次のようにしました。
 
光スイッチ回路3.jpg最初の回路です。これはボツ。
 
普通なら,フォトTrの電源は電池から直接取りますが,そうすると常時,フォトTrに電流が流れて電池がもったいないので,測定するときだけ,#2ピンに瞬間的(20ms)に電圧を出力することにします。その間にフォトTrNJL7502Lが動作するので,エミッタにつないだ抵抗に生じる電圧を測定します。こういう芸当はPICじゃなきゃできませんね。
 
測定した電圧がしきい値を超えていれば出力#5ピンのポートをonにして,フォトMOSリレーを動作させます。
 
また,照度センサは前回同様,応答速度は速くなくてもよいのでCdSでもよいのですが.....。
 
ただ,iruchanはちょっとフォトTrがCdSよりは応答速度が速いけど,フォトDiより遅いのであまり好きではありません。また,フォトTrは赤外線に反応するものばかりで,人間の目の特性に合っていない,と言うのもあまり好きじゃない理由です。ところが,この新日本無線のNJL7502Lはほぼ,人間の目にあった特性になっていて,しかも感度が高く,コレクタ電流も大きいのでとても使いやすいのです。
NJL7502L特性.jpgNJL7502Lの特性です。
NJL7502L感度特性.jpg 感度も高いです。
                    いずれも新日本無線のNJL7502L規格表から。
 
大体,100lxで回路が動作するように回路&ソフトを設計しました。
 
と言うことでプリント基板を作ってテストしてみました。
 
ところが......。
 
明るくなって,テスト用にPICにつないだLEDが消えても鳩時計のモータが動作しません[雨]
 
う~~ん,なんでかな,と改めて使っている東芝のフォトMOSリレーTLP222Aの規格表を見て気づきました。
 
トリガLED電流が3mA(最大)と書かれています。これは,つまり,入力側のLEDに最大で3mA流すと出力のMOS-FETがonしますよ,ということです。
 
と言う次第で,最大で3mAも流せば十分ですよ,と読めるのですが,じゃ,最低は何mAだよ? っと思っても書いていません。
 
最初,1mA程度流すようにしていたのですが,やはりこれじゃ全然,MOS-FETはonしないようです。
しかたなく,フォトMOSリレーの入力に入れていた抵抗を1kΩから470Ωにしたら鳩時計のモータが動作するようになりました。
 
電流を測ってみるとほぼ3mAで,結局,TLP222Aは3mAくらいは流さないとリレーとして動作しない,と言うことがわかりました。
 
残念ながらこれじゃ,電流大きすぎ。
 
単4電池は大体,900mAHくらいの容量なので,おおざっぱな計算ですけど,3mAも流すと300時間くらいですから,ほぼひと月で電池がなくなっちゃいます。まあ,夜は動作しないので,夜間はほぼ消費電流は0といっていいくらい小さいですが,昼間はほぼこの電流を消費します。
 
と言う次第で,結局,フォトMOSリレーをあきらめ,単純にMOS-FETでon/offするようにしました。
 
MOS-FETだったら電圧動作ですから,ゲートをonするのに電流はいりません。フォトMOSリレーは入力がLEDなので,どうしても電流を消費してしまいます。これなら最初からMOS-FETでドライブすりゃよかった。
 
使ったのはルネサスの2SK975。ID=1.5AでTO-92パッケージですから小さいです。
 
光スイッチ回路4.jpgこの回路でOKです[晴れ]
 
ついでに,モニタ用の赤色LEDをつけました。これも消費電流が大きいとバカにならないので,高輝度のものにして,電流は0.1mAくらいにしました。また,常時点灯だともったいないので,10秒ごとに瞬間的(20ms)に点灯するようにしています。
 
PIC基板1.jpg PICを使った基板です。
 
鳩時計内部.jpg こんな風に設置しました。
 
PIC基板.jpg 振り子の隣にLEDとフォトTrが顔を出します。
 
これでも瞬間的にパッと赤く光るので,今,照度スイッチがonしているな,とわかって便利です。
 
ようやくこれで実用化です。夜は鳩ぽっぽもお休みです.....。
 
 
おまけ
 
駅弁が大好きなiruchanのけふの昼ご飯は横浜・崎陽軒のシウマイ弁当。いつも東京へ出張したときは帰りに買って帰ります。東京駅ではいつもこれか,JREのチキン弁当と決めています......(^^:)。
 
崎陽軒復刻シウマイ弁当.jpg 微妙におかずも違います。
 
ただ,今回は復刻驛辨。見たこともない,緑色の掛け紙にびっくり! こういう古いの,iruchan大好きなんですよね~。そういえば,しらさぎに乗って名古屋へ行った時も,いつも松浦商店の復刻駅弁を買っています。これもとても美味です。
 
今回のシウマイ辨當はなぜかエビフリャアが入っているし,魚がブリの照り焼きなのもいつもと違います。フキの煮物か? と思ったらそれはセロリだったりして,とてもまたこれも美味なお弁当でした。

PICでTVリモコンを模擬した話 [電子工作]

2017年4月17日の日記

TVリモコン.jpg ダイソーコレクションケースに入れました。

   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社が採用している家電協方式について説明します。

家電協リモコンのコードは次のようになっています。 クリックすると拡大します。

リモコン信号.jpg リモコンフォーマット

ややこしいのは,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.ボタン,ボリウムボタンなど,各種のボタンごとのコードです。

実際に,リモコンの出力波形をオシロで調べてみました。 

リモコン信号.jpg こんな信号です。

   信号全体を示しています。先頭の太い部分はリーダーコードです。 

リモコン信号1.jpg 拡大するとこんなです。

   やはり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です。

ソースファイルは次のようなものです。

TV power off(UTF8).txt

回路は簡単なもので,前回のあんどんみたいに単にタクトスイッチとLEDをつけただけ,という感じです。配線も万能基板です。タクトスイッチを軽く1回押すと信号がでます。3秒以上,長押しするとタイマーが起動し,12時間ごとに信号を出すようにしました。

TVリモコン回路.jpg回路です。 

LEDは赤色のものと赤外線の2つ使っています。

なんでか,というと単に赤外LEDだけにしちゃうと肉眼では見えないので,テストがやりにくいんです。そこで,普通の赤色LEDを使ってモニターします。

もっとも,赤外LEDは目に見えないと言っても,CCDには見えちゃうので,デジカメで見れば薄紫色に見えますので,点灯しているかどうか確認できます。

というのは前から知っていて,それを利用していましたが,スマホの一部では赤外線に反応しないものもあるようで,スマホのカメラだとこのように見えないものがあるのでご注意ください。

なお,さすがにメーカさんも単純な赤外LEDだと見えないので何かと不便,ということで可視領域にも若干,感度を残しておいて,赤く薄く光る赤外LEDというのもあります。こういうのを使うと便利だと思います。

TVリモコン模擬基板.jpg 基板です

  デジカメでは赤外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日 追記

TV電源SW.jpg パソコンから制御できるようにしました。

やはりタイマー式だと時間が正確ではなく,内部クロックのせいもあるのでしょうか,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するようにしました。

TVリモコン回路(RS232c)1.jpg回路です。

単に,タクトスイッチの接点にTrを挿入しただけです。

最初,Trを使ったスイッチということなので,NPNのTrを使ったのですが,RS-232CのRTSポートはパソコンの電源を入れた状態ではRTSポートの電位は-9Vくらいになっていました。当然,USB⇔RS-232C変換基板のRTS出力は常時,5Vとなっていて,これじゃ,PIC基板を接続したときにはTVのon/off信号が出っぱなしで,TVがonしたりoffしたりするので,論理を逆にするためPNP Trを使っています。 

プリント基板(RS232C接続).jpg 基板です。

この赤い基板,Amazonで売られているものです。中国のHiLetgoというブランドの FTDI FT232RLというもので,たったの230円ほどのものです。秋葉原のお店などで,別の同じ機能のものが1,000円くらいで売られていますが,これで十分でした。おまけに5Vと3.3Vのピンもついていて,入力のUSBの論理によらず,PCにつないだだけでPICなどに電源を供給できるのも便利です。Arduinoとの通信用としてもよく使用されているようです。

tv power off form.jpg こんなソフトをVB.netで作りました.....(^^)。

これで指定した時刻にTVをon/offできるようになりました。もちろん,土,日はTVをonしない,なんて簡単にできます。

といって,ハッピーマンデーのおかげで祝日はどうにもなりません。Microsoftも日本の祝日を返す関数なんて用意してくれてませんしね。結局,手動で祝日を記録したファイルを作っておいて,それを読み込むくらいしか手はありません。まあ,いろいろと手は考えられるんでしょうけどね。それにしてもハッピーマンデーなんて早くやめて!! って思うのはiruchanだけでしょうか。 

もう一つおまけ。

今回,iruchanもVB.netを使いはじめなんですけど,驚いたことがあります。

なんと,デバッグをしたいのに,ブレークポイントが機能せず,通過しちゃうんです!!!!!

それこそ,最初は "はぁ?" って感じで,これには驚いちゃいました。なんでこんなことになるの?

ようやく原因がわかりました。モードがDebugになっていないとブレークポイントを無視しちゃうし,そもそもデフォルトがReleaseになっているからなんですね。ちょっと頭にきちゃいました。 

tv power off1.jpg Debugモードにしてください


コアレスモータ対応鉄道模型用コントローラの開発~その6・TL494を用いた単一周波数PWM式~ [模型]

2017年4月9日の日記

先月,PICを使用したPWM式鉄道模型コントローラの基板を作りましたが,ついでにもう1枚,TL494を使ったPWM式コントローラの基板も作りました。これは,KATOのKC-1型コントローラで使われているNECのμPC494Cのオリジナルです。iruchanもKC-1を現代によみがえらせるべく,自作しています。詳しくは,iruchan版KC-1改をご覧ください。

ただ,やはり,PICは嫌だ,と言う方もおられると思います。なによりソフトの組み込みが必要ですし,いろいろと道具も必要ですから。こちらはハードウェア方式なので,そういう方におすすめします。もちろん,コアレスモータにも対応するべく,高速応答タイプにして低デューティのパルスが出力できるようにしています。

TL494は米Texas Instruments社が開発したスイッチング電源用ICのひとつですが,おそらくそれらの最初のものだと思います。よほど売れたのか,日本でもセカンドソースとして,NECや富士通,東芝が作ったようです。そのひとつがKATOのKC-1で使われていたμPC494Cです。富士通のはMB3759,東芝のはTA76494と言う型番のようです。ほかにも,Fairchildやオンセミなども作っているようです。

まあ,NECや東芝などはすでに製造中止で入手は難しいですが,オリジナルのテキサスがまだ現行品ですので,入手は容易です。ちょっと東芝のTA76494は入手して使ってみたい気がしますけどね。

内部は鋸歯状波を発生する発振器と,コンパレータです。iruchanがいつも作っているPWM式コントローラはタイマIC555と,コンパレータLM393を使ったもので,別々のICとなっていますが,TL494を使うと1個で済んじゃいます。

また,コアレスモータに対応するためには回路を高速化する必要がありますが,TL494で使用されているコンパレータは高速で,20kHzでデューティ1%という非常に狭いパルスも容易に出力できます。残念ながら,iruchanが使っていたLM393は鈍足で,コアレスモータ用には適してない,と言うことがわかりました。

なお,TL494は少し残念ですが,本来はスイッチング電源用のICのため,2個の出力のTrが同時にonしないよう,デッドタイムコントロール機能がついていて,最低5%のデッドタイムが設けられるようになっています。そのため,デューティ100%にすることができません。KATOのKC-1も同様で,最大デューティは90%くらいのようです。

今回は回路を簡単にするため,KC-1改では調光用と走行用で別々のつまみを設け,またスイッチング周波数も調光用は高周波,走行用は低周波と分けていましたが,今回は周波数は20kHz固定で,つまみも1個にしました。

さて,まずは回路です。

PWM式コントローラ(TL494).jpg全回路図

KC-1改同様,高周波の低デューティパルスを出力するため,出力のMOS-FETにドライバ回路を追加しています。2SA10201SS133がそれです。また,出力のMOS-FETにはCissの小さなNECの2SK2412を使います。

ドライバ回路はTL494のソース(吐き出し)電流がmax.250mAもあるため,本来ならNPNのTrを使うところをDi(1SS133)で代用しています。 シンク(吸込み)側のみ,PNP Tr(2SA1020)を使って,これでMOS-FETのゲートに溜まった電荷をGNDに高速で逃がします。 

保護回路は電流制限型で,出力の2SK2412のソースに入っている0.56Ωと2SC1815がそれです。これで最大1A程度となるようにしています。面倒でしたら,0.56Ωの代わりにポリヒューズでも構いません。その場合,2SC1815は不要です。

また,出力にはスナバ回路(100Ω+0.01μF)とモニタ用のLEDがつけられていますが,特にこれも不要です。ただ,フリーホイーリングDiの11EQS06は必須ですので,つけてください。

回路は複雑に見えますが,TL494のピンはVccかGNDにつなぐ配線が多く,また,ピン配置が非常に合理的にできていて,プリント基板の設計は容易でした。やはりTL494は名石だな~と思いました。末永く作ってくれることを願います。

半固定抵抗1kΩはKC-1にもあるもので,パルスの出力開始位置を調整できます。ボリウムを回し始めてしばらくはパルスが出力されない,いわゆる "遊び" の調整です。 

プリント基板2.jpg 製作したプリント基板

プリント基板図をupしておきます。これを 34mm×50mmで感光基板に焼き付けるとプリント基板ができます。

プリント基板.jpg プリント基板図(銅箔面から見た図)

PWMコントローラ(TL494)基板部品配置.jpg 部品配置図(部品面から見た図) 

なお,ピンク色の部品はプッシュプルドライバを実験しようと準備工事したものです。今回,変形プッシュプルドライバとしましたので,不要です。 

最低デューティ1.jpg 最低デューティです。

最低デューティは0.89%で1%以下にすることができました! この状態ではモニター用LEDは点灯しません。 

ただ,TL494は先ほども書きましたように,最大デューティは95%くらいです。FBとDTCを接続すると,ほぼ100%にでき,iruchanもKC-1改でそのように配線してほぼデューティは100%にできましたが,どうしても本機は95%どまりでした。いろいろ調べているのですが,原因がわかりません。

最大デューティ.jpg 最大デューティです。 

従来型との比較1.jpg 従来型との比較

従来型はタイマIC555とコンパレータNJM2903Dを組み合わせたものです。 LEDの調光器に使っているものですが,鉄道模型のコントローラとしても使えます。それほど基板の大きさは変わりません。

TL494+KATO D51.jpg ただいまテスト中。

KATO D51 241.jpg 無事に常点灯にも対応します。ただいま停車中。 

やはりコアレスモータ搭載機は第4回にも書いておきましたが,LEDの点灯デューティが3%くらいで,モータの起動開始デューティが5%くらいなのであまり余裕がなく,点灯させた状態で停めておくことは難しいですが,本機は対応可能でした。 


キャンドルICの使い方~PIC編~ [電子工作]

2017年4月8日の日記

6年前,キャンドルICを使ってあんどんを作りました。当時はタイマIC555を使って数分後に切れる,と言う風にしました。

そろそろうちの子(11歳♂)も1人で寝るようになり,親としてはひと安心ですけど,やはり夜寝られない,というので,またそのあんどんを持ち出してきて,夜寝るときに点けておくように,と言おうと思いました。

ところが,久しぶりに取り出してみると故障中。なぜかLEDが点灯しません。ありゃ。

面倒だな~,と思っていたんですが,PICでタイマを構成して作り直そう,と思いつきました。PICだと何より回路が簡単,と言うこともありますが,きわめて消費電力が小さいので,LEDを点灯するくらいなら半年くらいは電池を交換しなくても済みそうです。

ということで,PIC式に作り替えることにしました。

キャンドル回路(PIC).jpg 回路です。

単にタクトスイッチと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にするようにしました。 

candle software.jpg ソフト

いつもどおり,PIC用のフリーのGreat Cow BASICを使いました。 ソフトは▼です。これを全部コピーしてメモ帳に貼りつけ,それを.hexという拡張子で保存して書き込めばOKです。

candle.txt  

PIC版基板.jpg 基板です。

   簡単な回路なので万能基板で作りました。 

あんどん(PIC).jpg こんな感じです。 

さて,これを愚息にあげたら結構,喜びました。夜,寝る前にスイッチを押して,あんどんを点灯させ,それで寝ているようです。"寝られない" とか言っていましたけど,割にこれをあげたらよく眠れるようです。

とはいえ,昔から,意外に,寝る,と言うことに関しては手のかからない子でした。赤ん坊の頃,夜泣きをしたことはほとんどなく,朝まで寝ているし,風呂上がりにとりあえず,おむつをはかせて掛け布団の上に寝かせておき,3歳上の姉ちゃんにパジャマを着せ,さて,次は坊主,と思って振り向いたらもうすやすやと寝ている,というような赤ん坊でした。 

34-1.jpg 

      なんで子供らだけで寝てんだ~!!

でも,大好きな "アナと雪の女王" (まだはまってます)の冒頭のエルサとアナの幼い姉妹が,彼らだけで寝ているシーンはかわいいけど,ちょっと違和感ありますね~。まあ,ディズニーだから,アメリカの価値観で描いているんでしょうけどね。

アメリカじゃ,子供が2歳くらいになると泣こうがわめこうが,何しようがテディベアでも与えておいて,子供部屋に閉じ込めて強制的に寝させる,なんてことは普通ですね。子供が寝たら大人の時間,というわけです。まあ,彼らにしてみれば,子供の自立心を養うため,なんて言うんですが,それはやはり親の勝手じゃない,と思います。

アナ雪はノルウェー? あたりの北欧が舞台なので,欧州の王侯貴族がこのような子育てをしていたのか,というのもよくわからないのですけど,少なくとも,皇后が一緒に寝られなくても乳母か,信頼する侍従が一緒に寝ていたでしょう。この点でも,なにか違うような気がします。 

さる高名な教育学者の先生が,米国で青少年の犯罪が多いのは子供の頃,一人で寝かせるのが原因とラジオで話しておられましたけど,同感です。やはり子供は日本人みたいに川の字になって寝るのがよいと思います。

まあ,とは言っても,そろそろ思春期だし,うちの坊主も一人で寝ないといけないので,自立したのが少し寂しい,オヤジではありますけど.....。 

故障箇所.jpg あ"っ~~!!

もとの基板を調べていて,気がつきました。なんと,電池のホルダの端子部分が折れて外れています。これじゃ,点灯せんわけだな~。簡単な故障でした......orz。 

修理後.jpg 修理完了。中国製の006Pで動かしてます。

スナップ端子を交換して無事に修理完了。また何かで使うことにします。 


宇高連絡船の思い出 [紀行]

2017年4月5日の日記

先週,四国へ行ってきました。私はほぼ1年ぶりですが,29年前,宇高連絡船に乗りに行きました。廃止になる直前,1988年3月末のことです。廃止は4月9日でした。なんか,本当にギリギリに行っているんだな~と思いました。

以前,青函連絡船の思い出を書きましたが,今日は宇高連絡船の思い出について書きたいと思います。 

さよなら連絡船土佐丸.jpg

青函連絡船は何度も乗っているのですが,どうもiruchanは寒いところが大好きなようで,温暖な四国へ渡ったのもこれが最初です。宇高連絡船もこれが最初で最後でした。ちょっと残念に思っています。

宇野線クモハ84.jpg 宇野線クモハ84

宇野線にはすでに快速マリンライナー用の213系が走っていましたが,ローカルにクモニ83改造のクモハ84形がいました。72系が原型ですが,96年に用途廃止になっているようです。 

土佐丸1.jpg 土佐丸

うどん屋さんは後部デッキにあったと思うのですが.....。すくなくとも,今の高松駅では昔の連絡船のうどん,なんて言っていますけど,こんなに油揚げは大きくなかったと思います。でも,1時間ほどの航海の最中,潮風を浴びながら食べるうどんはおいしかった......。 

伊予丸.jpg 伊予丸

宇高連絡線は青函連絡船と違い,貨車は前部から出し入れするようになっていました。 

阿波丸,讃岐丸1.jpg 阿波丸(左)と讃岐丸(右)

港の反対側からこのようにきれいな写真が撮れました。

讃岐丸だけ,船齢が若いため,連絡船廃止後も少し残り,クルーズ船として活躍しました。 今は蘭印インドネシアにいるようです。

船内.jpg 客室(阿波丸)

ブリッジ.jpg ブリッジにて(阿波丸)

当時,廃止間近と言うことでブリッジが開放されていて,見学ができるようになっていました。

JRとびうお.jpg ホーバークラフト便もありました

急行として運転されていた,JRの "とびうお" 号です。1986年から運航されていましたが,連絡船と同時に廃止となりました。 

四国へ渡って,高松~高知間の夜行普通列車に乗って坪尻,新改のスイッチバックを経験できたのもいい思い出です。残念ながら,すでに旧客は廃止になっていて,50系客車でしたけど。その後,京都発のムーンライト高知がその流れをくんでいましたが,それも2008年に廃止になりました。今もあったら夏なんか,結構,人気が出ると思うのですけどね。四国では松山へも夜行の普通列車がありました。

松山行きの夜行普通列車は,すぐにバスに移管され,しばらく夜行バスが走っていました。今,ミッドナイトEXPとして伊予三島まで夜中に特急が走っていますが,一度,乗ってみたいと思います。

特急しおかぜ(海岸寺).jpg 海岸寺~詫間にて

急行いよ.jpg 急行 "いよ" かな

有名な海岸寺駅で降りて,海岸沿いを走る列車を鉄しました。まだ特急が少なく,キハ58系の急行が間合いに走っていましたが,昔は四国は特急なんてなくて,優等列車は全部急行でしたよね.....。

ただ,四国の急行は▼みたいに丸い小さなヘッドマークで列車名を表示していました。▲の写真はつけていないのでどの列車かわかりません。 間合いの普通列車かもしれません。

急行あしずり.jpg 急行 "あしずり" (高松) 

特急しおかぜ.jpg キハ181系の "しおかぜ" 

それに,民営化間近でも四国は全線非電化単線だし,まくらぎも全部木製で近代化が遅れている,と民営化前に新聞で指摘されていました。国鉄は本当に最後まで四国に設備投資をしませんでした。なんとか,瀬戸大橋が開通する前になって,申し訳程度にキハ185系と121系が投入され,複線化と電化が進むようになりました。まだこのときは宇多津駅は地平の駅で,木造の古い駅舎でした。古いもの大好きなiruchanは写真を撮っておけばよかったと後悔しています。

とはいえ,民営化前に投入されたキハ185系は電車の185系同様,快速列車としても使うことが前提,というコストダウン車で,結局,いまいち特急用としてはアコモも性能も不足だし,快速用としてはオールクロスシートで扉が2扉じゃ使いにくい,ということで九州に売却されたりしていますね。どうも国鉄時代,特急と快速を共通運用にしてコストダウンを図る,ということを考えていたようで,"踊り子" 用の電車の185系もそうでしたが,さすがに通勤時間帯には使用しない,と言っていた割には夕方の通勤時間帯に堂々東京駅に通勤列車として乗り入れてくるのには驚きましたけど。どうやら中京地区のキハ80系もこの考えで新型車にするつもりだった,という話を聞きました。やらなくてよかったです。

121系.jpg 121系

121系は当初はこういう水色の帯ではなく,赤色でした。まだ赤い帯の車両があったような気がしますが,iruchanが撮ったのは全部水色でした。民営化後に水色に塗り替えられました。と言って,実際は樹脂製のシール帯なのですが,はがすのが大変なため,そのまま上に水色の帯を貼ったようです。

今は121系もワンマン化改造され,スカートを履いていますし,側面にLED式の行先表示器が取り付けられています。中も製造時は4人掛けのボックスシートが並んでいたのに,一部ロングシートになっているのを見たときは驚きましたけど。

さらに,今後は例の川崎重工製のFRP製efWING台車を履き,制御器もインバータ式になって,形式も7200系と改められるようです。先日,琴平まで乗ってみましたが,空気ばねになり,インバータ制御なのでスムーズに加速し,乗心地も大幅に改善されていました。 

7200系.jpg 

    琴平行き1225M 7200系('17.3.30 高松)

さきほどの急行 "あしずり" が停まっているホームと同じホームだと思います。 屋根も替わっているんですね。

efWing台車.jpg efWING台車

時代も変わりましたね......。