工作の2S(Seiri/Seiton)

工作やプログラムでやったことをまとめていきます

コンデンサ溶接電源の自作 その4 ~そして蔵入りへ~

●結論

現行の設計では放電回路に問題があり、溶接できないことが判明しました。

とりあえず仕様

 コンデンサ:0.04F

 充電電圧:8V ~ 35V

 出力エネルギー:1.2J ~ 24J

 溶接時間:すべてを放電しきるまで

電圧をボリュームで設定する方式です

 

一応、壊れるまでの2回、サス棒の溶接に成功しました

結構頑丈で引っ張り強度はよく、ねじって取れるレベルでした

f:id:kt-marshal:20160515004552j:plain

 

また、前回よりバージョンアップしています

秋月DCDCの出力を35V(+5V)に変更しコンデンサも2倍盛り

f:id:kt-marshal:20160515005423j:plain

配線もモッコリーナ

f:id:kt-marshal:20160515005454j:plain

●問題の予想

状態として、最大出力時にFETの片側が壊れます。データシートを見ると壊れて当然です。

FET2個では200Aも流せない

2SK3271は定格100Aなので、最高パフォーマンスでも2個200A。

35V放電直後のIDは350Aを越えようとし、2SK3271(2パラ)では消化できない。後半はVgs4V代だったので駆動率が悪くなおさら。

チョコボール生産ラインのチョコボール流し量を4倍にされ

おまけに給料も安いのでラインマンが過労死するイメージです

 ※あくまでイメージで、チョコボール生産ラインがブラックかどうかは知りません

Vgs5VではIDが高く無視できないレベルのRonとなり半開きになるようです

また片側だけ壊れるというのは、Cissが9nFと高いのに対しRgs100Ωで駆動しているため、抵抗やらFETやらのばらつきによって感度の良いほうが先に焼けてショートするからもう片側は保護されるという感じなんだと思います。

 溶接SWオン

 ↓

 FET半開き

 ↓

 FETでロスしながら放電

 ↓

 かたっぽ壊れるドーン!

FETが短絡して溶接開始というスイッチ方式

 

2SK3271でやる場合、Vgsは9Vの4パラくらいにする必要がありそうです。

2SK3271を使ったのは家に転がっていたからです。

拾ったものを使うからです

 

 

保護回路がない

調べると、FETの出力段をコンデンサにクリップすることで発振(サージ?)を防止するような工夫があるようです。

Vgs低下時の故障を防ぐために電圧低下検出回路も必須でした。

 

●ということで次回は

・FETを増やす

・FETのVgsを上げる

・FETドライブ抵抗を小さくする

・2sqより太い線を使う

・OSコンも検討

 

今回でいろいろと だいぶ習得することがあり、次回は安心して使えるものが作れるような気がします。

商用電源を使用しない溶接機に次回もトライするつもりです。

 

●感想

楽しかったです

コンデンサ溶接電源の自作 その3

●電極を作る TAKE1

洗濯ばさみの両口にクロム銅の丸電極を接着で取り付ける方式です。TAKE1ということなので、当然この方式は失敗しTAKE2があるということです。けっ

写真のように洗濯ばさみの口に穴をφ4mmの開けます。適当にやったら1mmくらいずれました。

f:id:kt-marshal:20160509002755j:plain

電極はクロム銅電極φ4mmを使用します。

f:id:kt-marshal:20160509002801j:plain

電極は長いので、半分にするための金切のこをダイソーで買ってきました。

この商品は100円です。

f:id:kt-marshal:20160509002808j:plain

 

電極に電線をはんだづけします。ライターで400℃近くまで炙ります。

始め、鉛フリーはんだでやったら熱容量不足ではんだごてがはんだに埋まったので共晶はんだに変えました。

f:id:kt-marshal:20160509002813j:plain

f:id:kt-marshal:20160509002821j:plain

 

上下ともに配線し洗濯ばさみの穴に通した後、エポキシ系接着剤で固めます。

f:id:kt-marshal:20160509003518j:plain

洗濯ばさみを 常時開 Normally Open にするためにGクリップを使用しています。

f:id:kt-marshal:20160509003646j:plain

溶接をする前にトラブル発生

どうやら穴ずれ修正で穴を広げたせいか片側の電極の接着が弱く、閉じる力でひっこんでしまう感じになりました。ということで急遽方式を変えることにしました。

 

●電極を作る TAKE2

接着の弱い側を板形状のものにします。コンセントのプレートにすることにします。この材料が適正かどうかはわかりません。

 金切のこでコンセントプラグのプレートを切り、電線をはんだづけします。

