728x90
ino Pro mini sketch source for AC Auto Spot Weldering

출처: https://mindeater.tistory.com/2327 [MindEater™ - Life Sketch]

 

 

1차 권선을 이용한 오토스폿 회로도(최종본)

 
 
 

앞 서 몇 가지 회로도를 올혔으나 PCB까지 제작하여 검증 된 이 회로도를 최종본으로 한다. LED는 옵션으로 케이스에 연장해서 달 수 있도록 했고 생략해도 되지만, 온도측정을 위한 NTC는 스케치 수정이 필요해 필수로 한다. NTC는 트라이악에 실리콘으로 부착해주면 된다.

따라서 배포하는 스케치 파일은 이 회로도 기반이고, 초보자 접근성이 좀 더 쉬운 아두이노 나노를 이용했는데, 핀번호만 동일하게 적용 한다면 아두이노 프로미니도 가능하다.

덧붙이자면, 이 회로는 온도센서와 LED 등 공부차원에서 추가한 부품수가 많아 가성비는 나오지 않는다. HW적인 부분은 기존 기능을 유지하면서 슬림화가 가능한 부분에 대해 HW 전문가의 조언이 필요하고, SW적인 부분은 환경설정에 항목 가감과 추가 기능시 수시로 업데이트할 생각이다.

 

 

 

부품 리스트 및 구입처

 

부품 수량 구입처
아두이노 나노 & 소켓 1 www.devicemart.co.kr/goods/view?no=1342039(아두이노 나노) www.ic114.com/WebSite/site/sc/00V0.aspx?id_p=P0090817(소켓)
Display
선택
LCD1602 1 https://www.devicemart.co.kr/goods/view?no=1327456 (추천!!, 튼튼하고 저렴)
OLED 0.96   https://www.aliexpress.com/item/32896971385.html
OLED 1.32   https://www.aliexpress.com/item/4000182358480.html
MOC3021M 1 https://www.devicemart.co.kr/goods/view?no=9456
PC814
K3010(대체품)
2 https://www.devicemart.co.kr/goods/view?no=11312
https://ww.devicemart.co.kr/goods/view?no=1659(대체품)
저항 330R 1/4W 1 https://www.devicemart.co.kr/goods/view?no=38590 
220R 1/4W 1 https://www.devicemart.co.kr/goods/view?no=2001
1K 1/2W 1 https://www.devicemart.co.kr/goods/view?no=38594
10K 1/2W 2 https://www.devicemart.co.kr/goods/view?no=38605
120R 2W 1 https://www.devicemart.co.kr/goods/view?no=1219 
91K 2W 3 https://www.devicemart.co.kr/goods/view?no=1169
BTA 41 1 https://www.devicemart.co.kr/goods/view?no=11422
Capacitor 0.22uF/630V 1
www.ic114.com/WebSite/site/sc/00V0.aspx?id_p=P0044619(0.22uf/630V)
0.1uF 1 www.ic114.com/WebSite/SITE/sc/00V0.aspx?ID_P=P0042737 (X)
100uF/25V 1 https://www.devicemart.co.kr/goods/view?no=1320
BR1000C-4P 1 https://www.ic114.com/WebSite/site/sc/00V0.aspx?id_p=P0034630
HLK-PM01 1 https://www.aliexpress.com/item/32408565688.html
Rotary Encoder Switch 1 https://www.devicemart.co.kr/goods/view?no=12501930(엔코더) https://www.aliexpress.com/item/32989297790.html (노브)
Buzzer 1 https://www.devicemart.co.kr/goods/view?no=2736
NTC 10K 1 https://www.devicemart.co.kr/goods/view?no=9415
LED 1  www.ic114.com/WebSite/SITE/sc/00V0.aspx?ID_P=P0046419(고휘도 LED)  www.ic114.com/WebSite/SITE/sc/00V0.aspx?ID_P=P0046601(LED 홀더)
핀헤더(혹은 JST 커넥터)
XH 2.54
1 www.devicemart.co.kr/goods/view?no=2825
www.devicemart.co.kr/goods/view?no=1321192
www.aliexpress.com/item/32957254098.html
www.aliexpress.com/item/32741723157.html

저항과 부품은 국내몰에서 구입을 추천하며 OLED/LCD/HLK-PM01은 알리익스프레스를 추천한다.

 

 

PCB에 위 부품을 실장 후 조립한 스폿 회로!!

 

 

.
.
.
 
 

 

오토스폿 개발 배경

 

이 글은 기존 스폿용접 회로에 오토스폿을 개발 히스토리가 들어가 있으며, 아두이노 프로그램인 스케치파일을 배포하고, 그 버전 관리를 위한 페이지이다.

최근(2019년 8월)까지 스위치로 동작하는 매뉴얼 스폿의 경우 회로와 소스가 오픈되어 있고 다양한 버전이 있지만 오토스폿의 경우는 공개 된 내용이 없다. 그렇다보니 DIY 카페 혹은 아두이노 정보를 올리는 블로그, 지식인 등등 문의를 해보았지만, 실제로 구현하고 그 원리에 대해서 딱부러지게 알려주는 사람이 없었다.

수집한 정보를 종합해 볼때 가장 쉬운 접근은 스너버회로에 의해 2차 권선에 유도된 전압을 이용하는 방법이다. 대다수 공개된 회로도는 전원 인가시 순간적으로 치솟는 전압을 때문에 트라이악이 소손되는 걸 보호하기 위해 스너버(Snubber)회로를 사용하고 있다. 이 스너버회로 전압에 유도된 2차권선의 전압를 포토커플러를 이용하여 Detect 하여 변화를 감지하는 방식이다. 이 전압은 전류가 매우 낮기 때문에 동봉을 쇼트(전하의 이동이 부하로 잡힘) 시키면 전압이 DROP 되어 포토커플러 동작 전압인 1.2V 이하로 떨어지면 인지가 가능하다.


