DIY SMD-ремонтная станция: профессиональный контроллер热风枪 на Arduino
Компоненты и материалы
| Компонент | Количество | Примечание |
|---|---|---|
| Arduino Pro Mini 328 5V/16MHz | 1 | Мозг контроллера |
| LCD 16x2 + I2C-модуль | 1 | Адрес 0x27 |
| Ротари энкодер с кнопкой | 1 | Управление |
| Ручка热风枪 (совместимая с 858D) | 1 | K-термопара, нагреватель 700Вт 230В, вентилятор 24В |
| Триак BTA12-600B | 1 | Управление нагревателем |
| MOSFET IRFZ44 | 1 | ПWM вентилятора |
| Операционник MCP602 | 1 | Усилитель термопары |
| Оптопара MOC3052 (диак) | 1 | Управление триаком |
| Оптопара 4N25 | 1 | Синхронизация с сетью |
| Диодный мост | 1 | Питание логики |
| Диод FR107 (быстрый) | 1 | Снятие питания с нагревателя |
| Конденсаторы, резисторы, потенциометры, зуммер | - | См. полный список в исходнике |
Инструменты и ПО
- Паяльница, припой, флюс, мультиметр, осциллограф (желательно).
- Arduino IDE, Autodesk Eagle (для PCB).
- Библиотеки:
CommonControls,Time(Paul Stoffregen),Wire,SPI,EEPROM,Adafruit_GFX,Adafruit_SSD1306(для I2C LCD —LiquidCrystal_I2C).
О проекте
Контроллер для промышленной熱風槍 (hot air gun) с PID-регулировкой температуры. Использует ручку типа 858D (K-термопара, нагреватель 230В 700Вт, вентилятор 24В). Управление нагревателем — через триак с опторазвязкой (управление количеством полуволн), вентилятор — PWM через MOSFET. Интерфейс: I2C LCD + ротари энкодер.
Принцип работы
- PID-алгоритм вычисляет мощность (кол-во полуволн в секунде) для поддержания заданной температуры.
- Синхронизация с сетью через 4N25 (нулевой переход) — точное управление фазой.
- Энкодер: вращение — уставка температуры/скорости вентилятора; короткое нажатие — переключение параметра; длинное (в выкл. состоянии) — меню настройки.
- Режим работы: ручка в держателе -> выкл. Подняли -> нагрев до уставки -> писк «Ready». Поставили -> выкл нагрева, вентилятор дует до остывания (<50°C) -> писк «Cold».
Меню настройки (Setup mode)
- Calibrate — калибровка по 3 точкам (200, 300, 400°C) с внешним термометром.
- Tune — первичная настройка усилителя термопары: нагреть до 400°C, подстроить 500к потенциометр чтобы ADC ~900.
- Save / Cancel / Reset Config — работа с EEPROM.
Этапы сборки
- Схемотехника: 3 блока — интерфейс (LCD+энкодер), датчики (термопара+реед-ключ), силовая часть (триак+MOSFET).
- PCB: схема сложная, рекомендуется заказать PCB (JLCPCB, EasyEDA проект: harws1-1).
- Прошивка: загрузить скетч (Firmware 1.4) через Arduino IDE (Pro Mini, 5V, 16MHz). Важно: не подключайте к сети 220В во время прошивки! Неизолированное питание вентилятора может убить USB/ноутбук.
- Настройка (Tune -> Calibrate -> Save).
Код (Firmware 1.4, основные классы)
Полный скетч большой (~1500 строк), доступен на GitHub: ManojBR105/ARDUINO-SMD-REWORK-STATION. Ниже — ключевые фрагменты архитектуры.
Конфигурация (EEPROM)
struct cfg {
uint32_t calibration; // упакованные 3 точки калибровки (по 10 бит)
uint16_t temp; // уставка температуры (внутренние единицы)
uint8_t fan; // уставка вентилятора 0-255
uint8_t off_timeout; // таймаут автоотключения
};
class CONFIG { /* чтение/запись в EEPROM с контрольной суммой и кольцевым буфером */ };
class HOTGUN_CFG : public CONFIG { /* перевод внутренних единиц <-> °C, калибровка */ };
PID-регулятор
class PID {
// Итеративная формула: Un = Un-1 + Kp*(Xn-1-Xn) + Ki*(Xs-Xn) + Kd*(Xn-2+Xn-2*Xn-1)
// Коэффициенты (подобраны экспериментально): Kp=50, Ki=16, Kd=50 (деноминатор 2^11)
long reqPower(int temp_set, int temp_curr); // возвращает мощность 0-99%
void resetPID(int temp);
};
Управление нагревателем (класс HOTGUN)
class HOTGUN : public PID {
// Режимы: POWER_OFF, POWER_ON, POWER_FIXED, POWER_COOLING
// Синхронизация: счетчик полуволн (period=100 -> 100 полуволн = ~1.66 сек при 50Гц)
// В syncCB() управляет триаком: включает на начале полуволны, выключает при достижении actual_power
// Температура: экспоненциальное усреднение (EMP_AVERAGE) + история (HISTORY) для дисперсии
// Вентилятор: FastPWM на D9 (Timer1, 31.25 кГц) для бесшумной работы
};
Дисплей (класс DSPL)
Обертка над LiquidCrystal_I2C с кастомными символами (градус, вентилятор, мощность). Методы: tSet(), tCurr(), fanSpeed(), appliedPower(), msgReady(), msgCold(), msgFail(), setupMode().
Схемы
- Основная схема контроллера (3 фото).
- Схема блока питания (5V/24V для логики и вентилятора).
- Файлы Eagle / EasyEDA для заказа PCB.
Безопасность и советы
- Гальваническая развязка критична! Используйте оптопары MOC3052 и 4N25. Проверьте изоляцию печатной платы (щели > 3мм под высоким напряжением).
- Термопара K: полярность важна (красный +, зеленый - для китайских ручек).
- Реед-ключ (геркон) в ручке: срабатывает при установке в держатель (магнит).
- Вентилятор 24В: питание от отдельного трансформатора/БП, общий GND с логикой через оптопару или изолированный DC-DC.
- Калибровка: нужен точный контактный термометр (термопара K + мультиметр).
Производственный процесс
- Жидкокристаллические дисплеи (LCD): технология, производство и перспективы
- DIY Thermocam: от идеи в классе к глобальному продукту
- Сборка уличной метеостанции на Raspberry Pi 2 и ADS‑WS1
- Создание метеостанции на Raspberry Pi с ежедневными email-отчётами о погоде
- DIY «Оживлённый портрет» на Raspberry Pi: проект с прыжковым скачком (обновлено)
- Продвинутая метеостанция v2.0: мониторинг температуры, давления, влажности и высоты в реальном времени
- DIY UVC-стерулизатор: бюджетный UV-коробок для медицинских и бытовых предметов
- Создание осциллографа на Arduino Nano с дисплеем Nokia 5110 (20 кГц): простое DIY-руководство
- Создание анимации и игр на LCD 16×2 с Arduino UNO
- Самодельный осциллограф на Arduino Nano (10 Гц – 50 кГц) с ЖК-дисплеем 128×64