f:id:kt-marshal:20160509004311j:plain

なかなかいい感じなので失敗したほうがよかったと思いました。

f:id:kt-marshal:20160509004347j:plain

 

●実力を確認する

いちおう9Jのエネルギーを300msec程度で出力する予定です。

K熱電対をカッターで剥き、交差させ洗濯ばさみではさみます

f:id:kt-marshal:20160509004524j:plain

f:id:kt-marshal:20160509011235j:plain

 

うんともすんとも言わないよ

 

波形を確認すると1段目のドライブ用トランジスタがオンしていないようです。

CH1:マイコン出力

CH2:トランジスタ出力

トランジスタ出力がマイコン出力L時にHになるはずが無視されている。

f:id:kt-marshal:20160509004805j:plain

どうやら前回30V線をマイコンに触れさせたときにトランジスタも死んだ可能性があります。ということで交換したところドライブ回路は直ったようです。

CH1:トランジスタ出力

CH2:FETゲート入力

f:id:kt-marshal:20160509004944j:plain

 

あらためて熱電対を溶接してみます。

 

溶接できると思ったのですが、どうも熱で軟らかくなった分へこんだだけのような感じです。(細かくて写真はとれませんでした)

 

●なんで溶接できないんじゃ

理論上コンデンサ電圧30V、20000uFで仮に出力抵抗を2Ωとした場合、メインパワー継続時間は下記のグラフのように100m秒程度になるはずです。

f:id:kt-marshal:20160509011052j:plain

f:id:kt-marshal:20160509014057j:plain

実際の出力波形は下記で、7msecで放電しきっています。

f:id:kt-marshal:20160509011223j:plain

f:id:kt-marshal:20160509014306j:plain

7msecで放電しきるということは100mΩ以下である必要があります。ほんとにそうなんかなと思ってしまう。そして、コンデンサ放電波形に見えないという。

 

明日も休みなのでトラブルシューティングアンドウ対応は明日にすることにしました。

 

 

 

コンデンサ溶接電源の自作 その2

その1の続きです。その1はすでにだいぶ前に行った作業のまとめのため写真が少ない内容になりました。

また、この記事は英雄伝説 空の軌跡FCのローディング時間を使用して作成しています。

●主要キャスト(登場部品)

コンデンサ10000uF, 50V 2個使用

大須のボントンで購入しました。

f:id:kt-marshal:20160505202444j:plain

Nch FET 2SK3271

職場で拾ったのでタダ!5V駆動できるのでちょうどよい。放電用のスイッチとして使用します。

f:id:kt-marshal:20160505203136j:plain

木の入れ物(雑貨)

セリアで購入。ケースに使います。側面の隙間にスイッチを並べられるかなと思ってこれにしました。

Now, At the top of happiness.というのは今がまさに最高にハッピーだぜ的な感じでしょうか。そいつはよかった。

そして、2というのも意味分かりませんね。

f:id:kt-marshal:20160505204342j:plain

プラスチックまないた

 これもセリアで購入。立派な樹脂板材料です。PPPは加工しにくいと聞いたことがありますがまあいっかという。今回は木に張り合わせるという用途なので肉用を選択。

f:id:kt-marshal:20160505205356j:plain

●基板をつくる

家にある基板やコネクタを総動員し基板を作成

電線出し作業はケースを買う前に行ったため短く、あとで電源スイッチの分を作り直すことになったり、押しスイッチの線がちぎれたりと大変でした。

奥のライターはスミチューブ用です。ドライヤーやはんだごての根っこより収縮しやすいのでオススメです。(火災の危険がありますので使用については充分注意してください)

f:id:kt-marshal:20160505205956j:plain

コンデンサは下記のように2sqKIVで配線。一点配線がいいような気もしますが、ブレッドボードでも問題ないレベルなので数配線にしました。

f:id:kt-marshal:20160505210417j:plain

はんだ面です。コの字の黒い線はコンデンサやFETのGND線で電源の近傍で落としています。

左上の2sq集中エリアでは線間0.5mmくらいのギャップではんだ付けされているため、ショートすると危ないのでホットボンドで充填しておきました。

f:id:kt-marshal:20160505210953j:plain

 

 動作確認しOKそうなのでケースに入れて配置を確認します

基板固定サポータもピッチが底の梁木とちょうどよくなりました。

コンデンサも2sqの強力なテンションで写真の位置で静止しました。このまま固定できそうです。電池は適当です。