여기까지가 추정한 방법 중 하나였고 아두이노를 통해서 실구현 하는 방법에 대해서 HW를 잘 모르니 그저 막연하게 시나브로(?) 찾아보고 있었다. 전압분배도 공부하고, 풀업, 풀다운 회로도 알아보고 등등등,,, ^^;;;

 

 

 

락시꾼님이 구현한 오토스폿의 원리

그러던 차,,  스폿 회로를 제작하여 분양중인 락시꾼님이 같은 방법으로 구현에 성공하여 소스를 이홈메이드 카페에 공유했고, 덕분에 필자도 한 스텝 앞으로 나갈 수 있었다.

관련글 : https://cafe.naver.com/hssoon/191391

<PC814 Function Diagram, 내부 회로>

1번과 2번에 전류가 흘러(다이악, 방향성없음) LED가 발광하면 4번에서 3번 핀으로 전류가 흐르는 구조다.

포토커플러 핀 1번과 2번을 2차 권선에 연결하면 스너버 회로에 의해 2차 권선에 유도된 전압(동봉측)에 의해 포토커플러가 ON된다. 그러면  수광부 4번에서 3번으로 전류가 흐르는 데,, (PC814, K3010의 경우) 3번핀은 GND, 그리고 4번 핀은 아날로그 A0를 사용하고, 4번 핀의 변화를 감지하는 방식이다.

추정건대,,
아날로그 핀 A0에 아두이노 내부 VCC의 전압이 일정부분 드롭되어 GND쪽으로 흐르다가, 동봉 쇼트시 GND쪽으로 흐름이 끊껴 A0핀에 전압이 높게 잡히는 원리가 아닐까 싶다. 실제 잘 동작한다.

 

.
.
.

 

 

일단 락시꾼님 공개 스케치파일에서 오토스폿함수를 차용 진행 중인 스폿기에 맞게 수정 후 테스트를 해 본 결과 잘 동작했다. 다만 필자가 꾸민 회로의 문제인지 대기 상태에서 헛 데이타가 종종 읽혀 동봉 숏트가 아닌데도 오토스폿이 진행되는 문제가 종종 발생 했다. - 3K 링코어와 50sq 권선을 사용했다 -

디바운스 코드를 넣어 이 문제를 임시 해결했고 그 결과를 피드백 차원에서 역시 카페에 공유를 했다. 그런데 뜻밖에 '맹지동'님이 비슷하게 구성하여 오토스폿 실험을 한적이 있고 그 방법을 댓글로 공유해주셨다. 포토커플러의 수광부인 4번에 5V를 입력, 3번은 GND풀다운저항을 연결했을 때, 대기 5V 동봉 쇼트시 0V가 확실하게 읽힌다는 실험 결과였다.

일단 브레드 보드에 회로를 구며 실험해보니 잘 동작했고 이를 아두이노에 반영, 몇 번의 시행착오를 거쳐 디지탈 핀의 HIGH/LOW만 읽어 처리가 가능한 새로운 커스텀 버전을 만들 수 있었다.

결국 락시꾼님과 맹지동님의 도움으로 나만의 버전을 만들 수 있었기에,, 그 분들께 감사의 말씀을 드리며, 필자의 소스코드를 락시꾼님 커스텀 버전으로 이곳에서 공유한다.

 

 

 

 

 

 


 

 

 

 

커스텀 버전의 오토스폿 동작

 

앞서 설명했지만, 전체적인 동작을 그림으로 그려보았다. 전체적으로 두 개의 소자가 추가되었는데 포토커플러 PC814와 소자 보호를 위한 220옴 저항이다.

대기 상태에서 포토커플러가 ON, 포토커플러 4번 핀과 연결된 아두이노 10번 핀(INPUT_PULLUP으로 설정)의 값이 LOW가된다. 이 상태에서 동봉이 니켈바를 거쳐 쇼트가 되면 포토커플러가 OFF, 결과 그라운드로로 이어지는 라인이 끊어져 아두이노 내부 PULLUP 저항에 의해 10번 핀의 값이 HIGH가 되는 방식이다.

+
테스트를 해보니 좀 더 저가인 K3010 소자를 사용했을 경우 상대적으로 대기상태의 LOW값이 자주 튀는 편인데 전방보호를 위한 Debounce 값을 두고 2번 이상 연속할 경우 쇼트를 인지할 수 있도록 했다.

 

 

 

추가 작업

- 스너버회로의 커패시터 용량 추가 -

 

사진에 보이는 녹색의 저항(120Ω)과 빨강색의 0.1uf 커패시터로 이루어진 RC스너버 회로다. 비전공자 입장에서 동작을 추정해보면 전원 ON/OFF시 치솟는 노이즈를 커패시터가 빨아들이고 저항으로 태워서 스위치 소자를 보호하는 기능이지 싶다.

220v 인가시 6v가 유도되는 링코어에서 이 회로에 의해 2차 측에 대략 2V정도의 전압이 측정되는데,, 종종 이 값이 출렁거린다. 그래서 커패시터를 병렬(결과 0.2uf)로 달아주니 4V대로 증가해 출렁이더라도 포토커플러가 튀는 증상이 현저히 줄어들었다. 결과 이 방식의 안정적인 작을 위해 스너버회로의 커패시터의 용량 0.2uf 이상을 추천한다.

너무 높은 정전용량의 커패시티를 사용할 경우 전압이 상대적으로 높아져 스폿용접봉을 쇼트시킬경우,, 간헐적으로 작은 불꽃이 뒤기도 하지만, 전류가 미세하니 크게 걱정하지 않아도 될 것 같다.
 

 

 

(좌)2차 권선에 유도된 전압 4.133V과 (우)오토스폿을 위해 추가한 회로

 

