iDryer RP2040: руководство по меню¶
Как читать меню¶
global— параметр общий для всего устройства.per controller— параметр хранится отдельно для каждого контроллера (UNIT).- Для
toggleв интерфейсе используются состоянияON/OFF. - Для некоторых
uint8значений интерфейс показывает текст: LANGUAGE:0=RU,1=ENPORT 1/2/3:EXT/SCR/SCL/LNK(см. раздел GLOBAL -> PORT CONFIG)
Верхний уровень MENU¶
КОНТРОЛЛЕР(CONTROLLER)СУШКА(DRYING)ХРАНЕНИЕ(STORAGE)ПРОФИЛЬ(PROFILE)ПРЕСЕТЫ(PRESETS)ВЕСЫ(SCALES)НАСТРОЙКИ(SETTINGS)ОБЩИЕ(GLOBAL)
CONTROLLER (global)¶
| Пункт | Тип | Диапазон | По умолчанию | Логика |
|---|---|---|---|---|
КОНТРОЛЛЕР |
value | 0..2 |
0 |
Выбор активного UNIT. Все параметры per controller редактируются для него. При изменении значение ограничивается сверху units_count-1. |
DRYING (per controller)¶
| Пункт | Тип | Диапазон | По умолчанию | Логика |
|---|---|---|---|---|
ТЕМПЕРАТУРА |
value | 30..110 °C, шаг 1 |
60 |
Целевая температура воздуха в сушке. |
ВРЕМЯ |
value | 0..600 мин, шаг 1 |
240 |
Длительность сушки. |
СТАРТ |
action | - | - | Запуск режима Drying для активного UNIT. Если Temp или Time равны 0, используется fallback 60 °C и 30 мин. |
Логика таймера сушки:
- Отсчет начинается не в момент нажатия
СТАРТ, а когда воздух вошел в допуск±1 °Cот целевой температуры. - После истечения времени:
- если
SETTINGS -> STORAGE -> AUTO STORAGE = ON, происходит переход в Storage; - если
OFF, контроллер останавливается (Idle).
STORAGE (per controller)¶
| Пункт | Тип | Диапазон | По умолчанию | Логика |
|---|---|---|---|---|
ТЕМПЕРАТУРА |
value | 35..90 °C, шаг 1 |
45 |
Базовая температура хранения (если выбран режим по температуре). |
ВЛАЖНОСТЬ |
value | 5..30 %RH, шаг 1 |
12 |
Целевая влажность для режима по влажности. |
ПО ВЛАЖНОСТИ (BY HUMIDITY) |
toggle | ON/OFF |
ON |
ON: приоритет влажности. OFF: приоритет температуры. |
СТАРТ |
action | - | - | Запуск режима Storage с текущими параметрами активного UNIT. |
Логика Storage:
- Если приоритет влажности
ON, нагрев включается/выключается по RH с гистерезисом иMIN HOLD(см. SETTINGS -> STORAGE). - Если приоритет влажности
OFF, поддерживается температурная цель Storage.
PROFILE (per controller)¶
PROFILE START¶
| Пункт | Тип | Диапазон | По умолчанию | Логика |
|---|---|---|---|---|
ПЕРВЫЙ ЭТАП |
value | 1..10, шаг 1 |
1 |
Номер этапа, с которого стартует профиль. |
СТАРТ ПРОФИЛЯ |
action | - | - | Запускает профиль из 10 этапов для активного UNIT. |
ЭТАПЫ 01..10¶
Для каждого этапа есть три параметра:
ТЕМПЕРАТУРА:30..110 °C, шаг1ПОДЪЕМ(RAMP):0..1200 мин, шаг1УДЕРЖАНИЕ(HOLD):0..1200 мин, шаг1
Значения по умолчанию:
| Этап | Temp, °C | Ramp, мин | Hold, мин |
|---|---|---|---|
| 01 | 50 | 5 | 1 |
| 02 | 60 | 5 | 1 |
| 03 | 70 | 5 | 1 |
| 04 | 60 | 5 | 1 |
| 05 | 50 | 5 | 1 |
| 06 | 70 | 5 | 1 |
| 07 | 90 | 5 | 1 |
| 08 | 75 | 5 | 1 |
| 09 | 65 | 5 | 1 |
| 10 | 55 | 5 | 1 |
Логика выполнения профиля:
- Каждый этап состоит из фазы
RAMP, затемHOLD. - В
RAMPцелевая температура меняется плавно по времени от текущей к целевой этапа. - Переход к следующему этапу выполняется, когда для
HOLDодновременно выполнено: - прошло заданное время удержания;
- текущая температура достигла порога (примерно не ниже целевой - 1 °C).
- После последнего этапа профиль завершает работу и переводит контроллер в Idle.
PRESETS (global)¶
Каждый пресет содержит:
ТЕМПЕРАТУРАВРЕМЯСТАРТ(запуск Drying активного UNIT с параметрами пресета)
Общий диапазон времени для всех пресетов: 0..600 мин, шаг 5.
| Пресет | Температура (min..max), °C | Температура default, °C | Время default, мин |
|---|---|---|---|
| PLA | 35..55 | 45 | 240 |
| PLA-CF | 35..55 | 45 | 240 |
| PLA-GF | 35..55 | 45 | 240 |
| PETG | 50..70 | 60 | 180 |
| PETG-CF | 55..75 | 65 | 180 |
| PETG-GF | 50..70 | 60 | 180 |
| ABS | 70..90 | 80 | 240 |
| ABS-CF | 80..100 | 90 | 240 |
| ABS-GF | 80..100 | 90 | 240 |
| PA | 80..100 | 90 | 240 |
| PA-CF | 90..110 | 100 | 240 |
| PA-GF | 90..110 | 100 | 240 |
| PC | 90..110 | 100 | 360 |
| PC-CF | 90..110 | 100 | 360 |
| MY1 | 60..80 | 70 | 360 |
| MY2 | 70..90 | 80 | 360 |
| MY3 | 80..100 | 90 | 360 |
SCALES (global)¶
NUMBER OF MODULES¶
| Пункт | Тип | Диапазон | По умолчанию | Логика |
|---|---|---|---|---|
КОЛ-ВО МОДУЛЕЙ |
value | 0..4 |
0 |
Количество активных модулей весов (HX711). При изменении вызывается setNumSensors(). |
TARE¶
| Пункт | Тип | Диапазон | По умолчанию |
|---|---|---|---|
КАТУШКА 1 |
value | 0..2000 г, шаг 1 |
0 |
КАТУШКА 2 |
value | 0..2000 г, шаг 1 |
0 |
КАТУШКА 3 |
value | 0..2000 г, шаг 1 |
0 |
КАТУШКА 4 |
value | 0..2000 г, шаг 1 |
0 |
CALIBRATION¶
Для каждой катушки (1..4):
ПРИНЯТЬ НОЛЬ(SET ZERO) — калибровка нуляПРИНЯТЬ 1000 Г(SET 1000 G) — калибровка точки 1000 г
SETTINGS (per controller)¶
STORAGE¶
Основные¶
| Пункт | Тип | Диапазон | По умолчанию | Логика |
|---|---|---|---|---|
АВТО ХРАНЕНИЕ (AUTO STORAGE) |
toggle | ON/OFF | ON | После завершения Drying автоматически стартует Storage. |
АВТО СУШКА (AUTO DRY) |
toggle | ON/OFF | ON | Пункт присутствует в разработке. |
ПО ВЛАЖНОСТИ (BY HUMID)¶
| Пункт | Тип | Диапазон | По умолчанию | Логика |
|---|---|---|---|---|
ГИСТЕРЕЗИС % |
value | 1..10 %, шаг 1 |
5 |
Для RH-режима: включение нагрева при RH >= target + hyst; выключение при RH <= target; переключения ограничены MIN HOLD. |
ПО ТЕМПЕРАТУРЕ (BY TEMP)¶
| Пункт | Тип | Диапазон | По умолчанию | Логика |
|---|---|---|---|---|
АБС/%СУШКИ (ABS/%DRY) |
toggle | ON/OFF | OFF | OFF = абсолютная температура хранения (STORAGE -> TEMPERATURE), ON = процент от последней температуры сушки (lastDryTemp). |
% ОТ T СУШКИ (% OF DRY TEMP) |
value | 50..100 %, шаг 1 |
90 |
Используется при режиме %DRY. |
ОБЩЕЕ (COMMON)¶
| Пункт | Тип | Диапазон | По умолчанию | Логика |
|---|---|---|---|---|
МИН. СОСТОЯНИЕ (MIN HOLD) |
value | 5..600 с, шаг 5 |
30 |
Минимальное время между переключениями нагрева в Storage-by-Humidity. |
Важно по температурной цели Storage:
- Температура хранения ограничивается в коде диапазоном
45..air_max_temp. - В
%DRYиспользуетсяlastDryTemp(последняя целевая температура Drying).
PID HEATER¶
| Пункт | Тип | Диапазон | По умолчанию |
|---|---|---|---|
Kp |
float | 0..1000, шаг 0.1 |
9.810 |
Ki |
float | 0..1000, шаг 0.01 |
0.084 |
Kd |
float | 0..1000, шаг 0.1 |
87.825 |
GAIN |
float | 0.1..50, шаг 0.01 |
9.810 |
Autopid |
action | - | - |
PID CHAMBER¶
| Пункт | Тип | Диапазон | По умолчанию |
|---|---|---|---|
Kp |
float | 0..1000, шаг 0.1 |
5.873 |
Ki |
float | 0..1000, шаг 0.01 |
0.18 |
Kd |
float | 0..1000, шаг 0.1 |
50.402 |
GAIN |
float | 0.1..200, шаг 0.01 |
5.873 |
Autopid |
action | - | - |
Логика PID:
- Коэффициенты применяются сразу после изменения.
- Внутри контроллера
GAINучаствует как множитель усиления PID. GAINвPID HEATERэто общий множитель усиления PID-регулятора нагревателя.
Как работает:
- он масштабирует реакцию контура целиком;
- при увеличении
GAINнагреватель реагирует агрессивнее и быстрее выходит на цель; - при уменьшении
GAINреакция мягче и стабильнее, но выход на цель медленнее.
Практически:
- слишком маленький
GAIN-> «вялый» нагрев, долгий выход на уставку; - слишком большой
GAIN-> перерегулирование, колебания, возможная нестабильность. Autopidзапускает автонастройку для активного UNIT:PID HEATER: целевая температура ~80% отMAX TEMPнагревателя;PID CHAMBER: целевая температура берется из текущегоDRYING -> TEMPERATURE.
HEATING¶
| Пункт | Тип | Диапазон | По умолчанию | Логика |
|---|---|---|---|---|
MAX TEMP (МАКС.НАГРЕВАТЕЛЬ) |
value | 30..150 °C, шаг 1 |
130 |
Базовый лимит нагревателя. |
MAX AIR TEMP (МАКС.ТЕМП.ВОЗДУХ) |
value | 30..120 °C, шаг 1 |
90 |
Базовый лимит воздуха. |
DELTA (ДЕЛЬТА) |
value | 0..45, шаг 1 |
35 |
Смещение для каскадного управления heater setpoint относительно air target. |
DELTA ABS/% |
toggle | ON/OFF | OFF | OFF=абсолютная DELTA, ON=процент от текущей air target. |
DELTA — это не “прибавка к температуре воздуха”, а запас по температуре нагревателя
относительно целевой температуры воздуха.
Например, DELTA = 35 означает:
- контроллер может держать целевую температуру нагревателя примерно на
+35 °Cвыше текущей целевой температуры; - это нужно, потому что воздух, проходя через нагреватель, забирает только часть тепла, а часть энергии теряется.
Почему так:
- сразу после нагревателя поток горячее, но уже через несколько сантиметров начинает смешиваться с более холодным воздухом в камере;
- из-за смешения, температура воздуха быстро становится ниже температуры поверхности нагревателя;
- поэтому для удержания нужной температуры воздуха нагреватель работает “с запасом”.
Итого:
DELTAзадаёт энергетический запас для корректной каскадного PID регулятора;- маленькая
DELTAможет давать недогрев и медленный разгон; - слишком большая
DELTAповышает риск перегрева филамента.
CHECK (проверка нагревателя)¶
| Пункт | Тип | Диапазон | По умолчанию |
|---|---|---|---|
ERROR LIMIT |
value | 0..500, шаг 10 |
150 |
TEMP GAIN |
value | 0.1..10.0 °C, шаг 0.1 |
1.0 |
CHECK WINDOW |
value | 5..120 с, шаг 1 |
20 |
PWM START % |
value | 10..100 %, шаг 5 |
30 |
Фактическая логика CHECK:
CHECK — это часть контура безопасности. Его задача: подтвердить, что при подаче мощности
на нагреватель система видит ожидаемую реакцию по температуре.
Это помогает обнаруживать неисправности:
- слабый/неработающий нагреватель;
- плохой контакт в цепи;
- некорректную работу датчика (термистора);
- ситуацию, когда мощность подается, но прогрева нет.
Если реакция нагрева не соответствует ожиданию, прошивка поднимает ошибку
Heater not heating и прерывает текущий цикл управления.
Параметры ERROR LIMIT, TEMP GAIN, CHECK WINDOW, PWM START %
подбираются под конкретную систему: объем камеры, теплопотери корпуса,
мощность нагревателя и воздушный поток.
Примеры:
- Небольшая камера и мощный нагреватель: можно уменьшать
CHECK WINDOWи/или повышатьTEMP GAIN, чтобы быстрее ловить аномалии. - Большая камера с высокой инерцией: разумно увеличить
CHECK WINDOWиERROR LIMIT, чтобы снизить риск ложных срабатываний. - Ложные срабатывания на старте: обычно помогает немного поднять
PWM START %и увеличитьCHECK WINDOW.
Аварийные остановы по температуре:
- Air: авария при
air_temp >= MAX AIR TEMP + 5 °C. - Heater: авария при
heater_temp >= MAX TEMP + 10 °C.
FAN¶
| Пункт | Тип | Диапазон | По умолчанию | Логика |
|---|---|---|---|---|
ON THRESHOLD |
value | 40..70 °C, шаг 0.5 |
55 |
Температура включения вентилятора. |
HYSTERESIS |
value | 5..20 °C, шаг 0.5 |
5 |
Выключение при temp < ON THRESHOLD - HYSTERESIS. |
HYSTERESIS нужен, чтобы вентилятор не щелкал слишком часто около порога.
Логика простая:
- включение: при достижении
ON THRESHOLD; - выключение: только после снижения температуры ниже
ON THRESHOLD - HYSTERESIS.
SERVO¶
| Пункт | Тип | Диапазон | По умолчанию | Логика |
|---|---|---|---|---|
CLOSED ANGLE |
value | 0..180°, шаг 1 |
20 |
Угол закрытого положения. При изменении выполняется предпросмотр (servo preview). |
OPEN ANGLE |
value | 0..180°, шаг 1 |
50 |
Угол открытого положения. При изменении выполняется предпросмотр. |
CLOSED TIME |
value | 0..3600 с, шаг 1 |
600 |
Время удержания в закрытом положении. |
OPEN TIME |
value | 0..600 с, шаг 1 |
30 |
Время удержания в открытом положении. |
SMART MODE |
toggle | ON/OFF | OFF | Умное управление заслонкой по тренду влажности в активной сушке. |
SERVO помогает отводить из сушилки воздух с повышенной влажностью.
Частота открытия/закрытия заслонки зависит от конкретных условий:
влажности пластика, объема камеры и влажности внешнего воздуха.
Значения по умолчанию являются рабочей отправной точкой и подобраны опытным путем.
Поведение таймеров заслонки:
- Если
OPEN TIME = 0иCLOSED TIME > 0, заслонка удерживается закрытой. - Если
CLOSED TIME = 0иOPEN TIME > 0, заслонка удерживается открытой.
GLOBAL (global)¶
PORTAL¶
| Пункт | Тип | Логика |
|---|---|---|
CLAIM (СВЯЗАТЬ) |
action | Запускает процедуру привязки через UART Link и выводит статус. |
IGNOR EXT CMD (ИГНОР КОМАНД) |
toggle | Режим «телеметрия без удалённого управления». |
CLAIM:
- пункт предназначен для привязки устройства к порталу через UART Link;
- сейчас основной сценарий Link обычно выполняется на
install.idryer.orgв общем потоке: прошивка, подключение к Wi-Fi и привязка к порталу; - в следующих версиях прошивки сценарий
CLAIMбудет расширяться.
IGNOR EXT CMD:
- позволяет оставить весь функционал портала (телеметрия, статистика, учёт филамента), но отключить применение входящих внешних команд;
- если нужен максимальный локальный контроль, можно включить этот режим;
- важно: в текущей версии прошивки флаг сохранён в меню, но полноценная фильтрация внешних команд по этому флагу пока в процессе внедрения.
SESSION COUNTER¶
| Пункт | Тип | Диапазон | По умолчанию | Назначение |
|---|---|---|---|---|
DRYING |
value | 0..65535 |
0 |
Счетчик запусков сушки. |
STORAGE |
value | 0..65535 |
0 |
Счетчик запусков хранения. |
PROFILE |
value | 0..65535 |
0 |
Счетчик запусков профиля. |
Счетчики инкрементируются при переходе в соответствующий режим. Назначение счетчиков: учет количества циклов (сушки/хранения/профилей), анализ интенсивности использования, планирование обслуживания и оценка эксплуатационной нагрузки на инфраструктуру.
PORT CONFIG¶
| Пункт | Тип | Диапазон | По умолчанию |
|---|---|---|---|
PORT 1 |
value | 0..3 |
2 (SCL) |
PORT 2 |
value | 0..3 |
3 (LNK) |
PORT 3 |
value | 0..3 |
1 (SCR) |
Расшифровка значений:
0 = EXT(дополнительный модуль)1 = SCR(экран)2 = SCL(весы)3 = LNK(UART link)
Ограничения валидности (UI не дает выбрать запрещенные комбинации):
- Port1: только
EXTилиSCL. - Port2:
EXT,SCLилиLNK. - Port3:
SCRилиLNK. - Режимы
SCR,SCL,LNKмогут быть только в одном порту одновременно. Port2=EXTдопустим только еслиPort1=EXT.
UNITS¶
| Пункт | Тип | Диапазон | По умолчанию | Логика |
|---|---|---|---|---|
КОЛ-ВО ЮНИТОВ (UNITS) |
value | 1..3 |
1 |
Ограничивается аппаратным максимумом (calcMaxUnits()), после чего корректируется активный CONTROLLER. |
LANGUAGE¶
| Пункт | Тип | Диапазон | По умолчанию |
|---|---|---|---|
ЯЗЫК (LANGUAGE) |
value | 0..1 |
1 |
Значения:
0 = RU1 = EN
Короткие сценарии¶
- Ручная сушка:
CONTROLLER -> DRYING -> TEMPERATURE/TIME -> START. - Сушка пресетом:
PRESETS -> материал -> START. - Хранение по влажности:
STORAGE -> BY HUMIDITY=ON -> START, затем настройкаSETTINGS -> STORAGE -> HYSTERESIS % / MIN HOLD. - Хранение по % от сушки:
SETTINGS -> STORAGE -> ABS/%DRY=ON, задать% OF DRY TEMP, затемSTORAGE -> START. - Профиль:
PROFILE -> PROFILE START -> FIRST STAGE -> PROFILE START.