Доработал Ваш блок. Светодиод статуса не удалось выкинуть наружу.
Добавлено (25.03.2017, 18:37)
---------------------------------------------
Теперь блок не зависает программу в error(), нет delay(), ожидание ключей при программировании 20 секунд, потом выход в обычный режим.
Добавлено (25.03.2017, 18:37)
---------------------------------------------
Стирание можно производить в любое время.
Добавлено (25.03.2017, 18:39)
---------------------------------------------
Anydy писал(а):if (saveKey) EEPROM.write(511, 0);
Это не работает потому как это Setup и до цикла Loop(), где читается внешняя кнопка, мы еще не дошли.
Добавлено (25.03.2017, 18:50)
---------------------------------------------
Anydy писал(а):Почему в скетче применен тип Byte а не Bool для входа/выхода? Есть мысли?
потому как это номер пина в командах pinMode(), digitalWrite(), digitalRead().
Добавлено (25.03.2017, 18:55)
---------------------------------------------
Anydy писал(а):Срабатывает, но перекидывает в функцию (error)....с какого перепуга?))
выход из loop() происходит командой return, куда она приведет - не знаю.
Вообще исходный скетч, из которого Вы делали блок, написан ужасно. Зависания, задержки... черти что.