Estación de Retrabajo SMD Casera: Controlador Profesional para Pistola de Aire Caliente
Componentes y materiales
| Arduino Pro Mini 328 5V/16MHz (SparkFun) | 1 |
| Pantalla LCD 16x2 I2C (módulo PCF8574) | 1 |
| Encoder rotativo con pulsador | 1 |
| Mango pistola aire caliente compatible 858D (7 hilos) | 1 |
| Soporte + boquilla para pistola | 1 |
| Electrónica de potencia (ver esquema) | |
| TRIAC BTA12-600B | 1 |
| MOSFET IRFZ44N | 1 |
| OpAmp MCP602 (rail-to-rail) | 1 |
| Optoacoplador TRIAC MOC3052 | 1 |
| Optoacoplador 4N25 (sincronismo red) | 1 |
| Rectificador de puente | 1 |
| Diodo rápido FR107 | 1 |
| Capacitor 0.01µF 400V | 1 |
| Capacitores 100nF | 6 |
| Resistencias: 39Ω, 33kΩ(x2), 330Ω, 220Ω, 1kΩ(x3), 470Ω, 500k multivuelta, 10kΩ(x3) | ver lista |
| Zumbador | 1 |
Herramientas necesarias
- Soldador (para montaje PCB)
- Multímetro, osciloscopio (recomendado para verificar forma de onda TRIAC)
Software
- Arduino IDE
- Autodesk Eagle (diseño PCB)
Sobre el proyecto
Introducción
Controlador para pistola de aire caliente (mango 858D) usando Arduino Pro Mini. Implementa algoritmo PID para control preciso de temperatura (100-500°C) y control de ventilador por PWM. Aislamiento galvánico mediante optoacopladores (4N25 para sincronismo de red, MOC3052 para disparo TRIAC).
Paso 1: Cableado
Módulo LCD I2C
GND → GND → GND VCC → VCC → 5V SDA → A4 SCL → A5
Encoder rotativo
GND → GND + → NC (pull-up interno) SW → D5 DT → D3 CLK → D4
Mango pistola (7 hilos)
| Conector | Hilos | Conexión |
|---|---|---|
| 3 pines | Verde, Negro, Rojo | Rojo → Termopar + ; Verde → Reed switch ; Negro → Común GND |
| 2 pines | Azul, Amarillo | Azul → Ventilador + ; Amarillo → Ventilador - (GND) |
| 2 pines gruesos | Blanco, Marrón | Blanco → Resistencia calefactora ; Marrón → Resistencia (sin polaridad) |
Importante: Verifique el cableado de su mango específico siguiendo las pistas del conector.
Paso 2: Diagrama de bloques
- Interfaz: LCD I2C 16x2 + encoder. Muestra: temp objetivo, temp actual, velocidad ventilador, potencia aplicada, estado.
- Sensores: Termopar tipo K (amplificado por MCP602, ganancia ajustable con trimmer 500k) + reed switch (detecta mango en soporte).
- Controladores: (1) Ventilador: MOSFET IRFZ44N + PWM rápido en D9 (31.25 kHz). (2) Calefactor: TRIAC BTA12 + MOC3052, control por burst firing (número de semiciclos de red por período de 100ms). Sincronismo con 4N25 detectando cruce por cero.
Paso 3: PCB
Circuito complejo; se recomienda PCB profesional. Archivos Eagle y diseño EasyEDA disponibles: EasyEDA design. Fabricación en JLCPCB u otro servicio.
Paso 4: Firmware y librerías
El firmware (v1.4, dic 2020) implementa:
- PID con coeficientes Kp=50, Ki=16, Kd=50 (denominador 2^11).
- Control de calefactor por integral cycle control: en cada período de 100ms (10 semiciclos a 50Hz), enciende N semiciclos según potencia PID (0-99%).
- Menú navegable con encoder: giro lento = ±1°C, giro rápido = ±5°C. Pulsación corta = encender/apagar / cambiar parámetro. Pulsación larga en standby = menú setup.
- Modos: Standby, Trabajo (PID), Potencia fija, Setup (calibrar, tunear, guardar, cancelar, reset).
- Calibración automática a 3 puntos (200/300/400°C) con PID manteniendo temperatura.
- Modo Tune: ajuste manual de potencia para llevar mango a 400°C y calibrar ganancia OpAmp (lectura ADC ~900).
- Apagado automático por inactividad (detecta incremento de potencia).
- EEPROM para guardar configuración y calibración (gestión con checksum y registros circulares).
- EEPROM para guardar configuración y calibración (gestión con checksum y registros circulares).
Librerías requeridas: CommonControls, Time (descargar e instalar manualmente).
⚠️ CUIDADO: No conecte a red eléctrica mientras flashea el firmware. La fuente del ventilador no está aislada y puede dañar el PC.
Paso 5: Puesta a punto
- Cargar firmware, entrar en Setup → Tune.
- Encoder ajusta potencia fija; llevar mango a 400°C (termómetro externo).
- Cuando temperatura estable (baja dispersión), pitará. Ajustar trimmer 500k para lectura ADC ~900 (no saturar).
- Pulsación larga → menú. Setup → Calibrate. Seleccionar punto (200/300/400), mango calienta y pita. Introducir temp real con encoder. Repetir para 3 puntos.
- Setup → Save. Listo.
Paso 6: Vídeo
Ver vídeo de funcionamiento en la página del proyecto. Agradecimientos a sfrwmaker (autor del firmware) y LCSC (patrocinador componentes).
Código principal (extracto firmware v1.4)
/* Hot air gun controller v1.4 - atmega328 */
#include <avr/io.h>
#include <avr/interrupt.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <CommonControls.h>
#include <EEPROM.h>
#include <SPI.h>
// Pines
const uint8_t AC_SYNC_PIN = 2; // cruce por cero 220V (INT0)
const uint8_t HOT_GUN_PIN = 7; // TRIAC gate
const uint8_t FAN_GUN_PIN = 9; // PWM ventilador (Timer1)
const uint8_t TEMP_GUN_PIN = A0; // termopar amplificado
const uint8_t R_MAIN_PIN = 3; // encoder CLK (INT1)
const uint8_t R_SECD_PIN = 4; // encoder DT
const uint8_t R_BUTN_PIN = 5; // encoder SW
const uint8_t REED_SW_PIN = 8; // reed switch
const uint8_t BUZZER_PIN = 6;
const bool BUZZER_ACTIVE = true; // true=activo HIGH, false=pasivo (tone)
// Clases principales: CONFIG (EEPROM), HOTGUN_CFG (calibración PID), BUZZER, DSPL (LCD),
// HISTORY (buffer circular), EMP_AVERAGE (filtro exponencial), PID, FastPWM_D9, HOTGUN
// Ejemplo: clase PID (iterativa)
class PID {
long Kp=50, Ki=16, Kd=50; // * 2^11
int temp_h0, temp_h1; bool pid_iterate; long i_summ, power;
void resetPID(int temp=-1) { ... }
long reqPower(int temp_set, int temp_curr) { ... } // retorna potencia 0-99%
};
// Clase HOTGUN hereda PID y gestiona máquina de estados:
// POWER_OFF, POWER_ON, POWER_FIXED, POWER_COOLING
// syncCB() llamada desde ISR INT0 (cruce por cero) cada 10ms (50Hz)
// -> cuenta semiciclos, dispara TRIAC según actual_power
// -> lee ADC solo cuando TRIAC apagado (evita ruido)
// PWM ventilador 31.25 kHz en D9 (Timer1 phase/freq correct)
// OLED/I2C: 0x27, 16x2, caracteres custom (grado, ventilador, potencia)
// Loop principal: lectura encoder, menús, actualización display, llamada periódica a hotgun.keepTemp()
Código completo truncado por longitud. Descargue el firmware completo desde la página del proyecto o GitHub: ManojBR105/ARDUINO-SMD-REWORK-STATION
Esquemáticos
Ver sección Schematics: imágenes del circuito de control, potencia y fuente de alimentación. Incluye archivo Eagle (hot_air_gunsch_l627KvauMg.sch).
Proceso de manufactura
- Pantalla de Cristal Líquido (LCD): Tecnología, Fabricación y Perspectivas Futuras
- Thermocam DIY: de idea en el aula a producto global
- Construcción de una estación meteorológica exterior con Raspberry Pi 2 y ADS‑WS1
- Construya una estación meteorológica con Raspberry Pi que envíe datos diarios por email
- Retrato Embrujado DIY: Proyecto de Susto con Raspberry Pi (Actualizado)
- Estación Meteorológica Avanzada v2.0: Monitorización en Tiempo Real de Temperatura, Presión, Humedad y Altitud
- Kit esterilizador UVC DIY: caja UV de bajo costo y fácil construcción para artículos médicos y personales
- Construya un osciloscopio Arduino de 20 kHz en LCD Nokia 5110: Guía DIY fácil
- Crea Animaciones y Juegos en LCD 16×2 con Arduino UNO
- Osciloscopio DIY con Arduino Nano (10 Hz–50 kHz) y LCD 128×64
- Estación meteorológica Arduino Nano: Sensores BMP280, DHT11, UV y RTC en OLED 0,96"