スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


-------- --:-- スポンサー広告
USBバスパワー連動の電源制御
PCも細かい周辺機器が多くなると、いちいちそれらの電源を入り切りするのが面倒になってくる。昔PC-9821を使っていた頃はPC本体の起動/終了に連動してON/OFFする100Vコンセントがついていたので便利だったが、最近のPCには残念ながらそういう機能は標準搭載されていない(ひょっとしてうちのだけ?)。

ただし最近のPCには標準でUSBポートがついている。このUSBの バスパワー(出力DC5V・MAX500mA)がPCの起動/終了に連動しているならそれを利用して外部機器を連動制御できるはずだ、ということで手持ちの部品で作ってみた。(なお、世の中にはPCが終了してもUSBバスパワーを切らないマシンが存在するらしい。残念ながらそういったマシンでは記載のような制御はできないので、事前に bus-GND 間電圧のチェックが必要。)

【回路図】
クリックで拡大表示

・バスパワーで フォトトライアック の1次側に微少電流を流し、2次側に繋がるリレーを駆動することによって外部より引き込んだAC100V電源の接点をONするしくみ。

・USBポートを外部制御のために占有してしまうのはもったいないので、延長ケーブルから電源を拾うことで他のデバイスのポート利用を可能にした。バスパワーから拝借するのはせいぜい10mA(定格の2%)程度なので定格いっぱいの電流を使用するデバイスでない限りは接続利用に全く支障ないといえる。

・フォトトライアックは当初ゼロクロスタイプの MOC3041M でテストしていたが、最終的には非ゼロクロスタイプ S21MT1 を使った。いずれも問題なし。ちなみに前者は2個100円、後者は4個100円(秋月電子の価格)。

・ケースは透明なポリプロピレン製のミニタッパーを使用。私は最近この材料を好んで使うが、その理由は絶縁性、加工性、経済性のメリットに加えもう一つ、メンテナンスが楽だということ。下の写真参照。蓋を背面にして固定するのがポイントで、こうすると容器側の脱着はいとも簡単!同サイズ容器で作った別機能のユニットと交換するのもあっという間にできる。

クリックで拡大表示


完成&取付完了(下写真)。制御も良好。写真よりも実際のLED光のほうがだいぶ明るい。熱がこもるようならケース側面に穴明しようとも思ったが、単純な連続使用では温度も上がらずその必要はなさそうだ。

クリックで拡大表示


スポンサーサイト

タグ : USB LED バスパワー フォトトライアック ゼロクロス ポリプロピレン タッパー デバイス

2008-11-06 21:13 USB
直流電源の改造
高効率かつ小型の スイッチング電源 が全盛だけれども、学生の時に最初に作った シリーズ電源 は数々の改造を経ながら今も当方では現役である。出力電圧を可変してちょっと実験するのに重宝するし、なにより回路が簡単なので気が向いたときに手持ちの部品ですぐに手を入れられるところがいい。

最近 秋月電子 の通販サイトで部品を拾っていたら 「低損失タイプの可変型レギュレータ PQ20RX11」というのが目に入り、出力電圧の可変範囲が広いのでこれを使ってまた直流電源を改造してやろうということになった。目標はできるだけ低い電圧からできるだけ高い電圧まで可変できること(笑)。といってもトランスは今回変更や追加しないので最大値の拡大は望めないが。

改造後の回路は以下の通り。汚い手書図で記号もJISに準拠していないけど、PQ20RX11 の応用資料がWEBには少ないようなので参考になれば。
クリックで拡大表示

<製作メモ>
・PQ20RX11 の2番ピン「ON/OFF制御端子」は図のように1番ピン「入力端子」に直結すれば出力が有効になる。ただし、入力電圧がある程度平滑化できていないとONにならないので要注意。

・出力部の3連ダイオードは降圧用。微少電流時におけるダイオードの電圧降下が小さかったのでとうとう3つになってしまった。

・出力電圧のHigh-Lowモード切替は4回路切替トグルSWにするのが理想だが、高価なので安価な2回路切替SW2個をアームで連結。リレーを使う手も考えたが、多極切替ものは結局高価なので却下。

・High-Lowモードそれぞれの可変範囲はR2~R5の抵抗値の組み合わせで決まるが、EXCELワークシートを使いこれをシミュレートした。公開するので必要な方はご利用あれ→ ◆可変電圧電源出力シミュレーション
効率面から考えるとLowモードでの上限をできるだけ上げて、その分Highモードの下限をかさ上げしてやるのが妥当だが、実験用用途ということもあって今回はLowモードにおけるスケーリングの快適さを優先した。

・結局今回の改造でDC1.5~12Vの可変電源になった。実際には無負荷でMAX16.5V位出ているが、負荷が大きくなれば上限は下がってくるだろう。こうなると次は電流をモニターするためのメーターをつけたくなるが、いかんせんパネルメーターは高いので格安のデジタルテスターを買って配線で専用に組み込んでしまおうかと画策中。

