Controlador para Soldador Hakko 907 v2: Proyecto Arduino DIY
Componentes y materiales
| Mango soldador Hakko 907 (termopar o termistor) | 1 |
| Conector aviación 5 pines (GX16-5 / GX12-5) | 1 |
| Conversor DC-DC (ej. 24V → 5V para Arduino) | 1 |
| Arduino Nano R3 | 1 |
| Pantalla LCD 8x2 (o 16x2 con sketch alternativo) | 1 |
| OpAmp MCP602 (rail-to-rail, DIP-8) | 1 |
| MOSFET IRFZ44N | 1 |
| Diodo recuperación rápida FR107 | 1 |
| Transistor NPN genérico (ej. 2N2222, BC547) | 1 |
| Transistor PNP genérico (ej. 2N2907, BC557) | 1 |
| Encoder rotativo con pulsador | 1 |
| Capacitor 1000µF 35V | 1 |
| Capacitores 100nF | 4 |
| Resistencias: 1kΩ(x2), 10kΩ, 100kΩ(x2), 10k multivuelta (25 vueltas), 500k multivuelta | ver lista |
| Zumbador | 1 |
Herramientas y software
- Soldador
- Arduino IDE
Sobre el proyecto
Controlador económico para Hakko 907
Actualizado 2019/2020: esquemáticos, calibración, correcciones de firmware, soporte LCD 1602. El controlador funciona con mangos Hakko 907 (calefactor + sensor termopar o termistor). Se recomienda cambiar el conector original por aviación GX16-5.
Características clave
- Compatible con mangos termopar y termistor (selección por jumpers JP1/JP2).
- Algoritmo PID: calentamiento ~30s, estabilidad ±1-2°C incluso bajo carga.
- Tres puntos de calibración (200/300/400°C) con procedimiento automático asistido por PID.
- Dos modos: Temperatura (PID) y Potencia fija.
- PWM silencioso a 31.25 kHz (Timer1) en lugar de 490 Hz estándar.
- Encoder acelerado: giro lento ±1°C, giro rápido ±5°C.
- Guardado automático de temperatura en EEPROM tras uso.
- Unidades °C / °F seleccionables.
- Modo Tune para ajuste inicial de ganancia OpAmp (ADC ~900 a 400°C).
Menú del controlador
| Modo | Entrada | Descripción |
|---|---|---|
| Standby | Encendido | Muestra temp objetivo, "OFF", temp actual. "no iron" si desconectado. "cold" si <50°C tras uso. |
| Temperatura (Principal) | Pulsación corta encoder | PID activo. Muestra objetivo, "ON"/"rdy", temp actual, % potencia. Encoder ajusta objetivo. Pulsación corta → Standby. |
| Potencia fija | Pulsación larga en Principal | Encoder ajusta potencia directa. Pantalla: potencia (unidades internas) + temp real. Pulsación corta enciende/apaga. Larga → Principal. |
| Setup | Pulsación larga en Standby | 7 ítems: timeout apagado auto (min), unidades °C/°F, calibración, tune, guardar, cancelar, reset defaults. Navegación con encoder. |
| Calibración | Desde Setup | Seleccionar punto 200/300/400°C → encender → pita al llegar → medir con termómetro externo → introducir valor real → guardar. Repite para cada punto. |
| Tune | Desde Setup | Calienta a 400°C con potencia manual. Ajustar trimmer 500k para ADC ~900. Pulsación larga para salir. |
Esquemático de acondicionamiento de sensor
Un solo esquema cubre ambas variantes:
- Termopar: JP1 y JP2 abiertos. Termopar → MCP602 (ganancia ajustable por trimmer 500k). Salida 0-5V → A0.
- Termistor: JP1 y JP2 cerrados. Divisor resistivo con termistor → MCP602 buffer/ganancia.
El MCP602 rail-to-rail permite usar todo el rango ADC (0-1023). El trimmer 500k ajusta ganancia para que 400°C ≈ 4.5V (ADC ~900).
Etapa de potencia: driver MOSFET alta frecuencia
El MOSFET IRFZ44N tiene capacitancia de gate significativa. Para conmutar a 31.25 kHz se usa driver push-pull con par de bipolares (NPN/PNP) que entregan corriente de pico para carga/descarga rápida del gate.
- Zener 15V (D2) limita Vgs del MOSFET.
- Diodo FR107 (recuperación rápida) desvía corriente inductiva al apagar.
- Capacitor 1000µF en entrada 24V evita caídas de tensión al arrancar calefactor frío (resistencia muy baja).
Calibración del soldador
El firmware guarda lecturas ADC internas para 200, 300, 400°C. La conversión a °C/°F usa interpolación lineal entre puntos adyacentes. Por debajo de 200°C interpola entre temperatura ambiente (configurable) y 200°C.
Requiere termómetro externo de referencia. Cargar defaults antes de primera calibración.
Apagado automático por inactividad
Detecta uso monitorizando incremento de potencia respecto al mínimo en reposo. PID afinado para minimizar dispersión de temperatura y potencia en idle. Si potencia sube ligeramente → se considera "en uso". Desactivable si da falsos positivos.
Alternativa: usar mango con sensor de movimiento/golpe para detección fiable.
Sketch para LCD 1602
Disponible en GitHub junto al de 8x2. También existe proyecto derivado de Manoj con PCB en Eagle.
Conversión de temperatura y tipos de sensor
Método IRON_CFG::tempHuman() interpola linealmente. Temperatura ambiente definida en líneas ~244-245 del sketch: para termistor ~350 (ADC), para termopar ~0 (ADC). Ajuste según su sensor.
Código fuente
Repositorio completo: GitHub sfrwmaker/soldering_907_lcd
Incluye: clases CONFIG, IRON_CFG, PID, DSPL (LCD), BUZZER, FastPWM_D9, HOTGUN (reutilizada), gestión EEPROM con checksum, menús, calibración, tune, PID iterativo.
Esquemáticos
Ver sección Schematics: archivo Eagle complete_9vLI2a96Rv.sch con circuito completo (sensor, driver MOSFET, fuente, interfaz).
Proceso de manufactura
- Sistema de Sensor de Temperatura Multiposición para Integración en Hogar Inteligente
- Mando USB para juegos DIY con Arduino – Construye tu propio gamepad de alto rendimiento
- Controlador DIY para soldador 862D+ — Precisión y fiabilidad
- MotionSense: Detección inteligente de intrusos con Arduino y ESP8266
- Prevención de Incendios en Impresoras 3D: Sistema de Seguridad con Sensor Inteligente
- Integración MIDI para Órganos Digitales: Componentes y Guía de Configuración
- Levitación magnética repulsiva con Arduino: Circuito simple y guía DIY
- Robot pinza controlado remotamente para manipulación de precisión
- CoroFence: Detector Térmico Avanzado con Sensor PIR e Integración IoT
- Proceso FINEX: Producción Avanzada de Hierro Líquido con Finos de Mineral y Carbón No Coquizable
- Componentes Invar 36: Materiales, Propiedades y Compra Fiable