Причем желательно использовать МИНИМУМ "сторонних библиотек" - все модули писать самостоятельно, с использованием исключительно того, что в базовом "референсе" IDE имеется.
Тогда можно таки весьма точно отследить возможные источники сбоев/ошибок.
Как исключение - высокоскоростные протоколы микроLAN и WS2812.
И то... в проблемных ситуациях предпочтение работе с такими устройствами через промежуточные самодельные "СБИС периферии с мозгами", программа которых написана под ассемблером.
А с "головой" в виде адуриньи они связываются каким-либо "стандартным" протоколом, имеющимся в распоряжении средств "референса".
Автоматика обычно из двух основных частей состоит - собственно регулятор и интерфейс пользователя.
Как вариант - делать два раздельных блока - один собственно съём, анализ параметров и регулирующее воздействие обеспечивает.
Он же выдает оперативную индикацию и имеет кнопки аварийного управления.
Второй - режим дисплея изменения параметров и клавиатуру управления для интерактивной смены настроек выполняет.
В качестве второго варианта может рассматриваться и терминальная программа в ПК.
А лучше делать совместимый вариант с единым протоколом связи и управления...
Это общие для особо требовательных к надежности/безотказности проектов требования.
Не пытайтесь сразу впихнуть совмещение множества одновременно используемых аппаратных функций в один кристалл (особенно в случае с ардуино!).
Такие задачи успешно можно решить исключительно под ассемблером (и то с заметным расходом времени и нервовых клеток).


