2014年08月

ハムフェアで、自作のバット溶接機を展示したのですが、
質問する人はほとんどいなくて、世間の反応が少なくて残念でした。
f1ac9522.jpg


MCC社製の「ワイヤカッタ MS-0020」でバンドソー刃を切断しています。
http://www.amazon.co.jp/%EF%BC%AD%EF%BC%A3%EF%BC%A3-%E3%83%AF%E3%82%A4%E3%83%A4%E3%82%AB%E3%83%83%E3%82%BF-MS0020/dp/B00CS3F4GW
今までは買ってきたままのノーマル状態で使っていました
これは閉じた時、切断刃が平行ではありません。
6406438c.jpg

 
そのため、これで切断すると切断後は刃が少しねじれてしまいます
8911ab79.jpg

 
現状では時々、バンドソー刃の溶接が失敗します。
気のせいか、最近は失敗する確率が増えてきた様な気がします。
このねじれが良くないのかと推測しました、
そこでMS-0020をサンダーで削って
37dec803.jpg

 
切断刃を平行にしました。
cd0dad8a.jpg

 
これで切断すると比較的まっすぐに切断できるようになり、溶接時の失敗が少し減りました。
789844ae.jpg

 
その代わり、切断時の大きな力が必要になりました。
自分の体感で従来比2倍くらいの握力が必要です。

2020年10月24日 修正しました
PICBASIC PROで書いたソースコードです。
細かい誤字脱字があるかもしれませんが気にしないで下さい。


@ __config _CONFIG1, 0x3F5C
'
' FOSC is INTRC
' WDTE is Enable
' PWRTE is Disable
' MCLR is RA5=I/O
' BODEN is Enable ' VDDが4Vまで下がった時リセットする
' LVP is RB3=I/O
' CPD is Not_Protect
' WRT is ALL_Enable 全てのEEPROM書き込みを許可する
' DEBUG is Disable
' CCPMX is CCP1=RB2
' CP is Not_Protect
'
'****************************************************************
'* Name : BUTT WELDER type1
'* Author :
'* Date : 2016/9/17
' 溶接はゼロクロス、焼きなましは徐冷
'
' PIC16F88
' Internal Oscillator 8MHz
' Disable a Watchdog Timer
' RA0-4 is A/D in. RA5 is DIGITAL
' RB0-3 is input. RB4-7 is output.
'
' AN0(ADC_ch0)に、「溶接通電時間」の設定VRを付ける
' AN1(AD1_ch1)に、「溶接電流強さ」の設定VRを付ける
' AN2(AD2_ch2)に、「焼き鈍し通電時間」の設定VRを付ける
' AN3(AD3_ch3)に、「焼き鈍し強さ」の設定VRを付ける
'
' RB0に「溶接開始SW」を付ける、これがHIになると溶接開始
' RB1に「焼き鈍し開始SW」を付ける、これがHIになると焼き鈍し開始
' RA6に「焼き鈍し切替SW」を付ける、これがHIの時は「焼き鈍し開始SW」を押している間は連続で焼き鈍し通電する
'
' RA5はAC100Vを方形波にして入力しているので、これの立上り・立下りをみて交流電源の位相を調べる
'
'トランスに流れる電流は交流電源に比べて位相が遅れるので、焼き鈍しの強さVRを最大にしても、
'交流電源のゼロクロスからトライアックをONするまで5ms遅れるようにした。
'つまり、焼き鈍しの強さVRを最大にしても焼き鈍し電流は100%にならない、50%以下になる。
'焼き鈍し時は電流を減らすために(電流が100%だと溶け落ちてしまうので)これでも問題ないと思う。
'
'トランスのコイル成分の影響で電流位相が遅れるので、トライアックのゲートパルスの幅を短くして100μsとする。
'ゲートパルス幅の根拠は無い、データシートに載ってないので、実験と想像で100μsに決めた。
'
'TMR1 のCOMPARE MODEを使って時間を決めた。
'PICBASIC PROの PAUSE 関数を使うと簡単に一定時間遅延ができけれど。
'これを使うとなぜかタイマー割込が不安定になるみたいので、
'タイマー割込を使う時はできるだけ使わない方が良いと思う。
'
'暴走防止の為にWDTを有効にして、定期的にCLEARWDTを実行してWDTをクリアする
'暴走防止の為に、溶接終了後 と 焼き鈍し終了後 は、WDTが働くまで無限ループにする
'
'2016.9/17 Ver46
' 溶接電流強さは70%,60%,50%,40%,30% の5段階設定とする。
' 70%時は1周期毎に ON →ON →ON →ON →ON →ON →ON →off→off→off これを繰り返す
' 60%時は1周期毎に ON →ON →ON →off→off→ON →0N →0N →off→off これを繰り返す
' 50%時は1周期毎に ON →off→ON →off→ON →off→ON →off→ON →off これを繰り返す
' 40%時は1周期毎に ON →ON →off→off→off→ON →ON →off→off→off これを繰り返す
' 30%時は1周期毎に ON →ON →ON →off→off→off→off→off→off→off これを繰り返す
' トランスに流れる電流量によって電流の位相遅れ量が変わるので、
' 位相角制御だと制御が不安定で電流が安定しなくて溶接失敗が多かった。
' そこで上記の様なゼロクロス制御のON/OFF制御にした。ゼロクロスでは溶接失敗が少し減った。
'
' 2016.9/17 Ver47
'焼きなましの電流は下記の順に徐々に減らして、バンドソー刃をゆっくり冷やす
'①設定時間の0~33%はVR設定値の100%の電流
'②設定時間の33~66%はVR設定値の50%の電流
'③設定時間の66~100%はVR設定値の25%の電流
'
'****************************************************************

