[Перевод] «Сторож» 3D-принтера и испытатель термисторов
Когда-то хроники происшествий пугали нас возгораниями ламповых телевизоров, теперь эстафету переняли 3D-принтеры. У большинства из них имеется защита от неконтролируемого перегрева стола, и если температура превышает заданную, происходит отключение нагревателя. Никогда не деактивируйте эту функцию.
Но МОП-транзисторы и твердотельные реле, управляющие нагревателем, иногда «вылетают», после чего стол разогревается до максимально достижимой температуры, и отключить его программно становится невозможно. Особенно опасны нагреватели с сетевым питанием.
Предлагаемый прибор измеряет термистором температуру стола, после доработки он может дополнительно мониторить нагрев других точек, например, сопла и драйверов ШД. При перегреве он отключает сетевое питание принтера.
При всём многообразии датчиков для измерения температуры, выбор автора пал на 100-килоомный термистор типа 3950 с отрицательным температурным коэффициентом. Он используется и в самих 3D-принтерах, поэтому прибором можно испытывать такие термисторы.
Вам потребуются:
Arduino Uno или Nano (автор использовал Nano с модулем расширения)
ЖКИ на 2 строки по 16 символов с последовательным интерфейсом и адаптером для шины I2C
Энкодер KY040
Релейный модуль для Arduino с опторазвязкой и пятивольтовым управлением (переводчик добавил бы после него контактор с мостиковыми контактами)
Пятивольтовый звукоизлучатель со встроенным генератором
100-килоомный термистор типа 3950 с отрицательным температурным коэффициентом. Дополнительные такие же термисторы, если собираетесь делать прибор с многоточечным измерением
Вводной 3-контактный разъём для стандартного компьютерного шнура питания
Розетка с заземляющим контактом для подключения вашего 3D-принтера
12-вольтовый блок питания, например, от роутера.
Проводники, метизы, паяльник, 3D-принтер для печати корпуса прибора, и т.д.
Автор напечатал корпусные детали из PLA с 25-процентным заполнением. STL-файлы прилагаются.
Корпус
Передняя панель
Крышка
Ручка
При сборке руководствуйтесь схемой и комментариями в скетче. Можно применять перемычки Дюпон или припаивать провода к штырькам на плате. Применяйте провода такой длины, чтобы всё поместилось в корпус, а при снятии передней панели ничего не натягивалось. Линия Vref подключена к источнику 3,3В для повышения точности.
Ссылка на схему
Вводной разъём и розетку можно разместить на корпусе, а можно сделать конструкцию несъёмной, включив её в разрыв шнура питания принтера. Будьте осторожны при работе с сетевым напряжением.
Применение нормально разомкнутых контактов обеспечивает подачу напряжения на принтер лишь при одновременном соблюдении двух условий: «сторож» запитан, а перегрева нет. После обнаружения перегрева принтер остаётся отключённым даже при пропадании и восстановлении сетевого напряжения, пока устройство не сбросят вручную.
Перед заливкой скетча необходимо добавить в Arduino IDE библиотеки LiquidCrystal_I2C и EEPROM.
Скетч
После включения ЖКИ покажет текущую температуру и максимальную температуру за всё время наблюдений.
Затем ЖКИ покажет целевую температуру.
Чтобы сбросить максимальную температуру, нажмите на ручку энкодера.
Задайте целевую температуру вращением ручки, затем нажатием сохраните изменение.
При обнаружении перегрева «сторож» отключит принтер и подаст звуковой сигнал длительностью в одну минуту. Устройство не возобновит подачу питания до ручного сброса.
Для сброса и возобновления подачи питания на принтер нажмите ручку энкодера.
Максимальная и целевая температуры, а также состояние перегрева хранятся в энергонезависимой памяти во избежание самопроизвольного включения принтера при пропадании и восстановлении сетевого напряжения.