デジタル調光器をPICで作る?


過去の作成顛末はここにあります。以下は最新版になります。



電子工作に手を出した人であれば必ず?作るであろう調光器‥ 市販品は種類が少なく、自作した方が安あがり+大電力の制御が
出来るというまさに電子工作するためにあるような代物です。完成品の方が自作品より安いのが当然‥という世の中にあって
これはすごいと思われます。大電力の交流エネルギー制御を高効率で、しかも超格安で実現できるという
技術的や価格的な面で見ても無敵と思われます。


とある理由で調光器が必要になり、久しぶりに作ろうと思いましたが、以前出力調整用ボリュームをさわって感電したいやな
思い出があるので今回は、制御回路を絶縁化して感電しないような構成にしようと思いました。ついでにPICで
制御できたら面白いだろうといろいろやったら以下のようなブツが(ry



正面から見た様子。液晶画面付になっています。ボタン1個とロータリーエンコーダ1個のシンプルな操作系。





動作中の様子。液晶画面左上から交流の周波数、隣には動作モード(パワーカーブ)を表示し、右側には出力を0〜100まで%で
表示しています。液晶下の段はタイマーの残り時間と現在のON/OFF状態の表示





中身は↓の通り。5cm角の基板で作ってあるのでサンハヤトの10cm角基板でちょうど4つ作れる大きさです。





○主な操作法とタイマー機能について

"→"が液晶画面上に表示されていますが、ロータリーエンコーダーを回すと"→"で表示された項目のみ値が変わります。
ボタンを押すと"→"の位置が変わります。
↓の例では電源投入直後ですが、出力値(0〜100%)を変更している所です。




ボタンを1回押すと"→"の位置が変わり、今度は出力比例項目(パワーカーブ)を選択する状態になります。




ボタンをさらに押すと 今度はタイマーの時間設定をする状態になります。タイマーの時間は日、時、分、秒それぞれ
設定できます。最大で9日23時間59分59秒まで設定できます。
↓の例では日を変更している所です。



↓の状態では現在の調光器の出力がONかOFFなのか選択する様子です。OFFだと出力が全くでなくなります。
タイマーが残り時間1秒→0秒に変化した時このON/OFFの設定が切り替わります。
あと、LCDの下段のどこかに"→"があるとタイマーが止まります。そうしないとタイマーの設定がやりにくいので





タイマーあり版の操作シーケンスは以下の通りです。基本はボタンを押すと操作できる項目を変更し
ロータリーエンコーダーを回すと値が変化します。






タイマーなし版の操作はもっと簡単。ボタンを押すとパワーカーブが変わりロータリーエンコーダーを回すと
出力が変わります。手っ取り早く調光のみ使いたい場合にオススメです。その他調整モードに入る方法などは同じです。
液晶画面の下半分はバーグラフになっていて出力値をバーの長さで近似的に表示します。


操作画面は↓の通り。



回路図(16f1827版)は↓の通り。PICのA/Dコンバーターに交流と直流電圧基準(2.5V)を入力して交流の位相を計算しています?。
2.5Vの基準はTL431を使ってもよし、LM317を使ってもよし‥今回はTL431を使っています。自分もそうですが
スイッチング電源を自作しているような危ない方々じゃないとなかなかTL431の出番はないですね。
部品庫の肥やしになっていたTL431の出番がやっとやってきた(笑)



回路図(16f1823版)は↓の通り。端子も使い切り、ROMも使いきり‥バグがあったら対応できない状況が(汗



↓は16f1823版ソフト制作時の画面 画面右上の円グラフに注目 2041/2048(word)消費して追加できる命令はあと7個
切り詰めればあと数word確保できますがそれでも火の車なのは一緒(orz おまけにコンパイル画面に "program word too
large truncate to code size"とか表示されているし大丈夫か?



交流の1周期を400分割してON/OFFするタイミングを制御しています。なので、正確に交流の周期と400分割するタイミングが
同期しないと出力がでたらめになってしまいます。 この対策として、PIC内部の割り込みタイマーの周期を常に補正して
交流の周期と同調するようになんちゃってソフトPLL機構を組み込んでいます。
計算上では39Hz〜65Hzの間で追随できるはずですが‥50Hz入力しか試していないので‥本当に関西方面の60Hzとか動くのだろうか?
とりあえずSGを使ってなんちゃって交流をPICに入力し、それらしい出力波形が出てきたのでOKとしていますが




○作成後の初期設定その1 A/Dコンバーター基準入力レベル調整法

ボタンを押しながらロータリーエンコーダーを回すと、下記のステータス表示画面になります。
上段右の61〜62の値を示している部分はソフトPLLタイマーの値で50Hz地域では60〜62、60Hz地域では92〜95の値を
示していると思います。もし、範囲外だったら、基準入力レベルが低すぎるか、ノイジーな交流を受電しておかしくなっているか‥

下段の左側2つが基準入力レベルです。最小値と最大値を表示していて最小値が30以下の値に、最大値が220以上の値になるよう
基準入力レベルの半固定ボリュームを調整します。願わくば最小値が10位、最大値が240位になると最高ですが、最小値が0または
最大値255の場合入力オーバーレベルでpicが壊れますので
ご注意下さい

下の段右側2つは2.5V基準入力レベルの最大値と最小値です。picの電源が5Vなので2.5Vの基準は丁度半分なので256*0.5=128辺りの
値を示しているはずです。もしこの値が117以下もしくは137以上だった場合、回路に問題があるかもしれません。
回路図の注意事項にも記入しましたが、2.5V基準生成回路の抵抗値が大きいと交流の電圧に振り回されて変動してしまいます。
そうすると2.5V基準入力レベルの最大値と最小値の値に差が生じます。1位の差なら大丈夫ですが5位の差が発生すると
交流出力波形が対称でなくなる‥つまり100V交流出力に直流分が出力される可能や調光タイミングのばらつきなどの問題が
発生しやすくなります。




○初期設定その2 ガードタイムと位相タイミングオフセット設定 ついでにDCオフセット調整も


本調光器はトランスの2次側から位相制御するタイミングを取り出しています‥が、この信号をそのまま使用して位相制御すると
負荷がランダムに大出力になったりするという症状を起こし使い物にならなくなります。主にトランスの漏れインダクタンスによる
位相遅れの影響です。なのでトランス2次側を基準に1次側の100VをON/OFFするにはタイミングの補正がどうしても必要になります。


まずは出力100%に設定して、ボタンを押しながらロータリーエンコーダーを回します。そうすると、↓のような詳細タイミング
設定画面になります。左上からガードタイム設定 中央が位相タイミングオフセット 一番右が現在の出力値(0〜100%)です。
下の段は左側から DCオフセット調整 設定値の保存 本調整の終了になっています。
モード変更ボタンを押すと→マークが移動し、変更したい項目が変わります。ロータリーエンコーダーを回すと数値が変化します。




まずはガードタイムを0 位相タイミングオフセットを0、そして現在の出力値を1(%)に設定します。
この状態で負荷に白熱電球を繋ぎ、点灯、もしくは点滅していなかったら、よほど優秀なトランスを使っているか、もしくは
回路が壊れてます。
トランスの2次側に制御回路が接続されていますが、トランスを経由すると100V入力側に比べて位相が必ず遅れます。
なので2次側を基準に1次側の100VをON/OFFすると望まないタイミングでONOFFしてしまいます‥
図にすると↓のようになります。この例では1%出力に設定した場合です。


そして出力は遅れたタイミングで制御するので↓のようになり‥1%出力に設定したはずが100%フルパワーに近い状態になると言う。



これでは困るので位相タイミングオフセットをプラス側に数値を増やします。そうするとON/OFFのタイミングが早くなるので
次第に電球の点滅が減ってきます。
手持ちの機器では+4位にすると電球の点滅が無くなりましたが、出力値20(%)付近で変な点滅動作をしたので、余裕を見て
+6位の値にしています。あんまり数字をプラス側に大きくすると、100%負荷時に100%にならないとか、1%負荷に設定しても
10%負荷になるといった出力不連続が発生するので注意して下さい。


さっきのタイミングで図示すると↓のようにトリガパルスのみ早くなり


↓のように出力が正常な値になります。



○ガードタイムの設定について
上記の位相タイミングオフセットの調整をすれば多分実用上問題無い動作をしますが、キタナイ交流を受電しているとか
高調波を大量に吹きまくる負荷に接続するなど、悪環境で使用するとAC100V入力の波形と位相が狂う可能性があります。
そうすると先の1%負荷に設定した時のように、突然100%負荷になってしまう問題が起きかねないので、ガードタイムと言う
強制的に出力を出さない時間帯を作ります。

↓の例ではガードタイムを設定した100%負荷時の波形です。ゼロクロス付近にトリガーパルスの出ていない時間帯があります。
ガードタイムを1増やすと200を中心にして前後1パルス分だけ空白時間が増えていきます。


‥なので、突然100%フルパワー病(笑)が発生しなければ、ガードタイムは0のままで問題ありません。



○DCオフセット調整について

過去の作成顛末の記載した回路には"正負の消費電力バランス取り回路"なる謎の回路が付いています。これは調光器の
電源トランスの交流出力を正側と負側対称に?電力消費する事を目的として付けています。なんでこんな回路が付いてるかと言うと、
正側と負側対称に電力消費しないとトランスの1次側と2次側で測った中点="交流電圧が0Vになる点"がずれてしまうからです。
というとトランスのせいみたいな誤解が生じてしまうので正確に言うと回路図上の50〜60HzBPFに使っている25V4.7uFのせいで
中点がずれます。
イメージ波形は下の通り 青の線が100V入力で赤の線がトランス2次側の波形です。半波整流回路を使用しているので
波形の上半分だけ使用して、なおかつその一部だけ整流して使っています。なのでその間だけ電流が流れ巻き線抵抗による
電圧降下が発生します。



↓はその拡大波形です。50〜60Hzフィルタ内にある25V4.7uFを通ると直流は通らないのでこの歪んだ交流波形の
平均を中心にして上下に振れるようになるので緑線のようにずれてしまいます。そうすると交流正負の波形が
正側に多く流れ負側に少なく流れるように見えてしまいます。このずれがAC100のスイッチタイミングのずれになり
していはAC100V出力に直流分が発生する原因となります。




なので↓みたいな回路で組めばDCオフセットの問題は解決しますが‥高額なトランス2個必要なので
価格的な問題で悩むわけです。もしお金に余裕があって完璧を期したい場合にはトランス2個使う回路をお勧めします。


        DCオフセット問題を解決した?回路 部品代が(ry


‥で話を戻して安上がりに済ましたい場合、この中点ずれを計算でずらせば良い訳でそれが今回のDCオフセット設定になります。
交流入力側の測定値に常に足しり引いたりする事で擬似的に中点を保ちます。



 DCオフセット調整法

中点ずれした調光器から必ず交流の正負波形の非対称な直流分を持った出力が出てきます。それを交流カットする
フィルタを通して測定すれば負荷に掛かる直流分の電圧とその補正が出来る事になります。
下記の回路を調光器の負荷に接続します。100Vの非絶縁回路を測定するので感電に注意します。コンデンサの耐圧は
16Vもあれば十分です。電解コンデンサを使う場合には両極性NPコンデンサを使用します。
電圧計にはデジタルテスタを使用してDCレンジにします。アナログテスタの場合には針を振らせるだけの電力が
確保できないかもしれません。





DCオフセット測定風景 
まず上記回路を調光器に接続し、出力50%に設定します。パワーカーブは"ヒーターヨウ"以外なら何でもOKです。
ちなみにこの出力の時、交流の非対称性が最大になります。



DCオフセット値0の時0.46V‥大きいような小さいような微妙な値。この程度であれば負荷としてトランスを繋いでも大丈夫な
気がしますがとりあえず調整してみます。



DCオフセット値-1にした場合、0.05Vになりました。長時間測定していると-0.2〜0.05Vの間でふらふら動く時があります。
殆どの時で0.05Vを指し示していたので大丈夫でしょう?



DCオフセットごとの値は↓のようになりました。DCオフセットが4とか-7などの値になると負荷として繋いだ電球が異常点滅して
明らかに動作がおかしいです。-1に設定するとテスタの値が0.05Vになりかなりよい感じになります。


DCオフセットごとの測定値をグラフにすると↓の通り。直線的に変化するようです。



という訳でDCオフセット調整すると調光器のAC100出力から直流分が消えます‥という話でした。調整しなくても0.5V程度なので
大丈夫なような気もします。今回使用したトランスがトヨデンHT-61(6.3V1A)なのでこの程度で済んだとも言えます。トランスが
大きいほどDCオフセットの値が小さくなります。調光器の消費電力が小さいのでトランスも小さく‥としたい場合、間違いなく
DCオフセット調整が必要なのと、調整し切れない分の直流分出力がそれなりに出る事を覚悟しないといけないです。



最後にSAVEの項目に矢印を合わせてロータリーエンコーダーを回すと、PIC内蔵のEEPROMに値を書き込まれます。
次回電源ON時に自動的に設定した値が読み込まれます。 EXITを選択してロータリーエンコーダーを回すと通常動作に戻ります。
記録されるのはガードタイムと位相タイミングオフセット、DCオフセット調整値です。現在の出力値は保存されません。






○動作モード(パワーカーブ)がいろいろあるけど‥何で?

調光器を使ってモーターとか、電球を制御すると、ボリュームの回転角度と出力が比例しないと思います。
比例しないのは、位相角度(ボリュームの回転角)と出力電圧が比例しないからです。
なので、ボリュームを回して出力を上げていくと、突然モーターが回りだしたり、電球が明るく光り出したりして、制御がしづらくなります。


 種類  機器の名前 備考
位相角比例 感電時間(笑) シビレた 
電圧比例 テスタの電圧計(整流型、可動コイル型) モーターの回転数 俗称 平均電圧比例
電圧2乗比例 テスタの電圧計(可動鉄片型)、ヒーターの消費電力 俗称 電力比例 
電圧3乗比例 モーターの消費電力、電球の明るさ(3.4乗に比例?) 俗称 速度比例 
交流パルス間引き ヒーターに使うと"ジー"という調光ノイズ音が小さくなる ヒーターのみ使用可能 


位相角とそれぞれの機器の能力の関係をグラフ化すると↓のようになります。位相角50%付近で大きく値が変化しているのが分かります。




上記の各々の機器を位相角に比例するようにするには、逆関数にして↓のグラフになるように制御します。
グラフがガタガタなのは‥今回作成した制御プログラムに合わせて位相角を0.5%刻みでグラフ上にプロットしたので。



○交流パルス間引きとは?

普通の調光器は交流の1周期間にONになる時間(位相)を増減する事で負荷に供給する電力を制御します。
この方法とは別に交流のパルスを間引き運転することで負荷に供給する電力を制御する方法もあります。これが交流パルス間引き運転です。
本調光器では液晶画面上に"ヒーターヨウ"と表示されます。このモードの利点はヒーターに使用すると普通の位相方式調光時に発生する
"ジー"というノイズ音が小さくなることです。欠点はトランス負荷に接続した際よっぽど条件が良くないとトランスが
磁気飽和して大電流が流れてしまう事、電動工具につなぐととんでもない動作をする事、電球につなぐとフラッシャーみたいに
点滅する事
など、使用条件がかなり限定されます。不用意にこの動作モードに入ると事故火災の原因になるので、やたらに
この動作モードに入らないよう出力0%設定時のみこのモードが選択できるようにガードを入れてあります。
まぁ電球につないでフラッシャーみたいに使うという手もアリですが、果たして耐えうる電球(LEDを含む)がこの世にあるかは?


交流出力波形のイメージは↓の通り これは100%出力設定時


50%出力設定時は1個ずつ間引きされます


25%出力設定時は3/4間引きされます





○交流パルス間引きモードでトランスを負荷として繋ぐとどうなるか?

交流パルス間引きモードでトランス負荷に接続するとどの位励磁電流が流れるか、位相オフセットの設定値を変更しながら測定しました。
調光器の入力にワットチェッカーを接続して電流値を測定します。負荷として繋いだのはいつも実験用電源として使っている電源装置。
トランスの定格は多分15W程度と思われます。
↓の測定値で調光器込みの電流値で0.12(A) 内訳は調光器0.04(A) 負荷のトランスには0.08(A) 調光器の出力は100%なので
全く間引き無しの状態です。



50%間引き状態にすると全体で0.49(A)‥という事は負荷のトランスには0.45(A)も流れています。このまま放置すれば間違いなく火事だな



位相タイミングオフセットの設定値ごとの全体の電流推移は↓のようになりました。出力は最悪条件の50%出力に設定しています。
表には負荷としてトランス以外にも電球を接続した場合や位相比例の一般的な調光方法で電球を繋いだ場合の様子も列挙しました。
位相タイミングオフセットを0に設定した時最大1.36(A)も流れています。さすがにこんな大電流ともなると測定中に火柱が立つのではと
覚悟しました。スイッチング電源を自作したりするといやなニオイとか火柱とかFETが音速で飛んできたとか日常茶飯事ですが
調光器でそれはやりたいないので‥あと、年末年始の寒い時期に宿無し屋根なしになりたくないというのもあります(ry



位相タイミングオフセットごとの電流値は↓の通り。今回繋いだトランスが15W程度の変換能力だとして0.15(A)程度が限界なのに
0.5(A)程度流れています。軽く見積もって3倍 トランスの銅損は1次側だけで見積もれば3^2で定格の9倍!!!


‥という訳で交流パルス間引きモード"ヒーターヨウ"時にトランスを負荷に接続しないようにしましょう。





○使用できる機器と使用できない機器


技術的かつ価格的な面で見ても無敵と言っておきながらあまり市販されていないのは、使える機器がすごく限定されている為です。
使えない機器に無理やり使うと‥まぁ火事だな(笑)


まずは使えそうな機器から

 その1 白熱電球 期待できる効果‥明るさ調整 ↓の画像ではすごく暗いので寝室にぴったり




 その2 風量調整の無い単細胞ビルトイン換気扇(コンデンサーを使わないくま取り型モーター使用に限る) 期待できる効果‥風量調整
      これはオススメ
                   ただしレンジフード内臓の換気扇は始動コンデンサーを使っている物が多いので不可

      良く調べてみたらビルトイン換気扇もレンジフード内臓換気扇も始動コンデンサーを使っていたと言う。
      とりあえず使えますが、耐久性的にはどうなんでしょ?




 その3 ニクロム線だけを使った単細胞電気コンロ(IHは使用不可) 期待できる効果‥火力調整でトロ火ができる。
     いつまで経ってもお湯が沸かない など
                                      それにしてもキタナイなぁ たまには掃除しないとOrz




 その4 電気ストーブ(扇風機内蔵型は始動コンデンサーを使っていない物に限る) 期待できる効果‥温度調整




 その5 電動工具(ブラシ付モーターを使っていて、電動工具に調光器が付いていない物に限る) 期待できる効果‥速度と出力調整
     これは超オススメ
     ただし、"ヒーターヨウ"モードにしない事。ヒーターヨウモードにすると電動工具が強烈に振動し操作が難しくなります。






以下、使えない機器

 その1 卓上扇風機 期待できる効果‥うなり音と始動コンデンサーの爆発
           ただし、マイコンを使っていない+始動コンデンサーを使っていない超古い機種なら使えます。

           20年位前にマイコンを使っていない卓上扇風機に調光器を使ったら始動コンデンサーが爆発した
           いやな思い出があるので全くお勧めしません。





 その2 電球型蛍光灯 期待できる効果‥制御回路部品の破裂音といやなニオイ
               ただし、調光器対応と銘打ってあれば使えます。





 その3 電球型蛍光灯(鋼鉄トランス内蔵型で重たい旧式タイプ)やインバーターを使っていない蛍光灯機器
     期待できる効果‥うなり音と超短寿命





 その4 LED電球 期待できる効果‥激しい点滅と制御回路のは破損?
               ただし、調光器対応と銘打ってあれば使えます。



その他 マイコン使用機器やテレビ、ラジオ、洗濯機とか‥使う人はいないと思うけど、危険なので使用しないで下さい。



これと同じ物を作る場合、100Vを直接制御する回路なので特に注意して製作してください。まず最初は火を噴く可能性の
無さそうな60W程度の白熱電球を負荷として接続してテストするとか‥サングラスを掛けて電源ONしてとりあえず目だけは保護するとか

出力波形から見ると誘導負荷だとOFFタイミングがズレて動作が怪しいです。抵抗負荷なら問題無いようですが‥



それに、変な機能も追加しました。出力77%選択時にボタンを押しながらロータリーエンコーダーを回すと‥‥
↑を初めて試す場合、負荷に必ず白熱電球か調光器対応LED電球を使って下さい。間違って電動工具に繋ぐと悲鳴の原因になると言う

‥で、この機能何に使うの? さあ‥??? 少なくとも防犯灯にぴったりだと思います。


○ソースコードとhexファイル
16F1823(タイマーあり版)はソースファイル と 書き込み用HEXファイル
16F1823(タイマーなし版)はソースファイル と 書き込み用HEXファイル
16F1827はソースファイル と 書き込み用HEXファイル
    1827版はROMに余裕があるのでタイマーあり版となし版が統合されています。どうすると機能が変更できるのか?
    ボタンを押しながら電源を入れるとタイマーなし版になります

○コンパイルエラーについて
ソースコードをコンパイルするとMPLABのバージョンによってヘッダファイル(P16F1823.INC)の記述内容の差による"__config"エラーが
出ることがあります。"BORV_25"を"BORV_HI"にするとコンパイルが通ったりします。 全く以ってめんどくさい



------------------------------------------------------------------------------------------------------------------------------



○参考文献とか

マイコン制御ACパワーコントローラーの製作 トランジスタ技術1994年3月号 p369-376
                     この頃はマイコンボードにLSIが何個も付いてマイコン制御部分のIC代だけで
                     2000円以上したのが今では100〜150円のpic1個だけ 技術革新が目覚しすぎる
wikiのサイリスタ位相制御のページ
電子工作 31 PICでトライアックをコントロール
PICを使ったAC電力コントローラ(ハード編) PICの大御所 後閑様のHP
AC電力制御
グラインダー調速器 ヒーターモードのアイデアは此処から

あとはgoogleなど検索サイトで "調光器" とか "pic 調光器" "マイコン 調光器"とかそれらしい言葉で検索しまくる




最後に 何で4年ぶり調光器なんかつくってんのさ? と言われそうですが、なぜか需要があるのよ。身内とか仲間とかに‥
    そして材料費だけ貰ってほぼボランティアで調光器を作り続けているのでありました。

    調整や補正が必要‥?んな物は全部デジタル化や! みたいなデジタル補正万歳な作りにしてみましたがどうでしょうか?
    古典的な調光器を今風の作りにしてみましたが‥。アナログの一発芸的な性能出しも好きですが、やっぱり
    デジタルの方が性に合っているような気がします。何と言っても再現性が高すぎる





訂正・変更履歴


2015.04.22   初版
2015.04.22   測定波形追加
2015.05.13   追記
2015.05.15   アナログ調光器再改良
2015.05.27   ソフト修正+アナログ調光器を別記事に分離
2015.06.01   ソフト修正(タイミング設定機能追加)
2016.03.27   誤記訂正+機能追加(タイマー+謎機能)+16f1823版追加
2016.04.02   16f1823版完成の様子追記
2020.12.24   ヒーター用モード追加+タイマー動作変更+タイマー日付の桁追加
2020.12.31   DCオフセット機能追加


TOPページ inserted by FC2 system