DEFINE OSC 10 'system osc is 10MHz
DEFINE ADC_BITS 10 'A/D resolution is 10bits
DEFINE ADC_CLOCK 3 'A/D convert with internal OSC
DEFINE ADC_SAMPLEUS 100 '100 usec acquisition time  
'ADコンバータへ入力する信号源のインピーダンスが大きい時は
' acquisition time を大きくしないと精度が悪くなる
DEFINE NO_CLRWDT 1 '左記の宣言を有効にすると、PBPはコンパイル時にclrwdt命令を自動挿入しない
'(NOT_AUTO_CLRWDTの意味)、


MEASURE_DAT0 VAR WORD 'reading from RA0 ANALOG DATA
MEASURE_DAT1 VAR WORD 'reading from RA1 ANALOG DATA
MEASURE_DAT2 VAR WORD 'reading from RA2 ANALOG DATA
MEASURE_DAT3 VAR WORD 'reading from RA3 ANALOG DATA

WELD_SEC VAR WORD '溶接の通電時間(単位はmsec)
WELD_POWER VAR WORD '溶接の強さ、数字が小さいほど電流が強くなる

ANNEAL_SEC_100per VAR WORD '焼き鈍しの通電時間(単位はmsec)
ANNEAL_SEC_66per VAR WORD '焼き鈍しの通電時間(単位はmsec)
ANNEAL_SEC_33per VAR WORD '焼き鈍しの通電時間(単位はmsec)
ANNEAL_POWER VAR WORD '焼き鈍しの強さ、数字が小さいほど電流が強くなる

SEC_COUNT_01m VAR WORD '溶焼き鈍しの電流(導通角)を数える変数(単位は0.1ms)
SEC_COUNT_01m_A VAR BYTE 'SEC_COUNT_1m を数えるのに使う変数(単位は0.1ms)
SEC_COUNT_1m VAR WORD '溶接や焼き鈍しの通電時間 を数える変数(単位は1ms)

TEMP VAR WORD

INTERRUPT_FLAG VAR BIT '割込が発生したらこれを1にする

TRISA = %11101111 ' RA0-3,RA5-7 is input, RA4 is output
TRISB = %00000011 ' RB0-1 is input, RB2-7 is output