처음에는 맹지동님의 솔루션처럼 풀다운 저항으로 220옴을 3번 핀 사이에 구성하여 테스트 해보았지만, 플로팅 증상이 너무 심했다. 테스트를 위해 꾸민 회로에서 풀다운저항이 제대로 동작을 안하는 걸로 추측된다. - 핀모드를 INPUT으로 두고 4번을 5V 전원에 인가하고 3번을 그라운드에 연결해서 테스트 -

디버깅을 하다가 아두이노 내부에 풀업저항(PULLUP)이 구현되어 있다는 걸 알게 되었고, 결국 포토커플러 3번핀은 GND, 4번 핀은 아두이노의 10번 핀에 저항없이 직결하여 성공했다. 이 경우 핀모드를 INPUT_PULLUP으로 설정해야한다.

 

 

 

 

 

 

 


 

 

 

오토스폿 센싱 함수

 

이하 오토스폿을 처리하는 함수와 스팟관련 함수를 소개하고 아울러 스케치파일도 함께 공유한다.

먼저 용접동봉을 쇼트를 인지하고 오토 스폿을 처리하는 함수다.

void processAutoSpot()
{
  if (acHzValue < 50)
    return;
    
  int aData = digitalRead(PIN_AUTO_SPOT);
  if ( aData == LOW )
  {
    autoDetectCount = 0;
    autoDetectFlag = 0;
    autoSpotDebounce = 0;
  }
  else
  {
    if ( autoSpotDebounce++ < AUTO_SPOT_MAX_DEBOUNCE )
      return;
      
    if (autoDetectCount < autoDelay )
        autoDetectCount++;
    if ( autoDetectCount == autoDelay && !autoDetectFlag)
    {
      drawInfo(); /* for display sync */
      triggerSpot();
      DELAY(500);
      autoDetectFlag = 1;
    }
  }
}

AUTO_SPOT_MAX_DEBOUNCE 값은 2로 정의되어 있고 상수값으로 실제 동봉을 쇼트시 이 값만큼 HIGH 상태로 연속되어야 동작한다. 일종의 전방보호값이다. 스폿기를 구현하면서 2차측의 약한 전압으로 이 값이 자주 튄다면 조금씩 올려서 적용해보면 된다.

 

 

 

AC 스폿타임 컨트롤의 방법
- 220V 60Hz-

두 번째로 스폿타임 설정함수를 보기 전에 먼저 스폿타임 산출하는 방식에 대해서 알아보자.
 

 

AC스폿에서 스팟타임 컨트롤 방법을 간단히 그려보았다. 시간은 반(1/2)주기 단위로 계산이 되고 설정된 시간이 총 몇 번의 반주기가 필요한지 계산을 하게 된다. 실제 스팟 액션이 실행되면 다가오는 제로크로싱 포인트까지의 시간은 버리고, 그 시점부터 전체 필요한 시간의 끝 부분부터 역산을 하게 되는데,, 이유는 사용된 소자 트라이악 BTA41의 STOP 시점이 ZeroCrossing 포인트 이기 때문이다.

결국, 설정된 스폿시간을 만족하는 전체 반사이클 수를 구한 뒤 설정된 시간보다 큰 잉여시간(spotFirstHoldTime)만큼 대기했다가 실행한다.


아래 코드를 이해하기위한 설명이었다.

/* 
 * triggerSpot()
 * 
 * 마지막 제로크로싱 끝나는 지점을 스폿타임이 끝나는 지점으로 역산하여 start 시간을 계산한다.
 * 설정된 스폿시간을 1/2 cycle(hCycleTime) 시간을 이용하여 사이클 회수(needHCycles)와 나머지값(spotFirstCycleTime)을 구한다.
 * 나머지 값을 첫 번째 사이클에 반영하고, 결과 spotFirstHoldTime만큼 기다렸다가 spotFirstCycleTime만큼 스폿을 진행한다.
 * needHCycles값이 있다면 추가 사이클만큼 진행하고 멈춘다.
 * 
 * ref) triac의 stop 시점이 제로크로싱 시점만 가능, start는 상관없음
 */
void triggerSpot()
{
  float hCycleTime = 1000 / ((float)(acHzValue*2));  /* half cycle time, 8.33ms in case of the 60Hz */
  int needHCycles = spotTime / hCycleTime;
  int spotFirstHoldTime = (int)((hCycleTime-(spotTime-(needHCycles*hCycleTime)))*1000);
  int spotFirstCycleTime = (int)((hCycleTime*1000)-spotFirstHoldTime);

  cli();

  /* AutoMode에서도 다단스폿은 적용! */
  for (int ii=0; ii<multiSpotCount; ii++)
  {
    /* LED를 켜고 PIN_ZERO_CROSS 포인트가 되면 다음 단계로.. */
    do {
      digitalWrite(PIN_LED, HIGH);
    } while (digitalRead(PIN_ZERO_CROSS_DETECT) == HIGH );

    delayMicroseconds(spotFirstHoldTime);
    digitalWrite(PIN_SPOT_TRIGGER, HIGH) ;
    delayMicroseconds(spotFirstCycleTime);

    if (spotTime > hCycleTime)
    {
      for (int jj = 0; jj < needHCycles ; jj++)
        delayMicroseconds(hCycleTime*1000);
    }

    digitalWrite(PIN_SPOT_TRIGGER, LOW);
    digitalWrite(PIN_LED, LOW);
    
    delayForMultiSpot();
  }
  
  sei();
}

/* Manual Spot - triggered by Switch Pin Interrupt */
void isrSpotActionSwitch()
{
  if ( curSpotMode != SPOT_MODE_MANUAL )
    return;
  if ( curProgMode != PG_MODE_NONE )
    return;
    
  swCount++ ;
  if ( swCount == 1 )
  {
    triggerSpot();
  }
}

isrSpotActionSwitch() - 인터럽트로 처리되고, 풋스위치를 누를 때 실행되는 함수
triggerSpot() - 스폿시간을 계산하여 트리거핀에 신호를 전달해 실제 스폿을 진행하는 함수