f:id:kt-marshal:20160505211657j:plain

●スイッチパネルを作成する

ここでまないたの登場です。製造者もこんな使われ方をするとは思ってなかったでしょう。

まず、必要なサイズを切り出します

f:id:kt-marshal:20160505212222j:plain

角のRは隠れるので気にしません

f:id:kt-marshal:20160505212234j:plain

スイッチ用の穴をエンピツでけがきます。一般的に、メーカー資料に板金寸法として穴寸法が出ていますがめんどくさいので実測でいきます。

f:id:kt-marshal:20160505212405j:plain

角穴はカッターで切り抜きます。丸穴はカッターでは難しいので、ドリルでφ5を空け、リーマで広げます。

f:id:kt-marshal:20160505212605j:plain

最後にカッターを使用してバリ取りして完了。

 

やはりPPPはやすりの刃は立ちませんでした。おそらくリュータでも溶着すると気がします。(昔、職場のリューターをPPP削って目詰まりさせて放置したことがあるのは内緒)

ちなみに樹脂加工は目の粗い組やすりもしくは紙やすり、2番角のゆるいドリルがいいみたいですね。(そんなもんうちにはない)

 

●組み立てる

基板は貼り付けボスで固定しています。タカチの製品だと思います便利です。

その他もアクリルフォーム強力テープやホットボンドなどで固定しました。

黄色のスイッチの穴が大きかったのでホットボンドで固定しました。(仕事だったら怒られてましたね)

f:id:kt-marshal:20160505213242j:plain

f:id:kt-marshal:20160505213236j:plain

いろいろあって、30Vの線をマイコンの数ピンに接触させてしまい、マイコン1つおしゃかにしましたが、マイコンを交換し電源投入から放電までどうにか動いているようです。

 

●次回の計画

次は溶接電極を作る予定です。洗濯ばさみのように自動で閉まる機構にうまくクロム銅電極を取り付けれればと思います。

クロム銅電極はCMでおなじみミスミー!で買えます。ただしメーター単位だったと思いますが。

 

明日から仕事という暗黒の時代の幕開けなので、たいがいのことが滞りますが、時間を見つけて作っていこうと思います。

コンデンサ溶接電源の自作 その1

2016年5月14日 追記 この設計ではうまく溶接できないという内容をその4でまとめてあります。

●作ろうと思ったきっかけ

仕事の延長線上(遊び)で近藤テックのマイウェルダーを使って熱電対の抵抗溶接を堪能しました。

近藤テック*1マイウェルダー

f:id:kt-marshal:20160504132924j:plain

マイウェルダーは、単相交流をトランスを通して1周期流すというシンプルな構造でした。

今回はコンデンサ充放電式なので方式はマイウェルダーとは違いますが、熱電対の残りかすが家にあるので、溶接ができる電源を造ってみようと思った次第です。

 

ただ、溶接できたからといって日常生活で得することは全くないので、フリマとかで売りつけて、その金で焼肉でも食べれたらいいなと思っています。

 

●事例を調べる

ネットに結構事例がありますね。過去トランジスタ技術にも事例がありました。

Youtube動画だと実際に溶接する様子が見れてなかなか迫力あるマシンもありました。

人によって細かい違いはありますが、

 コンデンサに 充電して ドーン!

ということは共通しています。したがって、そこを念頭に適当に設計していくことにします。

●構成を練る

f:id:kt-marshal:20160504135743j:plain

昇圧DCDCでコンデンサに充電

フィードバック電圧をマイコンADで監視

充電完了で放電スイッチ点灯

放電スイッチ押下でFETオン!

 

昇圧DCDCには秋月電気のモジュールを使っています

最大30V出力 昇圧型スイッチング電源モジュール NJW4131使用: 組立キット 秋月電子通商 電子部品 ネット通販

●回路図

KiCADを使っての初作図です。

画像として出力する方法がわからず、svgpng → jpg(pngの背景透明がアウトっぽい)としたらギリギリ数字が読めるかなレベルになりました。f:id:kt-marshal:20160504144839j:plain

 

●プログラム

自作溶接1プログラム.zip - Google ドライブ

とってもシンプルになっています。(一言で言えば手抜き)

 ADC、Timer0、FVRの自作ライブラリも同梱しています

●検証してみる

ブレッドボードで検証をしました。(ブレッドボード写真はどっかいった)

放電すると電源電圧が瞬間持ち上がる問題