ADCON1 = %10000000 ' Right justified, VREF+ is AVDD, VREF- is AVSS
ANSEL = %00001111 ' RA0-3 is A/D input, RA4-RA5 is Digital I/O

OSCCON = %01110000 ' Internal OSC 8MHz

'タイマー1でコンペアマッチ割り込みを使って、0.1ms(100μs)周期の割り込みを発生させる
'参考 http://homepage1.nifty.com/rikiya/software/315.TIMER1_1.htm
' TMR1L = $00 'TMR1Lに8ビットデータをセット
' TMR1H = $00 'TMR1Hに8ビットデータをセット

CCP1CON = %00001011 'コンペアが一致したらCCP1の場合タイマー1をリセット、PIR1レジスタのCCP1IFビットが設定され割り込みが発生

CCPR1L = $C9 ;CCPR1Lに8ビットデータをセット
CCPR1H = $00 ;CCPR1Hに8ビットデータをセット

INTCON.7 = 1 ' Enable GIE: Global Interrupt Enable bit
INTCON.6 = 1 ' Enable PEIE: Peripheral Interrupt Enable bit
PIE1.0 = 0 'オーバーフロー割り込み禁止 PIE1レジスタのbit 0(TMR1IE: TMR1 Overflow Interrupt Enable bit)を有効にする
PIE1.2 = 1 'CCP1コンペアマッチ割り込み許可 CCP1IE: CCP1 Interrupt Enable bit
T1CON = %00000001 'TMR1プリスケーラ1/1 TMR1カウント開始

WDTCON = %00000101 'プリスケーラ1/128、WDTの周期は1/31.25kHz*128≒64msec となる

ON INTERRUPT GOTO INT_TMR1

START:
CLEARWDT 'ウオッチドッグタイマーをクリア
portB = %11111100 '出力のトライアックをOFFする
IF portB.0 = 1 THEN GOTO START '溶接SWを離すまでループ
IF portB.1 = 1 THEN GOTO START '焼き鈍しSWを離すまでループ


MAIN_LOOP:
CLEARWDT 'ウオッチドッグタイマーをクリア
portB = %11111100 '出力のトライアックをOFFする

IF portB.0 = 1 Then '溶接SWを押すと
'誤動作防止のために、溶接SWを100ms以上押していないと溶接を開始しない
SEC_COUNT_01m = 0 'ゲートパルスの幅を数える変数(単位は0.1ms)
'100ms経過するまでループ
WHILE SEC_COUNT_01m < 1000
IF portB.0 = 0 THEN GOTO main_loop
CLEARWDT 'ウオッチドッグタイマーをクリア
WEND
goto WELD_START
endif

IF portB.1 = 1 Then ' 焼き鈍しSWを押すと
'誤動作防止のために、焼き鈍しSWを100ms以上押していないと焼き鈍しを開始しない
SEC_COUNT_01m = 0 'ゲートパルスの幅を数える変数(単位は0.1ms)
'100ms経過するまでループ
WHILE SEC_COUNT_01m < 1000
IF portB.1 = 0 THEN GOTO main_loop
CLEARWDT 'ウオッチドッグタイマーをクリア
WEND
goto ANNEAL_START
endif

GOTO MAIN_LOOP


WELD_START: ' 溶接SWを押すとここへ飛ぶ
CLEARWDT 'ウオッチドッグタイマーをクリア
ADCIN 0, MEASURE_DAT0 'reading from RA0 ANALOG DATA (溶接通電時間) 最大値は1024
WELD_SEC = MEASURE_DAT0 * 2 '溶接の通電時間(単位は1msec)、最大値は2048

ADCIN 1, MEASURE_DAT1 'reading from RA1 ANALOG DATA (溶接の強さ) 最大値は1024
WELD_POWER = MEASURE_DAT1 '値は0~1024、数字が大きいほど電流が強くなる

'RA5はAC100Vを方形波にして入力しているので、これの立上り・立下りをみて電源の位相を調べる
'portA.5 = 1になるまでループ
WHILE portA.5 = 0
WEND

