Потихоньку осваиваюсь с ардуинкой, но все еще нуб

Проект на железе:
- arduino nano
- lcd1602
- ультразвуковой датчик
- энкодер 360 с кнопкой
- 2 кнопки
- корпус устройства.
Максимальная дистанция замера 2 метра.
=====функции=====
1. Замер расстояния (в моем случае это огромный рулон бумаги).
Замер происходит по нажатию на кнопку и замеряет пока кнопка нажата. После отпускания кнопки значение замера должно остаться на экране и сброситься в ноль через 4 секунды.
2. Линейка. По замеру высоты подсчитывает колличество штук. К примеру пачка 50 листов. Высота пачки 1 метр. Исходя из высоты подсчет колличества штук (т.е. высота одного листа 20см).
3. Меню.
В меню заходим и выходим энкодером.
В меню можно выбирать режим работы.
1) режим измерения диаметра
2) режим линейки с подсчетом
А) установка листа 20см высотой
Б) установка листа 30см высотой
И так далее до 10 пунктов.
Первый наброски уже есть.
Но вот не могу понять как сделать фиксацию значения по нажатию кнопки. Назовем эту кнопку - "замер"
Ну и конечно меню с предустановками и режимами работы. Тут я потерялся совсем.
Прошу вашего совета!!!
И возможно стоит рассмотреть такой вариант не с ультразвуковым датчиком?
===========начальная работа над дальномером================