クリックで拡大表示


タグ : PQ20RX11 レギュレータ 直流 電源

2008-11-04 18:48 電源
AVRで1秒を出力
Atmel社の AVR シリーズはコストパフォーマンスに優れた ワンチップマイコン。中でも ATtiny2313 は1個100円(秋月電子通商)という安価にもかかわらず小規模制御に利用できる十分な機能を有しており、対応するフリーの開発ソフトが沢山あることやプログラムライターが簡単に自作できるなどのメリットがある。

小規模制御といえども欠かすことのできないのは「時間処理」。ワンチップマイコンに書込むプログラムではもちろん「遅延命令」が利用できるけれども、単純にこれを使ってしまうと他の処理を滞らせることにもなりかねない。多少PLC(シーケンサ)ライクに使うためには時間計測をメイン処理ループと分離させた方がベターで、AVRでは内部機能である「ハードウェアタイマー」を利用することでこれを実現できる。

ただこの「ハードウェアタイマー」の概念がなかなか取っつきにくいため、以下に簡単にまとめてみた。マイコン学習を始める人の一助になれば。

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

・ハードウェアタイマーを動かす基準は内蔵オシレータや外付けした発振子が発生させる周波で、分周波を1に設定すると周波の波1つがタイマーの1カウントになる。分周波8の場合は波8つで1カウント、分周波64の場合は波64個で1カウント。

・ATtiny2313 は「Timer0」と「Timer1」の2種類のハードウェアタイマーを持っていて、前者は256カウントでオーバーフロー(いわゆるタイムアップ)、後者は65536カウントでオーバーフローする。オーバーフローが発生するとそれをタイミングにして割込処理を実施できる。ただオーバーフローはPLCのタイムアップと異なりタイマーのカウントは基本的には止まらない(タイマー停止命令で止めるまでまた0からカウント)。なのでどちらかというとタイマーと言うより鳩時計に近い(笑)。またカウント値はそれぞれの名前の変数で随時取得ができ、カウント値を変更することもできる。

・例えば内蔵オシレータを利用(既定)で1MHz(1000000波/秒)をクロック周波数に設定し、Timer0で分周波を64にして使用する場合、1000000÷64÷256=61と余り9、即ち61回オーバーフローしてさらに9カウントしたら1秒ということになる。実際はオシレータ発振誤差や命令処理に消費するロスタイムがあると思うがここではそんなことは無視(笑)。

・以下に、1秒毎に赤LEDをフラッシュ、10秒経過毎に緑LEDが点灯/消灯を繰り返すプログラムの例を記載した( BASCOM-AVR でコンパイルする場合の記述)。当方の ブレッドボード では時間誤差も見られず気持ち良くLEDが点滅している。

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

$regfile = "ATtiny2313.DAT" ' 使用するチップのデータファイルを指定
$crystal = 1000000 ' クロック周波数を1MHzに指定
Config Timer0 = Timer , Prescale = 64 ' Timer0を分周波64で設定
Config Portb = &B00011000 ' ポートbのビット3から4を出力に設定
Config Portd = &B00000000 ' ポートdの全ビットを入力に設定
Portd = Bits(2) ' ポートdのビット2(割込用ビット)の内部抵抗をプルアップ
On Timer0 Tout ' Timer0がオーバーフローしたときの割込実行先を指定
On Int0 Prb ' 割込用ビットのPBをONした場合の割込実行先を指定
Enable Timer0 ' Timer0による割込を許可
Enable Int0 ' Int0による割込を許可
Enable Interrupts ' 割込を許可
Dim B As Byte ' オーバーフロー変数をバイト型に指定
Dim C As Byte ' 秒変数をバイト型に指定
Stop ' Stopの記述はそこでの永久ループを意味する

Tout: ' Timer0がオーバーフローした時に割込実行されるサブルーチン
B = B + 1 ' オーバーフロー回数を変数Bに追加
If B = 8 Then ' オーバーフロー回数が8回なら、
Reset Portb.3 ' ポートbのビット3(赤LED)をOFF
End If
If B = 61 Then ' オーバーフロー回数が61回なら、
Do ' (ループ起点)
If Timer0 >= 9 Then ' Timer0のカウントが9以上で、
B = 0 ' オーバーフロー回数変数Bを初期化し、
Gosub Ldisp ' サブルーチン「Ldisp」の処理をして、
Exit Do ' ループを抜ける
End If
Loop ' (ループ終点)
End If
Return

Ldisp: ' 1秒経過ごとに実行されるサブルーチン
C = C + 1 ' 秒を秒変数Cに追加
If C = 10 Then ' 10秒たったら、
Toggle Portb.4 ' ポートbのビット4(緑LED)を反転し、
C = 0 ' 秒変数Cを初期化
End If
Set Portb.3 ' ポートbのビット3(赤LED)をON
Return

