하코 907 v2 납땜 인두 컨트롤러: 아두이노 DIY 프로젝트
부품 및 소모품
| 하코 907 납땜 인두 핸들 |
× |
1 |
| 5핀 항공 플러그 (GX16-5 또는 GX12-5 권장) |
× |
1 |
| DC-DC 컨버터 (24V 입력 → 5V 출력) |
× |
1 |
| 아두이노 나노 R3 |
× |
1 |
| LCD 8x2 (또는 16x2 호환 코드 별도 제공) |
× |
1 |
| MCP602 연산증폭기 (레일투레일) |
× |
1 |
| IRFZ44N MOSFET |
× |
1 |
| FR107 고속 회복 정류 다이오드 |
× |
1 |
| NPN/PNP 범용 트랜지스터 (MOSFET 게이트 드라이버용) |
× |
각 1 |
| 로터리 인코더 (푸시버튼 내장) |
× |
1 |
| 전해 커패시터 1000µF 35V |
× |
1 |
| 커패시터 100nF (4개), 저항 1kΩ(2), 10kΩ, 100kΩ(2), 10k 멀티턴(25턴), 500k 멀티턴, 부저 |
× |
각 1 |
프로젝트 소개
하코 907 호환 납땜 인두(히터 내장, 서미스터 또는 열전대 온도 센서)를 아두이노 나노로 정밀 제어하는 컨트롤러입니다. PID 알고리즘으로 ~30초 만에 설정 온도 도달, ±1~2°C 유지합니다.
주요 기능
- 서미스터/열전대 타입 모두 지원 (점퍼 JP1, JP2로 선택)
- PID 제어로 빠른 응답 및 안정적 온도 유지
- 3점 캘리브레이션 (200/300/400°C) 자동화
- 두 가지 작동 모드: 온도 유지 모드 / 수동 전력 모드
- 타이머1 고주파 PWM (31.25kHz) → 무소음 동작
- 가속 로터리 인코더 (천천히: 1°C, 빠르게: 5°C 스텝)
- 설정 온도 EEPROM 자동 저장
- 섭씨/화씨 단위 전환 지원
- 튜닝 모드로 초기 증폭기 게인 설정 간소화
- 자동 전원 차단 (유휴 감지 시) - 선택 기능
컨트롤러 메뉴 구조
대기 모드 (Standby)
- 상단 좌: 설정 온도, 상단 우: "OFF"
- 하단 좌: 현재 온도 (미연결 시 "no iron", 식으면 "cold")
- 인코더 회전 → 설정 온도 변경, 인코더 누름 → 메인 모드 진입
메인 모드 (온도 유지)
- 상단 좌: 설정 온도, 상단 우: "ON" (가열 중) → "rdy" (도달 시)
- 하단 좌: 현재 온도, 하단 우: 출력 전력 (%)
- 인코더 회전 → 설정 온도 실시간 변경, 인코더 누름 → 대기 모드 복귀
- 10초 내 온도 변화 없으면 "Failed" 표시 후 차단
전력 모드 (Power Mode)
- 메인 모드에서 인코더 길게 누름 → 진입
- 인코더로 출력 전력 직접 조절, 짧게 눌러 ON/OFF 토글
- 길게 눌러 메인 모드 복귀
설정 모드 (Setup)
- 대기 모드에서 인코더 길게 누름 → 진입
- 메뉴: 자동 전원 차단 시간(분), 온도 단위(°C/°F), 캘리브레이션, 튜닝, 저장, 취소, 기본값 복원
- 인코더로 항목 선택, 짧게 눌러 값 변경, 다시 눌러 확정, 길게 눌러 저장 후 복귀
센서 회로도: 서미스터 vs 열전대
MCP602 레일투레일 연산증폭기로 센서 신호 증폭 (출력 0~5V → ADC 0~1023).
- 열전대: JP1, JP2 오픈. 0°C→0mV, 400°C→~9mV. 500k 멀티턴으로 게인 조정.
- 서미스터: JP1, JP2 쇼트. 찬 상태 ~50Ω, 400°C→~200Ω. 10k 멀티턴으로 게인 조정.
초기 튠 모드: 설정 메뉴 → Tune → 인코더로 400°C 유지하며 멀티턴 포텐셔미터로 ADC 값 900~950 조정.
히터 구동 회로: 고주파 PWM 드라이버
MOSFET(IRFZ44N) 게이트 용량 문제로 고주파 PWM 시 트랜지스터 푸시풀 드라이버(NPN/PNP) 추가.
- 제너 다이오드 15V (D2): 게이트 전압 클램핑 (Vgs 보호)
- FR107 다이오드: MOSFET 오프 시 인덕티브 킥백 흡수 (고속 회복 필수)
- 1000µF 커패시터: 24V 입력단에 배치, 냉간 히터 저저항 돌입 전류로 인한 전원 리셋 방지
캘리브레이션 절차
- 설정 메뉴 → "calib." 선택
- 기준점(200/300/400°C) 선택 → 인코더 눌러 가열 시작
- PID가 목표 온도 도달 → 비프음 울림
- 외부 온도계로 실온 측정 → 인코더로 실온값 입력 → 눌러 저장
- 나머지 기준점 반복 (중복 캘리브레이션 가능, 매번 보간 공식 갱신)
- 길게 눌러 완료 → EEPROM 저장
자동 전원 차단 알고리즘
인두에 충격 센서가 없어 유휴 상태 판별이 어려움. 해결책:
- PID 파라미터 튜닝으로 유휴 시 온도/전력 분산 최소화
- 최소 전력값 대비 전력 증가 감지 → "사용 중"으로 판단
- 설정 시간(분) 동안 사용 미감지 시 자동 차단
- 신뢰성 한계 있음 → 설정에서 비활성화 가능
16x2 LCD 대응 버전
8x2 LCD 구하기 어려운 지역을 위해 16x2 호환 스케치 별도 제공 (GitHub). ManojBR님의 Eagle 회로도/PCB 설계도 참조 가능.
온도 변환 로직 (IRON_CFG::tempHuman)
내부 단위(0~1023) → 사람 읽기 단위(°C/°F) 변환:
- 3개 기준점(200/300/400°C) 간 선형 보간
- 200°C 미만: 주변 온도(기본 25°C/내부 350) ~ 200°C 사이 보간
- 열전대 사용 시 주변 온도 내부값을 0으로 변경 필요 (스케치 244~245행)
소스 코드
GitHub: soldering_907_lcd.ino
회로도 파일
Eagle 스키메틱 파일 제공: complete_9vLI2a96Rv.sch
업데이트 이력
- 2019/04/03: 회로도 및 설명 업데이트
- 2018/02/18: 캘리브레이션 절차 업데이트
- 2017/08/01: 스케치 버그 수정, 16x2 LCD 버전 추가
- 2017/07/31: 새 하드웨어 회로도 적용
- 2017/04/07: 새 기능 구현 (가속 인코더, 자동 전원 차단 등)