'portA.5 = 0になるまでループ
WHILE portA.5 = 1
WEND

'この時点でportA.5 = 0である
TMR1L = $00 'TMR1Lに下位8ビットデータをセット
TMR1H = $00 'TMR1Hに上位8ビットデータをセット
SEC_COUNT_01m = 0 '電流(導通角)を数える変数(単位は0.1ms)
SEC_COUNT_01m_A = 0 '時間 を数える変数(単位は0.1ms)
SEC_COUNT_1m = 0 '溶接や焼き鈍しの通電時間 を数える変数(単位は10ms)

'この時点でportA.5 = 0である
IF 819 < WELD_POWER THEN GOTO WELD_LOOP_70
IF 614 < WELD_POWER THEN GOTO WELD_LOOP_60
IF 410 < WELD_POWER THEN GOTO WELD_LOOP_50
IF 205 < WELD_POWER THEN GOTO WELD_LOOP_40
GOTO WELD_LOOP_30

' 70%時は1周期毎に ON →ON →ON →ON →ON →ON →ON →off→off→off これを繰り返す
WELD_LOOP_70:
GOSUB TRIAC_ON
GOSUB TRIAC_ON
GOSUB TRIAC_ON
GOSUB TRIAC_ON
GOSUB TRIAC_ON
GOSUB TRIAC_ON
GOSUB TRIAC_ON
GOSUB TRIAC_OFF
GOSUB TRIAC_OFF
GOSUB TRIAC_OFF
IF SEC_COUNT_1m > WELD_SEC THEN GOTO WELD_END '溶接通電時間を超えたら終了
GOTO WELD_LOOP_70:

' 60%時は1周期毎に ON →ON →ON →off→off→ON →0N →0N →off→off これを繰り返す
WELD_LOOP_60:
GOSUB TRIAC_ON
GOSUB TRIAC_ON
GOSUB TRIAC_ON
GOSUB TRIAC_OFF
GOSUB TRIAC_OFF
GOSUB TRIAC_ON
GOSUB TRIAC_ON
GOSUB TRIAC_ON
GOSUB TRIAC_OFF
GOSUB TRIAC_OFF
IF SEC_COUNT_1m > WELD_SEC THEN GOTO WELD_END '溶接通電時間を超えたら終了
GOTO WELD_LOOP_60:

' 50%時は1周期毎に ON →off→ON →off→ON →off→ON →off→ON →off これを繰り返す
WELD_LOOP_50:
GOSUB TRIAC_ON
GOSUB TRIAC_OFF
GOSUB TRIAC_ON
GOSUB TRIAC_OFF
GOSUB TRIAC_ON
GOSUB TRIAC_OFF
GOSUB TRIAC_ON
GOSUB TRIAC_OFF
GOSUB TRIAC_ON
GOSUB TRIAC_OFF
IF SEC_COUNT_1m > WELD_SEC THEN GOTO WELD_END '溶接通電時間を超えたら終了
GOTO WELD_LOOP_50:

' 40%時は1周期毎に ON →ON →off→off→off→ON →ON →off→off→off これを繰り返す
WELD_LOOP_40:
GOSUB TRIAC_ON
GOSUB TRIAC_ON
GOSUB TRIAC_OFF
GOSUB TRIAC_OFF
GOSUB TRIAC_OFF
GOSUB TRIAC_ON
GOSUB TRIAC_ON
GOSUB TRIAC_OFF
GOSUB TRIAC_OFF
GOSUB TRIAC_OFF
IF SEC_COUNT_1m > WELD_SEC THEN GOTO WELD_END '溶接通電時間を超えたら終了
GOTO WELD_LOOP_40:

' 30%時は1周期毎に ON →ON →ON →off→off→off→off→off→off→off これを繰り返す
WELD_LOOP_30:
GOSUB TRIAC_ON
GOSUB TRIAC_ON
GOSUB TRIAC_ON
GOSUB TRIAC_OFF
GOSUB TRIAC_OFF
GOSUB TRIAC_OFF
GOSUB TRIAC_OFF
GOSUB TRIAC_OFF
GOSUB TRIAC_OFF
GOSUB TRIAC_OFF
IF SEC_COUNT_1m > WELD_SEC THEN GOTO WELD_END '溶接通電時間を超えたら終了
GOTO WELD_LOOP_30:

WELD_END:
'この時点で溶接終了
portB = %11111100 '出力のトライアックをOFFする
'WATCH DOG TIMERが働いてリセットするまで無限ループ
DO
LOOP



ANNEAL_START: ' 焼き鈍しSWを押すとここへ飛ぶ
'焼きなましの電流は下記の順に徐々に減らして、バンドソー刃をゆっくり冷やす
'①設定時間の0~33%はVR設定値の100%の電流
'②設定時間の33~66%はVR設定値の50%の電流
'③設定時間の66~100%はVR設定値の25%の電流
CLEARWDT 'ウオッチドッグタイマーをクリア
ADCIN 2, MEASURE_DAT2 'reading from RA0 ANALOG DATA 最大値は1024
ANNEAL_SEC_100per = MEASURE_DAT2 * 30 '焼き鈍し通電時間(単位はmsec)、最大値は30720
TEMP = ANNEAL_SEC_100per / 3 '最大値は10240
ANNEAL_SEC_66per = TEMP * 2 '最大値は20480
ANNEAL_SEC_33per = TEMP '最大値は10240

ADCIN 3, MEASURE_DAT3 'reading from RA3 ANALOG DATA 最大値は1024
MEASURE_DAT3 = 1024 - MEASURE_DAT3
MEASURE_DAT3 = MEASURE_DAT3 / 20 '焼き鈍しの電流(導通角)(単位は0.1ms)、値は0~51
ANNEAL_POWER = MEASURE_DAT3 + 50 '焼き鈍しの電流(導通角)(単位は0.1ms)、値は50~101

'RA5はAC100Vを方形波にして入力しているので、これの立上り・立下りをみて電源の位相を調べる
'portA.5 = 1になるまでループ
WHILE portA.5 = 0
WEND

'portA.5 = 0になるまでループ
WHILE portA.5 = 1
WEND

TMR1L = $00 'TMR1Lに8ビットデータをセット
TMR1H = $00 'TMR1Hに8ビットデータをセット
SEC_COUNT_01m = 0 '溶焼き鈍しの電流(導通角)を数える変数(単位は0.1ms)
SEC_COUNT_01m_A = 0 'SEC_COUNT_1m を数えるのに使う変数(単位は0.1ms)
SEC_COUNT_1m = 0 '溶接や焼き鈍しの通電時間 を数える変数(単位は10ms)

'この時点でportA.5 = 0である
ANNEAL_RA5_L_START:
CLEARWDT 'ウオッチドッグタイマーをクリア
SEC_COUNT_01m = 0 '溶焼き鈍しの電流(導通角)を数える変数(単位は0.1ms)

GOSUB RA6_CHECK ' RA6がHIの時は、「焼き鈍し開始SW」を押している間(RB=1)は連続で焼き鈍しする

'この時点でportA.5 = 0である
WHILE SEC_COUNT_01m < ANNEAL_POWER
IF SEC_COUNT_1m > ANNEAL_SEC_100per THEN GOTO ANNEAL_END '焼き鈍し通電時間を超えたら終了
IF portA.5 = 1 THEN GOTO ANNEAL_RA5_L_END
WEND

portB = %00000000 '出力のトライアックをONする
'トライアックのゲートパルスの幅は100μsとする、根拠は無い、データシートに載ってないので、実験と想像で決めた
SEC_COUNT_01m = 0 'ゲートパルスの幅を数える変数(単位は0.1ms)