Prb: ' 割込用ビットのPBをONした場合に割込実行されるサブルーチン
Set Portb.3 ' ポートbのビット3(赤LED)をON
Set Portb.4 ' ポートbのビット4(緑LED)をON
Bitwait Pind.2 , Set ' PBがOFFになるまで待機
Reset Portb.3 ' ポートbのビット3(赤LED)をOFF
Reset Portb.4 ' ポートbのビット4(緑LED)をOFF
Timer0 = 0 ' Timer0のカウント値をリセット
B = 0 ' オーバーフロー回数変数Bを初期化
C = 0 ' 秒変数Cを初期化
Return

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

タグ : AVR ATtiny2313 マイコン PLC シーケンサハードウェアタイマー ブレッドボード BASCOM

2008-11-04 01:29 マイコン応用
RBIOのノイズ対策
これまでいくつか RBIO制御ソフトを制作してきたが、接続負荷に起因するノイズがこの制御に悪影響を及ぼすことは早くから認知していて、解決すべき懸案事項になっていた。

その後様々なテストと実験で有効な成果が得られたので以下に簡単にまとめる。当方制作ソフトのユーザー皆様の参考になれば。

【制御条件】
・USB接続の RBIO-2U を使用。
・RBIOはDC12V駆動、基板出力リレー(以下、1次リレー)にDC12V高容量リレー(以下、2次リレー)を接続しAC100Vを切替る。
・過電圧 サージ 対策としてRBIO取扱説明書に記載されている バリスタ を設置。

【負荷の種類と影響】
・負荷を接続せずRBIO基板だけの制御では不具合は発生しない。
・白熱灯やヒータなどの 抵抗負荷 では定格Wの値によらず制御不具合は発生しない。
誘導負荷 を接続すると製品によっては制御中のプログラムの動作が異常停止(フリーズ)し、USBケーブルを抜き直すまでリセットがかからない状況になる。
・制御方向はON/OFFを問わず発生するが、常に発生する訳ではない。起点以外(連続駆動時)でも発生している可能性有り。
・特にモーター駆動を伴う家電を負荷としたときに起こる傾向が強い。ただし定格Wによる傾向は見られない。当方の調べた中では海外製の激安扇風機(46W)がもっとも頻発し、この負荷を以降の主な実験対象とした。

【異常箇所の特定】
・制御プログラム上で通信リトライやポート開放によるリセットを試みても不具合が回避できないことや、無負荷での制御に不具合が発生しないことからプログラムの問題ではない。
・異常発生時、RBIO基板のLEDは赤(エラー)ではなく緑(正常)。基板のリセットPBを押しても復帰できないが、USBケーブルの抜き差しすると復帰できる。これらのことからRBIO自体ではなく、USB(通信)に異常をきたしていると考えられる。

【原因と対策】
オシロスコープ でリレー開閉サージを測定したが、既にバリスタが接続されていることもあってとんでもなく大きな過電圧は見られない。また開閉サージの大きさはタイミング等により毎回異なるけれども、その大きさと制御不具合の発生に規則性は見られなかった。ただサージ等の電圧変動はできるだけ小さくしておくことが肝心だと考え、100V接点のバリスタをバリスタ電圧220V→150Vに変更。
・1次リレーと2次リレー間を フォトカプラトランジスタ で電気的に分離させたところ、制御不具合の発生する回数は大幅に減った。ただし何度かに1回は依然発生する。いろいろ調べてみるとフォトカプラも完全なノイズ非伝達というわけではないらしい。このあたりになると当方のオシロスコープごときでは原因波形の特定は難しくなってくる。見えない敵はなかなか厄介だ。
・その後さまざまなノイズ対策資料を読み漁り、いろいろな種類・大きさの部品をつけてははずしで効果をはかる実験を繰り返した結果、フォトカプラ出口部にノイズ吸収を見込んだ パスコン(電解数十μF及びセラ数十pF)を設けることで遂に制御不具合の完全回避に至った。特に容量の小さな セラミックコンデンサ(物も微小!)が絶大な効果を発揮するのには当方も驚いたが、これにより敵の実像が浮かび上がってきた。

【結論】
・RBIO-2Uで誘導負荷を制御する場合にはサージ対策に加え、高周波ノイズ対策が必須。これを怠るとUSBが制御不能(フリーズ)になる場合がある。
・本当は負荷となる家電側できちんとノイズ対策されていて然りだと思うが、昨今のものづくりの現実を見せられているようで、なんともやるせない。

タグ : RBIO 誘導負荷 ノイズ サージ バリスタ フォトカプラ トランジスタ パスコン オシロスコープ

2008-11-03 19:35 RBIO
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。