출처: https://mindeater.tistory.com/2327 [MindEater™ - Life Sketch]
AC 오토스폿 회로도
지금까지의 아두이노 스폿회로의 컨트롤 방식과의 차별화 및 안정성 출력향상를 위한 HW의 수정사항!!
2023년 10월 PCB 수정에 맞춰 펌웨어 V4.0릴리즈
MCU Atmega328P U 기반
MOC3021 컨트롤 방식 변경 (Sink IO 방식 채택)
부저 보호용 다이오드 추가
업그레이드 핀추가
PCB설계후 제작하 첫 스폿 회로
자동 스폿 개발 히스토리
2019년 8월 현재까지 수동 방식을 지원하는 회로와 다소 버그는 존재하지만 실 사용이 가능한 다수의 소스가 DIY카페에 공유되어 있다. 하지만 자동 방식은 전무한 상태다. 구글링을 통해 이런저런 자료를 검토해 본 결과 스너버회로에 의해 2차 권선에 유도된 전압을 이용하는 방법이 가장 현실성이 높아보였다.
스너버 회로는 220V 출력에 병렬로 연결되어 대기상태에서도 미세전류가 1차 권선에 공급되고 포토커플러를 이용하여 이 전압의 변화를 감지하는 방식이다. 락시꾼님은 이 값을 일정 기간 수집 후 평균값을 내어 의미있는 결과를 도출한 바 있다.
자동 스폿의 원리
<PC814 Function Diagram, 내부 회로>
1번과 2번에 전류가 흘러 LED가 발광하면 4번에서 3번 핀으로 전류가 흐르는 구조다.
스너버 회로의 미세 전류에 의해 포토커플러가 동작하고 스폿용접 하기 위해 동봉이 쇼트상태가 되면 포토커플러가 동작하지 않게 된다.
락시꾼님 아이디어를 그대로 소스에 반영 후 테스트를 해 본 결과 기본 동작은 확인했다. 다만 대기 상태에서 헛 데이타가 종종 읽혀 동봉 숏트가 아닌데도 오토스폿이 진행되는 문제가 빈번하게 발생하여 SW Debounce 코드로 보완하여 카페에 공유를 했었다.
그런데 이홈의 맹지동님이 그 글을 보시고 포토커플러의 수광부인 4번에 5V, 3번은 GND와 풀다운저항을 연결했을 때, 대기 5V 동봉 쇼트시 0V가 읽힌다는 실험 결과를 공유해주었다. 직접 테스트해보니 전압의 수치를 센싱하여 평균값을 활용하는 락시꾼님의 방법보다 HIGH/LOW만 읽는 맹지동님의 아이디어가 좀 더 깔끔해 이 방식을 토대로 구현하기로 했다.
구현!!
- 220v 인가시 6v가 유도되는 링코어에서 이 회로에 의해 2차 측에 대략 2V정도의 전압이 나오는데 포토커플러를 지속적으로 동작시키기 어려운 전압이다. 커패시터 용량을 0.2uf 로 테스트를 하니 튀는 증상이 현저히 줄어들었다. 0.2uF를 초과하면 트라이악 Turn-Off 제어가 오동작할 수 있으니 주의를 요한다.
- 풀다운 저항으로 220옴을 3번 핀 사이에 구성하여 테스트 해보았지만, 플로팅 증상이 너무 심했다. 핀모드를 INPUT으로 두고 테스트 꾸민 회로에서 풀다운저항이 제대로 동작을 안하는 걸로 추측된다.
- 자료를 찾아보다 아두이노 내부에 풀업저항(PULLUP)이 구현되어 있다는 걸 알게 되었고, 결국 포토커플러 3번핀은 GND, 4번 핀은 아두이노의 10번 핀에 저항없이 직결하여 성공했다. 이 경우 핀모드를 INPUT_PULLUP으로 설정해야한다.
- 2차측 센싱을 1차측으로 변경하니 플로팅 증상이 대폭 줄어들고 제작시에도 추가적인 결선이 필요없어 1차측 센싱방법으로 결정!!
AC 스폿 출력 컨트롤
스폿시간은 반(1/2)주기 8.33ms 단위로 총 몇 번의 반주기가 필요한지 계산을 하게 된다. 실제 스폿 액션이 실행되면 ZeroCrossing Point 시점부터 첫번째 반파 구간의 ZeroCrossing 포인트를 찾아 그 시점부터 역산한다. 이유는 사용된 소자 트라이악 BTA41의 STOP 시점이 ZeroCrossing 포인트 이기 때문이다. 몰라도 되지만 알아두면 스폿 타임 설정에 도움이 된다.
타임계산에 관련된 자세한 내용은 위 페이지에 기술되어 있다.
매뉴얼
V4.x
V3.0
V2.9G
V2.9F
펌웨어 업로드 프로그램
☞ V4.0이상은 다음 링크 참고
후니파파 AC스폿용접 컨트롤러 V4.x 이상 펌웨어 업데이터 지그 제작 방법
☞ V3.x와 V2.x대 아두이노 나노를 사용한 초기 버전의 회로를 업데이트 할 수 있습니다.
1. 아래에서 최신 펌웨어 이미지를 다운로드 한 후 압축해제
2. Hex file에서 해당 파일을 선택
3. Device는 사진처럼 Nano(Atmega328) 선택 (V2.X버전 아두이노 나노의 경우)
Atmega328P U는 DIY8Mhz(ATmega328) 를 선택
3. USB 케이블을 연결후 나오는 COM port를 설정
4. Upload를 누르고 맨 오른쪽 처럼 "xxxxx bytes uploaded" 라고 나오면 성공
%% USB 연결이 안되면 아래 파일 설치하시고 USB를 다시 연결하시면 됩니다.
버전별 히스토리 및 펌웨어
Version 4.1 (2024-08-24)
1. 스폿품질 개선
2. 50Hz Base Code 추가
Atmega328
위에 V4.0 업그레이드 글 참고
구버전 PCB용 펌웨어
V3.0이하 버전으로 칩을 탈거하여 전용 툴을 만들어 구워야 합니다.
개인이 업그레이드하기 까다로울수 있습니다.
Atmega328P (P)U - OLD PCB(V2.0이하)
Arduino Nano - 버전 (V2.0 이하)
아두이노 나노를 회로에서 분리한 다음 USB케이블로 PC와 연결, 위에 첨부한 xLoader 프로그램을 이용하여 업그레이드 하시면 됩니다.
---- OLD History ----
Version 4.0 (2023-10-05)
1. 듀얼펄스(이중, 더블펄스) 지원
2. 리뉴얼 PCB 스폿컨트롤방식 (Sink IO Control) 지원
3. 수동모드 Spot Beep 설정 추가
4. HW 변경타입 설정 시간 변경 (15초->25초) - 사용자 실수로 초기화 대신 HW 타입 변경을 막기 위함
5. 최대 멀티스폿 조절 (6회 -> 4회)
6. 메뉴 인터페이스 변경
Atmega328P (P)U
- 폐기-
다음은 이전 버전 - 구입시 펌웨어 버전 V3.0 이하 PCB에 적용가능한 펌웨어입니다.
Atmega328P (P)U - OLD PCB(V2.0이하)
-- 폐기 --
Arduino Nano - OLD PCB (V2.0 이하)
Fine Name : AcSpotWelder_HooneyPaPa_V4.0.Na no_PCB_V2.0.hex (17,524 bytes)
-- 폐기 --
Version 3.0 (2023-04-07)
[2023-04-08] AC 오토 스폿용접기 컨트롤러 회로 - 펌웨어 V3.0 릴리즈!!
1. 스폿강도 조절 방식에 전력균등분할 방식인 PWR(파워) 모드 추가, 기존 방식인 Time 과 선택할 수 있도록 함
2. 조절분해능 X2 기능, 50ms 이하에서 0.5step 단위로 조정
3. 초기화시 Default 값 일부 조정
4. LCD/Encoder Type 변경하는 메뉴 시간 조절 (초기화 하려다 HW 타입이 변경되는 실수 방지 목적)
5. 8ms 이하 스폿시 안정화 패치 (V2.9F MCU 센싱 오류패치와 이번패치로 불균형은 99%해소된것으로 기대됨!!)
아두이노 Nano 버전
---
Atmega328P (P)U
Version 2.9G (2023-03-18)
> LowTR Mode를 Yes/No에서 0-9까지 미세조절하는 방식으로 교체
Version 2.9F (2022-06-23)
> 국내전용버전으로 Fix (AC 60Hz만 지원)
> CLCD I2C 칩 (PCF8574T/PCF8574AT)을 모두 지원하도록 함
Time 1ms에서 15초 이상 누르고 있으면 로터리 엔코더 방향전환
그 외 시간은 CLCD 타입 전환
> Atmega168P U 칩 사용할 수 있도록 코드 슬림화
※ Version 2.9d (2022-01-08)
1. 로터리 엔코드가 HW 마다 좌우 회전이 반대일 경우에 대하여 SW적으로 선택할 수 있도록 함
> 12초 동안 엔코더를 누르면 좌우 회전시의 동작이 토글됨
2. 엔코더 누르는 시간 일부 조정
> 8~10초 사이는 초기화, 12초 이상은 로터리 엔코더 방향 토글
> 이후 분양 버전은 2.9d로 진행합니다.
> 최근 언짢은 일들이 계속되어 소스코드는 일단 비공개하기로 하고 바이너리 파일로 대체합니다.
> 위에 첨부한 Xloader을 이용하면 업로드 하실 수 있습니다.
※ Version 2.9c (2021-11-28)
1. 1~8ms 구간 스폿불균형 문제 해결
2. 엔코더 조정시 AC Hz 튀는 현상 보완
3. 오토센싱 카운트 조정 ( 안정화 ) --> 일부 전자렌지 EI 코어도 저항 교체없이 잘 동작함!!
4. 수동 스폿시 간헐적으로 투스폿이 되는 회로가 있어(아두이노 모듈에 따라 간헐적으로 발생) --> SW 디바운싱 타임을 조정
※ 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 라이브러리를 소스에 추가 (초보자를 위한 작업복잡도 감소)
※ Version 2.7 (2021-04-09)
1. 오토모드 최소 대기시간 수정 3-->2 (좀 더 빠른 작업을 위한)
2. 총 스폿회수 즉시 저장을 스폿이 끝나고 idle시간에 저장 (EEPROM 수명연장을 위함)
※ Version 2.6 (2021-03-09) : 베타버전
1. 오토모드에서 환경설정 항목 추가
A-Beep : 오토센싱시 부저 On/Off
LowTR Mode : 전자렌지 변압기처럼 오토센싱이 오동작할 때 SW 샘플링 극대화 모드!!
2. 온도 표기를 한 자리로!!
※ Version 2.5 : 2020-02-28
전자렌지 EI 트랜스에서 오토센싱 지원
R9 저항을 91K --> 30~40K 교체가 필요함!!
※ 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
--삭제--
.
.
.
AC 오토 스폿용접 회로 분양 페이지!!
참고글