どうやらFETのソースを電源GND端子から遠いところに配置したせいで、急な放電電流により電位差がでていたようでした。根元に配線しなおすことでキレイに解決しました

また、波形右側のギザギザもコンデンサのGNDを同じく電源近くに配線しなおすことで直りました。

f:id:kt-marshal:20160504142825j:plain

 

実際に熱電対を交差させた状態で放電したところ、火花が散りくっつきました。

(画像があったはずがどっかいき、電対もどっかいった)

爆裂の一歩手前レベルのようでややもぎれ状態でした。レベル、加圧を管理できればきれいにつくのではないかと思います

 

次回は基板製作とケーシング、電極製作をめどにまとめる予定です

なんか画像がごっそり消えたような気がするのは気のせいかな

 

●溶接について思い出す

仕事の延長線(遊び)の中で溶接について簡単に勉強もしました。

  • 溶接電流
  • 加圧力*2
  • 時間

の3つを管理することが重要で、単純に I^2Rt[J] の発熱量Hの公式に当てはまります。(異金属であれば電流方向もペルチェ効果の影響を受け片側が溶け過ぎ、もう片側は溶け不足になるなどもある)

今回、時間と電流はコンデンサと電圧による成り行きで、ボリュームによる調整で決まりますが、加圧力は形式によってばらつくような気がします。

 

たぶん洗濯ばさみ的な物ではさめばいいんじゃないかなと思っています。

*1:参考リンク:http://www.kondo-tech.co.jp/kthlist.htm

*2:電極が溶接電流により溶けて軟らかくなるのに追従して電対を抑えることで空間を作らず一体化させる目的がある

PIC1823のTimer0モジュールまとめ

●Timer0モジュールを使う目的

  • ミリ秒のウェイト
  • メインループのFPS管理

ワタクシはTimer0の割り込みでカウンタをインクリメントしています

現在オーバーフロー対策がありません(そんなんでいいんかい!)

 

●Timer0モジュール

f:id:kt-marshal:20160502215516j:plain

f:id:kt-marshal:20160502220447j:plainFosc/4(左上)を青線のとおりに導いてクロック源とするために OPTION_REG を設定し、割り込みを有効化すればTMR0レジスタのカウントが始まります。オーバフローするたびに割り込みルーチンが呼び出されます。

TMR0レジスタ

TMR0レジスタは8bitなので255からインクリメントした時点でオーバフローし、割り込み処理が呼び出されます。つまり256クロック必要なことになり必然的に256分周されちゃうわけです。

そこで割り込み処理終了時にTMR0に意図的に数字をセットすることで細かいタイミング調整ができると思います。(なぜ断言しないかというと合ってるかどうかはわからないがそれっぽくなったから)

●プログラム

tim0Initなど関数はtim0_lib.cにまとめてあります

// ------------------------------------------------------------------------------------------------
// 割り込み
// ------------------------------------------------------------------------------------------------
void interrupt isr(void){
  // Timer0割り込み処理
  if (TMR0IF == 1){
    tim0_count++;
    TMR0IF = 0;
    TMR0 = tmr0_val;
  }
}

void main(void) {
  // 初期化処理
  // Oscillator Control Register
  // SPLLEN (1) : 4x PLL is enable.
  // IRCF (1101): Internal oscillator frequency [4MHz HF]
  // uninplemented (0) : Read as '0'
  // SCS (11) : System clock select [Internal oscillator block]
  OSCCON = 0b11101011;

  // Timer0初期化
  tim0Init(OPTION_PA_8, 131);

  // 割り込みの有効
  PEIE = 1;
  GIE = 1;

  while(1){
    tim0_Wait(1000);
  }

  return;
}

 

下記は参考プログラムファイル

tim0_lib.zip - Google ドライブ

 

●チョイ待ちWait談義

職場ではArduinoの普及とともに、続々とマイコンデビューするようになっています。しかも、Arduinoでは標準でdelay()が用意されておりWaitもお気軽です。

そして、よく見かけるのが「ここのWait10秒実行してる間、スイッチとか見れないからどうしようかなー」というマイコンWait All 無視状態への対策。特にフロー制御系で出てきます。

こういう処理の場合、ワタクシは個人的に500msec以上のWaitは使わないようにしています。

下記のように「入力処理」と「状態」に分離し一箇所で処理がクローズしないようにします

 

入力処理 --------------------------

現在の状態を設定する

スイッチ、完了信号を変数などに代入(制御、出力は行わない)

 

状態処理 --------------------------

状態により遷移と処理

mode変数を列挙対として用意する。case内で状態遷移と処理を行う