'SEC_COUNT_01m = 1 になるまで(100μs経つまで)ループ
WHILE SEC_COUNT_01m < 1
IF SEC_COUNT_1m > ANNEAL_SEC_100per THEN GOTO ANNEAL_END '焼き鈍し通電時間を超えるまでループ
WEND
portB = %11111100 '出力のトライアックをOFFする

'portA.5 = 1になるまでループ
WHILE portA.5 = 0
WEND
ANNEAL_RA5_L_END:


'この時点でportA.5 = 1である
ANNEAL_RA5_H_START:
CLEARWDT 'ウオッチドッグタイマーをクリア
SEC_COUNT_01m = 0 '溶焼き鈍しの電流(導通角)を数える変数(単位は0.1ms)

GOSUB RA6_CHECK ' RA6がHIの時は、「焼き鈍し開始SW」を押している間(RB=1)は連続で焼き鈍しする

'この時点でportA.5 = 1である
WHILE SEC_COUNT_01m < ANNEAL_POWER
IF SEC_COUNT_1m > ANNEAL_SEC_100per THEN GOTO ANNEAL_END '焼き鈍し通電時間を超えたら終了
IF portA.5 = 0 THEN GOTO ANNEAL_RA5_H_END
WEND

portB = %00000000 '出力のトライアックをONする
'トライアックのゲートパルスの幅は100μsとする、根拠は無い、データシートに載ってないので、実験と想像で決めた
SEC_COUNT_01m = 0 'ゲートパルスの幅を数える変数(単位は0.1ms)

'SEC_COUNT_01m = 1 になるまで(100μs経つまで)ループ
WHILE SEC_COUNT_01m < 1
IF SEC_COUNT_1m > ANNEAL_SEC_100per THEN GOTO ANNEAL_END '焼き鈍し通電時間を超えるまでループ
WEND
portB = %11111100 '出力のトライアックをOFFする

'portA.5 = 0になるまでループ
WHILE portA.5 = 1
WEND
ANNEAL_RA5_H_END:

'設定時間の0~33%はVR設定値の100%の電流にする為
IF SEC_COUNT_1m < ANNEAL_SEC_33per THEN GOTO ANNEAL_RA5_L_START

'設定時間の33~66%はVR設定値の50%の電流にする為に、次の1周期はトライアックをONしない
IF SEC_COUNT_1m < ANNEAL_SEC_66per THEN
GOSUB TRIAC_OFF
GOTO ANNEAL_RA5_L_START
ENDIF

'設定時間の66~100%はVR設定値の25%の電流にする為に、次の3周期はトライアックをONしない
IF SEC_COUNT_1m < ANNEAL_SEC_100per THEN
GOSUB TRIAC_OFF
GOSUB TRIAC_OFF
GOSUB TRIAC_OFF
GOTO ANNEAL_RA5_L_START
ENDIF


ANNEAL_END:
'この時点で焼き鈍し終了
portB = %11111100 '出力のトライアックをOFFする
'ウオッチドッグタイマーが働いてリセットするまで無限ループ
DO
LOOP



TRIAC_ON:
'この時点でportA.5 = 0である
CLEARWDT 'ウオッチドッグタイマーをクリア
portB = %00000000 '出力のトライアックをONする
'portA.5 = 1になるまで無限ループ
WHILE portA.5 = 0
WEND
'この時点でportA.5 = 1である

'5ms後にトライアックをOFFする
SEC_COUNT_01m = 0 'ゲートパルスの幅を数える変数(単位は0.1ms)
'SEC_COUNT_01m = 50 になるまで(5ms経つまで)ループ
WHILE SEC_COUNT_01m < 50
WEND
portB = %11111100 '出力のトライアックをOFFする

'portA.5 = 0になるまで無限ループ
WHILE portA.5 = 1
WEND
RETURN


TRIAC_OFF:
'この時点でportA.5 = 0である
CLEARWDT 'ウオッチドッグタイマーをクリア
portB = %11111100 '出力のトライアックをOFFする
'portA.5 = 1になるまで無限ループ
WHILE portA.5 = 0
WEND
'この時点でportA.5 = 1である
'portA.5 = 0になるまで無限ループ
WHILE portA.5 = 1
WEND
RETURN