스폿타임 8ms로 설정시 제대로 동작하지 않아 디버깅 후 스폿 액션 함수 자체를 재작성했다.

 

 

 

간단 매뉴얼

 




[ 오토모드 ]

A:x
x값은 오토모드에서 스폿을 위해 용접봉을 니켈봉에 가져다 대면 증가
이 값이 T값과 같아지면 자동 스폿이 실행됨

T:x
x값은 스폿실행 전 대기 시간

A-Beep : 오토센싱시 Beep음 (Version 2.5 이상) // Version 2.5
LowTR Mode : 오토센싱 민감도 극대화 모드(Yes)  // Version 2.5




[ 매뉴얼모드 ]

M:x
x 값은 다단(Multi) 스폿 회수 ( 1 ~ 6회 )
효울이 떨어지는 코어에서 좀 더 낮은 시간으로 다단 스폿을 진행하면 열화없이 단단하게 붙일 수 있습니다.

T:x
x값은 다단스폿시 인터벌 시간.  ms 단위 (5ms 단위로 증가, 50ms 추천)
매뉴얼모드에서 설정한 다단 회수는 오토모드에도 그대로 적용됨

온도표시
트라이악의 상태를 체크할 수 있습니다.
연속하여 스폿시 온도가 높다고 판단되면 잠시 쉬었다하세요.


[ 조작 방법 ]
대기상태
: 엔코더를 돌리면 스폿 타임이 조정
모드 전환 : 엔코더를 2~3초 정도 누르면 오토(A)모드수동(M)모드가 전환됨 (비프음 3회)
설정 모드 : 짧게 한 번 누르면 설정모드 순환 (비프음 1회), 2~3초동안 누르면 일반모드로 바로 나옴(비프음 2회)
초기화 : 10초 정도 누르면 초기화 (비프음 4회)




 

 

 

업데이트

오토스폿센싱을 2차가 아닌 1차로 사용할 경우, PC814에 연결된 저항 220옴대신 91K옴 1W이상을 연결해주면 동작함을 확인했다.

 

 

.
.
.

 

 

펌웨어(Arduino Sketchs) 다운로드!!

 

 

Version 2.8 (2021-05-18) : 최신 버전 (Beta...)

1. 매뉴얼모드 버튼 SW 디바운싱 보완
   MANUAL_SW_DEBOUNCING_TIME(300ms) 안에 한 번만 가능 --> 최적화 완료!!
2. Default 값 조정 (A-Beep: Yes, Auto T: 6)
3. 패시브 부저를 사용할 경우 Hz 탐지 오동작 패치 --> 가급적 능동부저 사용을 추천!!
4. PinChangeInt 라이브러리를 소스에 추가 (초보자를 위한 작업복잡도 감소)

AcSpotWelder_HooneyPaPa_V2.8.zip
0.01MB

 

 

 

Version 2.7 (2021-04-09) : 안정화 버전

1. 오토모드 최소 대기시간 수정 3-->2 (좀 더 빠른 작업을 위한)
2. 총 스폿회수 즉시 저장을 스폿이 끝나고 idle시간에 저장 (EEPROM 수명연장을 위함)

AcSpotWelder_HooneyPaPa_V2.7.zip
0.05MB

 

 

 

.
.
.

 

 

 

OLD Version

 

Version 2.6 (2021-03-09) : 베타버전

1. 오토모드에서 환경설정 항목 추가
A-Beep : 오토센싱시 부저 On/Off
LowTR Mode : 전자렌지 변압기처럼 오토센싱이 오동작할 때 SW 샘플링 극대화 모드!!
2. 온도 표기를 한 자리로!!

 

AcSpotWelder_HooneyPaPa_V2.6.zip
0.05MB

 

Version 2.5 : 2020-02-28

전자렌지 EI 트랜스에서 오토센싱 지원
R9 저항을 91K --> 30~40K 교체가 필요함!!

AcSpotWelder_HooneyPaPa_V2.5.zip
0.01MB

 

Version 2.4 : 2020-02-28
1. LCD UI 수정 : ms -> MS 대문자로!!

Version 2.3 : 2020-02-16
1. Default  값 정리
-- 삭제 --

Version 2.2 : 2020-11-06
1. LCD1602 Display 적용
2. Loop에서 Delay를 없애고 Time 스케줄링으로 변경
3. AC 주파수 값에 Debounce 처리
4. Auto Sensing Beep음 활성화 Define으로 Disable 가능
--삭제--

 

Vresion 2.1 : 2020-11-06