switch(mode){

  case state1:  // センサーONならstate2へ

  case state2:  // 処理1実行しstate3へ

  case state3:  // 処理1実行完了ならstate1へ

}

てきな?

switchを増やせば並列作業も一応できると思います。ポイントはwhileなどで一箇所で処理が停滞することのないプログラムにするところです。

これはPLCのラダーの概念を参考にしています

 

 

PIC1823のクロック出力を見る

●PIC16F1823のクロック出力

内部動作クロックを4MHz(工場で±1%に校正済み)に設定しCLKOUTピンから出力します。ただし、データシートには”実際出力されるのはFOSCの1/4の周波数”とあり、1MHzが出力されるはずです。また、CLKOUTENは優先度が高くONに設定すると問答無用でクロックを出力します

6.3.2 CLKOUT FUNCTION
The CLKOUT function has a higher priority than the reference clock module. Therefore, if the CLKOUT function is enabled by the CLKOUTEN bit in Configuration Word 1, FOSC/4 will always be output on the port pin.

●プログラム

#include <xc.h>

// CONFIG1
#pragma config FOSC = INTOSC 
#pragma config WDTE = OFF
#pragma config PWRTE = ON
#pragma config MCLRE = ON 
#pragma config CP = OFF
#pragma config CPD = OFF
#pragma config BOREN = OFF
#pragma config CLKOUTEN = ON
#pragma config IESO = ON
#pragma config FCMEN = ON

// CONFIG2
#pragma config WRT = OFF
#pragma config PLLEN = ON
#pragma config STVREN = ON
#pragma config BORV = LO
#pragma config LVP = OFF 


void main(void) {
  // Oscillator Control Register
  // SPLLEN (0) : 4x PLL is disable.
  // IRCF (1101): Internal oscillator frequency [4MHz HF]
  // uninplemented (0) : Read as '0'
  // SCS (11) : System clock select [Internal oscillator block]

  OSCCON = 0b01101011;
  TRISC = 0b11101111;
  while(1);
  return;
}

 OSCCON

マイコンのオシレータをコントロールするレジスタを設定しています

内蔵オシレータを4MHzに設定しています

8MHzに限り4倍のPLLを使用でき最大32MHzで使用できるようです

●CLKOUTの出力波形

1.001MHzとでました

 0.99MHz ~ 1.01MHzの間に収まれば仕様上OKなのでいい感じですね

f:id:kt-marshal:20160501111724j:plain

 

マイコンが自分の狙った周波数で動いてることが確認できました

8MHz, 16MHzと変更すればちゃんと変わりますが、ジッタが目立ち始めました

 

さーて、ラーメンでも食ってくるか

PIC1823の感想とMPLABXでの開発

●ミッドレンジ PIC16F1823 のいいところ

レジスタ、ブロック図、プログラムそのすべてがシンプルで勉強にとても向いている。だから教材に選ばれやすいのかもしれない

データシート1冊でさくさく開発を進めることができます(Arduinoはリファレンスだけでレジスタ操作なくあそべちゃいますがね)

ただし、PICは古い型番も現役。どれを使えばいいのだろうかという意見を1回聞いたことがあります。なぜ1回かというと回りにPICユーザーがいないからです

f:id:kt-marshal:20160430210835j:plain

・プログラムメモリ:2Kワード
・RAM:128バイト
・EEPROM:256バイト
・I/O:最大12本
・ADコンバータ:10ビットx8ch
・コンパレータ:2ch
・タッチセンサ入力(CapSense):8ch
・タイマー:8ビットx2,16ビットx1

PICマイコンPIC16F1823−I/P: マイコン関連 秋月電子通商 電子部品 ネット通販

●開発するぞう

PIC遊びで現在ワタクシが使用しているのは下記のものです

・PIC kit3

f:id:kt-marshal:20160430213859j:plain

 

・接続ハーネス(フラットケーブル)と電源

 PICkit3は供給電力が少ないため電源がほぼ必要になります(100uFの電源ラインコンデンサでアウトです)

 PICkit3は直挿しもOKですがハーネスがあれば

  あれ・・・w 完成品のスペース、狭くてささらないっすwww

 なんて事態になりにくくなるでしょう

f:id:kt-marshal:20160430213910j:plain

 

・MPLAB XとXC8コンパイラ

f:id:kt-marshal:20160430214338j:plain

 

PICkit3(3000円くらい?)さえ手に入れてしまえばPICマイコン自体は数100円ですので出費は少ないかもしれません