RA6_CHECK:
'RA6がHIの時は、「焼き鈍し開始SW」を押している間(RB=1)は連続で焼き鈍し通電する
IF portA.6 = 1 THEN
IF portB.1 = 1 THEN 'RB=1(「焼き鈍し開始SW」を押している間)は連続で焼き鈍しする
SEC_COUNT_1m = 10
ELSE 'RB=0(「焼き鈍し開始SW」を押してない間)は焼き鈍ししない
'RA6がHIの時は、「焼き鈍し開始SW」を離したら(RB=0)直ぐに焼き鈍しを止めて
'RA6がHIの時は、「焼き鈍し開始SW」を押したら(RB=1)直ぐに焼き鈍しを始める為に、STARTへ飛ぶ
GOTO START
ENDIF
ENDIF
RETURN


'TIMER1の割り込みを使って、0.1ms周期(10kHz)の割り込みを発生させる
DISABLE ' ここから下は割込ルーチン 割込が発生してここへ飛ぶ
INT_TMR1:

;タイマー1でコンペアマッチ割込みが発生すると、PIR1.2(TMR1 compare match Flag)が1になる
PIR1.2 = 0 ;TMR1 compare match Flag のクリア

high portA.4 '周波数カウンターで周期を調べる為に使う

SEC_COUNT_01m = SEC_COUNT_01m + 1 '溶接や焼き鈍しの通電時間 を数える変数(単位は0.1ms)
SEC_COUNT_01m_A = SEC_COUNT_01m_A +1 'SEC_COUNT_1m を数えるのに使う変数(単位は0.1ms)

IF SEC_COUNT_01m_A = 10 THEN
SEC_COUNT_1m = SEC_COUNT_1m + 1 '溶接や焼き鈍しの通電時間 を数える変数(単位は1ms)
SEC_COUNT_01m_A = 0
ENDIF

LOW portA.4 '周波数カウンターで周期を調べる為に使う

RESUME '割込処理終了 メインルーチンへ戻る
ENABLE '通常ルーチンを有効にする


END

回路図です。
半田付けが面倒なので、知恵をしぼってできるだけ部品を減らしています。
acd0d150.png


アーシング用の22スケ線を3巻しました。
溶接機のトランスの時とくらべて、電流が強くなりました。
安物溶接機のトランスより、電子レンジのトランスは小さいのに。
電子レンジのトランスの方が、大きな電流が取り出せるのが不思議です。コアの材質が違うのかもしれません。
574b8e0c.jpg

 
クランプ部です。6e07ff26.jpg


押え板は、亜鉛メッキ鋼板 SECC t3.2に、幅5mmのステンレス t1.0をTIG溶接で付けてあります。
このステンレス t1.0を付ける前は、溶接品質が一定しなくて苦労しました。
これが有る事により、幅5mmの狭い範囲に押さえ圧力が集中するので。接触抵抗が下がって溶接が安定するのかもしれません。
492d75d5.jpg


ホームセンターでバネを適当に選んで買ってきました。
安い鉄バネで充分なのに、高いステンレス製しか売ってなかった。
9615471e.jpg

 
溶接機の中身です。22スケ線を切るのがもったいなくて、長いのを丸めて箱の中に入れています。
2a2ecfad.jpg

 
c243d338.jpg


4a781790.jpg

 
0add34ab.jpg

 
30d2630b.jpg


バンドソーの刃を溶接する動画を、YOUTUBEにUPしました。
https://www.youtube.com/watch?v=YZDTc3kLwxQ
 
ここで溶接している刃は、幅6mmのハイス(高速度工具鋼)製の刃です。
この刃は溶接するのはさほど難しく無かったのですが。
溶接後の焼きなましを上手くやらないと、溶接後にすぐ折れてしまいます。
焼きなましの最適条件を探し出すのに手間がかかりました。
 

↑このページのトップヘ