Вимкнули світло
Стаття відноситься до принтерів:

Трохи передісторії.Є у мене замовник з одного сонячного міста, і там є деякі проблеми з харчуванням. Іноді світло відключають на пару секунд, а часом і кілька годин. Жодної періодичності чи розкладу, зрозуміло, немає. З цією проблемою замовник до мене звернувся. Я, як і всі, як і багато хто порадив йому поставити джерело безперебійного харчування. Так, це допомагає, але від короткочасних відключень. Що ще можна зробити? Цим питанням поставив я. І рішення є, більше того, ця опція на самому початку розробки замислювалася, але реалізація, як завжди, затягнулася.
І так, що ми маємо: 1. Принтер. У цьому випадку це RK-1, але може бути інший будь-який принтер. Як FDM, і DLP.Важливе зауваження-принтер повинен відстежувати напруги живлення з блоку живлення (тавтологія, але не страшно, суть зрозуміла). 2. Мережа з нестабільною напругою (живленням).
Суть методу зводиться до того що, що напруга живлення з блоку живлення не падає з номіналу до нуля моментально. А є якийсь перехідний процес. Причому час падіння напруги залежить від навантаження. Чим більше навантаження, тим менший час і навпаки.
Це ми повинні використовувати.
Крок перший. Відстежуємо падіння напруги. Напруга живлення блоку живлення 24В, якщо напруга живлення падає менше 20В і знаходиться в цій області більше 10 мс, то запускається процес зупинки та збереження.
Крок другий. Вимкнення дисплея, зупинка крокових моторів та зняття з них навантаження.
Крок третій. Вимкнення лазерного діода.
Виходить, що всі основні споживачі ми відключили і можемо автономно працювати якийсь час від блоку живлення. Графік падіннянапруги виглядає приблизно так:

Але, робота на цьому не закінчена. Необхідно зберегти в енергонезалежну пам'ять такі параметри:
- поточне положення осі Z та режим (був підйом або опускання);
- ім'я файлу, що друкується;
- номер рядка файлу, на якому були зупинені крокові двигуни.
Після увімкнення "принтер" дивиться, чи є записи про зупинку друку. Шукає файл на флешці, шукає рядок, на якому було зупинено друк. І запускає процес друку.
Але, є нюанси: Перший: вісь Z не потрібно чіпати, якщо рухи по Z не відбувалося. Другий: не можна обнулювати осі по кінцевиках. Справа в тому, що кінцевики не такі точні, як хотілося б, хоч стоять і оптичні. Потрібно робити так: знаючи поточне положення на осі, зміститися до кінцевика і запустити лазер, після чого повернутися у вихідне положення і продовжити друк. Аналогічно можна зробити і у разі роботи з FDM принтером. Хоча, можливо, там це і не позначиться на моделі (не буде видно).