Подробнее о паяльном столике в статье.
В электронике используется термистор, переменный резистор в качестве регулирощика температуры, драйвер на базе симистра для управления нагревателем утюга и сегментный дисплей.
Для работы с термистром я написал простенький класс расчитывающий температуру с использованием уравнения Стайнхарта-Харта. Идея с усреднением значений позаимствована из примеров alexgyver. Также написал класс для работы с переменным резистором для выбора температуры (в целом мне не особо нравится его использование и будущем планирую заменить на энкодер - во первых это позволит более точно и быстро задавать температуру, уберет проблему с прыганьем значений в середине диапазона, а также добавит возможность задавать и регулировать температуру параллельно из последовательного порта и энкодера (на данный момент последовательный резистор - дает абсолютное значение, что в целом мешает построить логически простой интерфейс двумя источниками истины setpoint)).
Я решил использовать класс ПИД регулятора от alexgyver. Класс содержит много дополнительных настроек, таких как выбор режима расчета, выбор типа данных для расчета, инверсия для управлящего сигнала, режим ограничения интегральной суммы.
Также я позаимствовал и добавил в код подход, который позволяет вывести информацию в последовательный порт и визуализировать её с помощью инструмента Arduino IDE – Serial Plotter, а также задать значения коэффициентов ПИД регулятора и setpoint.
Также в будущем возможно переделаю управление нагревателем более низкой частотой (10 Гц), например с использованием библиотеки GyverPWM.