Это все понятно.
Здесь можно посмотреть текущий результат
https://yadi.sk/d/fRpmNIsbrCGNvподписи на фото поясняют, что снято
В начале скеча(программы) даны пояснения и постарался в самой проге поподробнее расписать , где что делается.
Из соображений минимальных ресурсов макет собран на Ардуино Уно и шильде дисплея с кнопками,
как уже ранее писал, они просто стыкуются вместе, шильд садится сверху Ардуины.
Все питается и программируется через USB кабель.
В качестве источника синхросигнала 50Гц. выступала другая Ардуина Мега 2560, ее угол виден на фото.
Что можно сказать....
можно сказать, что Уно и прочие малоразмерные Ардуины не слишком подходят для аппаратной обработки, т.е. когда быстро и точно следует отслеживат и реагировать на внешние сигналы. т.к.
эти платы имеют всего три таймера, которые используются в той или иной степени
встроенными функциями Ардуино.
В общем, большая часть времени ушла не на писание самой программы, а отлавливание глюк, которые возникали в самых неожиданных местах..., например, на опросе клавиатуры.
Это. так сказать, плата за простоту Ардуины.
На простых платах удобно реализовывать именно сервисные функции, которые не требуют мгновенного реагирования на событие.
Тем не менее сейчас тест работает, правда. на некоторых временах заметно дрожат фронты.
Это собственно к чему, к тому, что в таких задачах лучше ориентироваться на более продвинутые модели, хотя они и несколько дороже.
Таже Мега2560 имеет на борту 6 таймеров, 3 из которых должны быть полностью свободны, и шильд с кнопками и дисплеем на нее садится так же сверху.
В общем стоит поменять платы местами в моем макете и не стараться экономит на спичках