수정내역 :

  1. OLED 0.96/1.32, LCD1602 지원 -> 소스코드에서 선택
  2. Total Spot Count를 표시
  3. 소스코드 튜닝(delay() 방식에서 스케줄링 방식으로 조정
  4. 버전 체계를 날짜방식에서 일반 메이저.마이너 방식으로 변경하고 2.1로 배포
--삭제--


LCD1602 Version


OLED 0.96inch Version

LCD와 조작방법은 동일

설정화면이 따로 없고 메인 화면에서 OLED 버전은 느낌표(!)로 LCD 버전은 깜빡거림으로 수정항목을 구분함.
OLED가 좀 더 깔끔한데 하우징이 조금 애매해서 서로 장단점이 있다.


% 스케치 파일 적용시 아래 DISPLAY와 부저타입과 핀맵 확인 요망!!

/////////////////////////////////////////////////////////////////////////////////////////////////
// 제작하는 부품 스펙에 따라 수정필요!!!!!
// ★★ 주석은 필히 확인
/////////////////////////////////////////////////////////////////////////////////////////////////

#define DISPLAY_TYPE_LCD1602 0 /* Crystal LCD 1602 */
#define DISPLAY_TYPE_OLED096 1 /* OLED 0.96 inch */
#define DISPLAY_TYPE_OLED132 2 /* OLED 1.32 inch */
#define DISPLAY_TYPE                DISPLAY_TYPE_OLED096 /* ★★, 디스플레이 타입!! */

#define BUZZER_TYPE_ANALOG 0 /* 능동부저 */
#define BUZZER_TYPE_PASSIVE 1 /* 수동부저 */
#define BUZZER_TYPE                BUZZER_TYPE_ANALOG   /* ★★, 부저타입, 아날로그 타입 추천!! */

 

※  Updated Time : 2020-05-05
아래 1.5K 링코어에 사용된 버전으로, 대기모드에서 엔코더 조정시 타임이 조절되는 버전
핀배열 체크 필요!!
--삭제--

Updated Time : 2019-08-31
1. 엔코드 컨트롤 변경 :

> 대기상태에서만 오토모드와 수동모드를 변환하도록 함
> 설정모드일 경우 바로 대기상태로 변경, 특정 값을 수정후 순환하지 않고 바로 대기모드로 빠져나올 수 있게 함
2. 오토모드 실행시 cycle값이 60Hz 일 경우만 실행함
3. 프로그램 시작시 로고에 SW 버전 표시
--삭제--

 

최초 배포: 20180813_01
--삭제--

 

 

문제점(Trouble Shooting)

 

1. AC 스폿용접 회로 스트레스 테스트 - 수동 스폿 반복시 먹통(프리징) 현상 발견 및 해결방법

--> V2.8에서 SW 디바운싱 강화로 패치 완료!!

 

 

 

관련글

 

AC 스폿용접기 제작과 성능 이야기 - 링코어 2차 권선 두께 선정과 전압에 대하여!!

딱 DIY에 필요한 만큼의 전기/전자 지식을 조금씩 주어 들은지 두 해가 넘었고, 돌이켜보면 그 시작이 스폿용접기 제작인 것 같다. 지금까지 총 5대의 스폿용접기를 제작했으며,, 3호기 부터는 꼭

mindeater.tistory.com

 

6th 스폿기 - 수지형 1.5K 링코어로 괴물급(?) 아두이노 오토스폿용접기 제작

최근 오토스폿회로의 아두이노 스케치 파일을 업데이트 하면서 기존에 쓰던 5호기를 방출하고 LCD버전 검증을 위해 새롭게 하나 만들기로 해 겸사겸사 진행했다. 개인적으로 2K이상의 효율이 나

mindeater.tistory.com

 

.
.
.

 

 

스폿용접 회로 PCB 제작 및 분양

스폿용접 회로나 PCB가 필요하시면 아래 글 참고하세요!!

 

KiCad로 AC 오토스폿 용접 회로, PCB 아트웍 작업 및 샘플 주문 그리고 분양!!

너튜브 강좌를 시청하고 만들어 본 첫 PCB다!! 막연하게 PCB제작을 해보고 싶었는데 실전용 강좌들이 잘 만들어져 있어 어렵지 않게 진행할 수 있었다. 나름 기념비(?)적인 첫 PCB는 직접 아두이노

mindeater.tistory.com

 

 

 

 

728x90

HI!! 궁금한 점은 편하게 댓글로 문의주세요~

  1. 이전 댓글 더보기
  2. 무선조종 2020.11.13 12:47  address  modify / delete  reply

    마이크로옴미터 제작관련 Forum입니다.
    https://www.rcgroups.com/forums/showthread.php?3647559-MicroOhmmeter-Project-Revisited

    유의할 사항은 MCP3424 용 라이브러리는 MCP3424-master.zip을 사용하고 스케치 내의 모든 "SRxxB" 는
    "RxxB" 로 변경(여기서 xx 는 12,14,16,18 등임)해 주어야 합니다. 이 라이브러리가 나중에 수정된 모양인데
    저자는 예전 라이브러리 기준으로 작성했기 때문입니다.


    마이크로볼트미터 제작관련 웹사이트는
    http://www.paulvdiyblogs.net/2016/09/building-6-digit-digital-milli-voltmeter.html 입니다.

  3. 무선조종 2020.11.13 17:23  address  modify / delete  reply

    마이크로옴미터의 측정원리는 단순합니다.
    5옴 10와트정도의 저항, 0.1옴 정밀 저항 그리고 미지의 저항을 직렬로 연결한 후 1.3A 정도의 전류를 흘리고
    0.1옴 저항 양단의 전압을 측정하여 전체 전류를 정밀하게 파악한 후,
    미지의 저항 양단의 전압을 측정하여 옴의 법칙으로 저항값을 구하는 구조입니다.

    그런데 여기서 0.1옴 저항의 오차에 따라 전체적인 정밀도가 좌우되고 0.1% 짜리 0.1옴 1W 저항은 값이 좀 나가므로
    스케치내에서 이 저항값을 변수로 처리하고, 0.1옴 1% 저항을 커페의 초짜의비애(능선아래)님 등 정밀 측정기를 보유한
    분에게 부탁하여 측정한 정확한 저항값을 반영시키면 아주 정밀한 마이크오롬미터가 될것으로 생각합니다.
    1% 0.1옴 1W 저항을 알리익스프레스에 주문하여 오고 있으므로 나중에 몇 개 보내 드리겠습니다.

  4. BlogIcon 2021.01.29 11:09  address  modify / delete  reply

    수정 회로도에서 moc3021 6번에 연결된 1kΩ 저항에서 이전 회로도 반대쪽에 연결되어 있는데 이렇게 연결해도 문제가 없나요?

    • Favicon of https://mindeater.tistory.com BlogIcon 후니파파 MindEater™ 2021.01.29 11:19 신고  address  modify / delete

      이전 회로도는 처음 만능기판에 만들면서 작성한건데 그때부터 잘못 그린듯 싶네요.
      한번 만들어보고 남의 pcb에 더부살이하다보니 제대로 검증이 안된듯 싶습니다.

      이번 pcb제작하면서 보니 moc3021 6번 핀이 저항거쳐 트라이악 중간핀A2와 결선되어야 정상동작(스팟트리거) 되어 그렇게 수정했습니다.

      일단 이 회로도로 pcb주문예정인데 도착하면 최종 검증해서 완료할 생각입니다.

  5. 2021.01.29 12:25  address  modify / delete  reply

    확인되시면 댓글부탁드립니다.
    다른 회로도 몇 가지 봤는데 어떤게 확실한지 잘 모르겠습니다. 아직 초보라 정확한 분석이 어려운지라 답변주시면 이 회로도로 참고하여 제작해볼 예정입니다.

    • Favicon of https://mindeater.tistory.com BlogIcon 후니파파 MindEater™ 2021.01.29 12:56 신고  address  modify / delete

      혹시나 싶어 다른 회로도 찾아보았습니다.
      트라이악 중간핀에 연결하는 것이 맞습니다.
      혹시 이홈메이드클럽에 가입되어 있으시면
      https://m.cafe.naver.com/hssoon/185221
      이글 참고해보세요~

  6. 2021.01.29 14:03  address  modify / delete  reply

    네, 감사합니다. 그런데 A2에 연결 이후 ac측과 트랜스 연결측이 https://m.cafe.naver.com/diydj/59 카페 소개되어 있는 회로도와 달라서 문의드렸습니다. 저 회로도 한번 봐 주시고 검증해 주시면 감사드립니다. 아직 초보라 어떤게 정확한건지 잘 모르겠습니다.

  7. BlogIcon 2021.01.29 15:19  address  modify / delete  reply

    네, 오토 스폿기 diy(네이버카페 diy 대전공방) 입니다. 감사합니다.

    • Favicon of https://mindeater.tistory.com BlogIcon 후니파파 MindEater™ 2021.01.29 16:46 신고  address  modify / delete

      일단 네이버에서 검색은 안되는군요.
      뭐 다른 회로라고 하니 제가 테스트해볼 수 있는 환경은 안되는 거 같고,,
      위 제가 업데이트한 회로는 제대로 동작하는 건 검증되었습니다.
      만능기판으로 만드실거면 직접 테스트 해보셔도 될 듯 싶습니다. 오결선시 스폿 트리거가 안될뿐 소자소손은 없습니다.

  8. BlogIcon 2021.03.22 13:00  address  modify / delete  reply

    많은 정보 얻어 가서 늘 감사하게 생각합니다.
    그런데 다운 받은 최신 스케치파일 컴파일해 보니 에러가 나오는데 혹시 헤더파일 더 추가 해야 되는게 있나요?

    • Favicon of https://mindeater.tistory.com BlogIcon 후니파파 MindEater™ 2021.03.22 13:57 신고  address  modify / delete

      에고.. 어제 다른 분이 라이브러리 오류가 난다고 해서 급하게 첨부한 게 잘못 첨부한 듯 싶습니다.
      다시 다운로드 받으시고 라이브러리(PinChangeInt-master.zip)를 재설치해주시면 될 듯 싶습니다.

  9. 2021.03.22 19:15  address  modify / delete  reply

    네, 감사합니다. 다시 다운로드 해 보겠습니다.

  10. BlogIcon 2021.03.23 22:12  address  modify / delete  reply

    스케치 컴파일은 되는데 중간에 LiquidCrystal_I2C.cpp 관련 오류문구는 무시해도 되나요? 아님 헤더파일 문제인가요? (2.4, 2.5, 2.6 동일)

    헤더파일은 라이브러리 관리에서 다운받아 설치했습니다.

    • Favicon of https://mindeater.tistory.com BlogIcon 후니파파 MindEater™ 2021.03.23 23:07 신고  address  modify / delete

      라이브러리가 꼬인 듯 싶네요.
      IDE를 제거하시고 라이브러리를 다시 설치하시는 것도 좋을 것 같습니다.

      라이브러리 매니저에서 LiquidCrystal_I2C로 검색하면
      by Frank de Brabander 버전 1.1.2
      라고 된걸 설치해보세요


      +
      https://mindeater.tistory.com/2429
      이 글에 LCD 라이브러리 설치관련 내용이 있습니다.
      참고해보세요~!

  11. 2021.03.24 09:26  address  modify / delete  reply

    네, 다시 한번 해보겠습니다.

  12. 2021.03.25 12:14  address  modify / delete  reply

    스케치 2.6버젼에 //pinMode(PIN_ZERO_CROSS, INPUT_PULLUP); 핀모드를 주석처리한
    이유가 궁금합니다.

    • Favicon of https://mindeater.tistory.com BlogIcon 후니파파 MindEater™ 2021.03.25 12:26 신고  address  modify / delete

      갈님 예리하시네요..^^
      외부 PULLUP 저항이 있어 중복 적용된 케이스라 빼고 테스트 해봤는데 정상이라서 복원 생각을 못하고 그래도 배포했습니다.
      60Hz 디텍트가 되면 동작에 크게 영향없을 듯 싶습니다.

      +
      참 컴파일은 성공하셨는지요??

  13. BlogIcon 2021.03.25 15:17  address  modify / delete  reply

    아 네~^^
    가르쳐주신대로 해보니 에러 없이 컴파일 되네요.
    감사합니다. 여러모로 많이 배웁니다.

    참 2.6버젼에는 define LOW_TR_MODE 1 정의가 안되어 있는데 저전원 트랜스는 지원을
    PG_MODE_AUTO_L_TR_MODE 5 오토모드에서 선택하도록 바뀐거 맞나요?

    • Favicon of https://mindeater.tistory.com BlogIcon 후니파파 MindEater™ 2021.03.25 15:56 신고  address  modify / delete

      아 다행입니다. ^^
      네.. 오토모드에서 엔코더를 클릭해서 환경설정모드로 진입 후 LowTR Mode 값을 Yes/No로 선택할 수 있도록 했습니다.

      이전 버전(2.5)처럼 오토센싱이 극대화된 1500회 샘플링 값으로 고정 사용해도 크게 문제는 안될 듯 싶은데,,,
      메뉴에서 없앨지 아니면 링코어 특성을 알 수 있도록 샘플링 수치값을 직접 환경설정에서 가변으로 조종하도록 할지 고민입니다.

  14. 2021.03.25 21:40  address  modify / delete  reply

    대단하십니다. 덕분에 궁금한것들 많이 배웁니다.
    감사합니다.^^

  15. 이준호 2021.04.11 19:42  address  modify / delete  reply

    Nano 보드를 처음 구입하여 컴파일/확인시 아래 메세지가 뜨고
    C:\Users\leejunho\Documents\Arduino\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.h:79:8: note: initializing argument 2 of 'void LiquidCrystal_I2C::createChar(uint8_t, uint8_t*)'
    void createChar(uint8_t, uint8_t[]);
    ^~~~~~~~~~
    스케치는 프로그램 저장 공간 15374 바이트(50%)를 사용. 최대 30720 바이트.
    전역 변수는 동적 메모리 587바이트(28%)를 사용, 1461바이트의 지역변수가 남음. 최대는 2048 바이트.

    업로더시 아래 메세지가 뜨네요
    아직 많이 초보입니다
    avrdude: ser_open(): can't open device "\\.\COM6": ������ ������ ã�� �� �����ϴ�.


    보드에 업로딩중에 문제 발생. 다음을 참고하세요. http://www.arduino.cc/en/Guide/Troubleshooting#upload

    어떻게 해야 할지 모르겠네요 USB로 연결중 입니다


    • Favicon of https://mindeater.tistory.com BlogIcon 후니파파 MindEater™ 2021.04.11 20:02 신고  address  modify / delete

      라이브러리매니저에서 LCD 라이브러리 설치해주셔야 할 듯 슾습니다.
      https://mindeater.tistory.com/2429
      요기 가시면 LCD 라이브러리 설치하는 방법이 나옵니다.

      그 다음 PinChangeInt-master.zip 이것도 설치해주셔야하구요..

  16. 곰스 2021.04.18 11:56  address  modify / delete  reply

    안녕하세요 2.7 버전 업로드 하는데 오류가 뜨네요. 1602 lcd 입니다.

    exit status 1
    no matching function for call to 'createChar(int, const byte [8])'

    오류내용입니다 파일 받은후 아무것도 안건들고 컴파일만 해도 오류가 나네요.

    • Favicon of https://mindeater.tistory.com BlogIcon 후니파파 MindEater™ 2021.04.18 16:33 신고  address  modify / delete

      혹시 아두이노 IDE를 처음설치하신거면,,
      라이브러리 설치해주셔야합니다.
      https://mindeater.tistory.com/2429
      이 페이지에 LCD 라이브러리 설치 방법이 있으니 참고부탁드립니다.

  17. 곰스 2021.04.18 22:03  address  modify / delete  reply

    라이브러리는 설치되어있습니다. 2.6버전 2.5버전 업로드 잘되네요 2.7만 안됩니다

    • Favicon of https://mindeater.tistory.com BlogIcon 후니파파 MindEater™ 2021.04.18 22:46 신고  address  modify / delete

      위에 몇 분이 비슷한 문제가 있는듯 싶은데 IDE를 재설치해서 해결하신 듯 싶습니다.
      2.7버전은 이미 사람들이 업그레이드 하셔서 쓰고 있는 파일이라 말씀하신 이전 버전에선 이상이 없다는 게 신기하네요..^^;;

      혹시 모르니 IDE 라이브러리까지 클린삭제 한 다음 다시 설치하시고 라이브러리를 추가해보시면 어떨까 싶습니다.

  18. art0315 2021.04.23 13:48  address  modify / delete  reply

    PCB 아트웍이 간결하고 깔끔해서 좋습니다.

    CNC로 깍아서 하나 만들어 보니 좋습니다.

    2.7 버전 업로드시 PinChangeInt.h 이게 바이러스로 오진을 하는군요

    윈도우 기본백신 사용중입니다.

    예외로 지정하고 다시 하니 문제 없이 잘됩니다.

    한가지 질문 드립니다.

    부저 종류를 수동부저로 하면 오토스폿이 않되는것 같습니다.
    35Hz 나왔다가 59Hz 나왔다가 이런 현상과 함께

    능동부저로 바꾸면 아무 문제 없구요

    항상 감사합니다. ^^

    • Favicon of https://mindeater.tistory.com BlogIcon 후니파파 MindEater™ 2021.04.23 13:55 신고  address  modify / delete

      아.. PinChangeInt.h 는 완전 처음 접하신 분들을 위해 포함 시켰는데 차라리 조금 복잡해지더라도 스케치에 필요부분만 넣어버릴까 고민입니다. 이미 Rotary.h 를 그런식으로 추가했습니다.

      부저는 짚이는 데가 있네요.
      tone()함수 때문인데 이게 다른 인터럽트와 충돌이 발생하더라구요.
      조만간 시험해보고 패치해보겠습니다.

      알려주셔서 그리고 늘 응원해주셔서 감사합니다. ^^

  19. 2021.05.31 07:33  address  modify / delete  reply

    비밀댓글입니다

  20. 2021.05.31 07:49  address  modify / delete  reply

    비밀댓글입니다

    • Favicon of https://mindeater.tistory.com BlogIcon 후니파파 MindEater™ 2021.05.31 08:26 신고  address  modify / delete

      소스가 길어진 이유는 라이브러리를 포함하여 아두이노 첫 경험자들이 좀 더 쉽게 편하도록 올리도록 하는 목적입니다.
      다른 파일로 쪼개도 되는데 설명이 길어져서... ^^;;

      사실 이 소스도 초창기 카페등지에서 공유된 소스기반에서 출발하다보니 오래된 라이브러리가 그대로 사용되고 있습니다. 동작하는데는 지장이 없으나 유연성이 떨어지는데 특히 부저가 그렇습니다.

      능동부저만 지원하면 좋겠지만, 나름대로 내논 해결책이 v2.8입니다. 말씀하신 증상이 V2.8에서는 나오지 않을 것 같은데 맞는지요?? V2.7에서 수동 부저를 사용할때의 문제이고 OLED와는 무관하다고 판단되지만, OLED를 한 동안 안쓰다보니 저녁에 퇴근하면 검증을 해보도록 하겠습니다.

      +
      부품셋 분양은 2,3일 뒤에 가능할 듯 합니다.
      PCB한 장과 부품들을 모아 키트 형태로 분양하는 부품셋분양은 제가 생각하는 최종모습입니다.
      현재 부품 중 단자대가 내일쯤 도착할 듯 보입니다. 단자대 도착하면 시범적으로 3셋 정도 분양할 생각입니다. 조립/세척 후 검증끝낸 조립풀셋은 지금도 가능합니다.

      추가로 궁금한 사항은 sahngoh@gmail.com 으로 문의 주셔도 됩니댜.
      감사합니다.

  21. 류젬 2021.06.12 18:29  address  modify / delete  reply

    안녕하세요. 컴파일이 되질 않아 여쭈어볼려고 글을 남깁니다.

    60대의 아버지가 이런 분야를 좋아하시는데 저에게 아두이노? 업데이트 하고 싶다고 해서 도와드리고 있습니다.

    v2.5 까지는 어찌저찌해서 컴파일 완료 후 전송을 완료하였는데

    v2.6 부터 v2.8까지는 컴파일 누르면 어떤 오류가 나오면서 되는 것 같지 않습니다.

    제가 이쪽은 전혀 몰라 검색도 해보고 있지만 성공 못하고 있습니다.

    번거로우시겠지만 한번 봐주실 수 있을까요? 아버지가 꼭 하고싶다고 하시는데 못해드리고 있습니다 ㅠㅠ
    -------------
    C:\Users\RyuJM\Downloads\AcSpotWelder_HooneyPaPa_V2.6\AcSpotWelder_HooneyPaPa_V2.6.ino: In function 'void setup()':
    C:\Users\RyuJM\Downloads\AcSpotWelder_HooneyPaPa_V2.6\AcSpotWelder_HooneyPaPa_V2.6.ino:1052:36: warning: invalid conversion from 'const byte* {aka const unsigned char*}' to 'uint8_t* {aka unsigned char*}' [-fpermissive]
    lcd.createChar(CHAR_ONDO, charOndo);
    ^
    In file included from C:\Users\RyuJM\Downloads\AcSpotWelder_HooneyPaPa_V2.6\AcSpotWelder_HooneyPaPa_V2.6.ino:210:0:
    C:\Users\RyuJM\Documents\Arduino\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.h:79:8: note: initializing argument 2 of 'void LiquidCrystal_I2C::createChar(uint8_t, uint8_t*)'
    void createChar(uint8_t, uint8_t[]);
    ^~~~~~~~~~
    스케치는 프로그램 저장 공간 15240 바이트(49%)를 사용. 최대 30720 바이트.
    전역 변수는 동적 메모리 581바이트(28%)를 사용, 1467바이트의 지역변수가 남음. 최대는 2048 바이트.

    -----------

    확인해주시면 감사하겠습니다 (__)

    • Favicon of https://mindeater.tistory.com BlogIcon 후니파파 MindEater™ 2021.06.12 19:10 신고  address  modify / delete

      크리스탈 LCD 라이브러리를 추가해주셔야 할 듯 싶습니다. 제가 외부에 나와 있어 자세한 설명이 어려운데 아두이노 스케치 카테고리를 보시면 라이브러리 추가 방법이 있습니다.

      사용하시려는 디스플레이가 OLED인지 LCD인지에 따라 define값을 수정해 주어야 합니다.

    • BlogIcon 류젬 2021.06.13 11:07  address  modify / delete

      LiquidCrytal I2C 라이브러리가 깔려있으면 되는걸까요??

      해당 라이브러리는 깔려있는데 되질 않습니다

      또한 define은 2.8에서 검색해보니

      #define DISPLAY_TYPE_LCD1602 0 /* Crystal LCD 1602 */
      #define DISPLAY_TYPE_OLED096 1 /* OLED 0.96 inch */
      #define DISPLAY_TYPE_OLED132 2 /* OLED 1.32 inch */
      #define DISPLAY_TYPE DISPLAY_TYPE_LCD1602 /* ★★, 디스플레이 타입!! */

      #define BUZZER_TYPE_ANALOG 0 /* 능동부저 */
      #define BUZZER_TYPE_PASSIVE 1 /* 수동부저 */
      #define BUZZER_TYPE BUZZER_TYPE_ANALOG /* ★★, 부저타입, 아날로그 타입 추천!! */

      이렇게 되어있으니 LCD로 되어있는거죠?

      귀찮게해서 죄송합니다 ㅠㅠ

    • Favicon of https://mindeater.tistory.com BlogIcon 후니파파 MindEater™ 2021.06.14 11:25 신고  address  modify / delete

      아 제가 주말에 캠핑을 다녀와서 피곤해서 제대로 응대를 못했습니다.

      라이브러리 문제는 대부분 IDE를 클린삭제한 다음에 하나씩 다시 설치해주면 해결되는 경우가 많습니다.

      https://mindeater.tistory.com/2429
      참고해보세요~

    • BlogIcon 류젬 2021.06.18 18:16  address  modify / delete

      저런 오류 뜨면서 업로드하니 들어가지고

      하드웨어가 작동도 되서 우선 쓰고 있습니다

      답변 감사합니다 ^^