Множественный таймер (мультитаймер) с привязкой к RTC
- Войдите на сайт для отправки комментариев
Сб, 29/08/2020 - 14:14
Имеем ардуинку (пусть будет Уно), группу кнопок (или энкодер) и часы реального времени. Нужно завести несколько таймеров, которые будут подавать сигнал через определённое время (к примеру, каждые 5 минут, каждые 8 минут, каждые 14 минут и т.д...), причём запускать каждый таймер каждый день нужно вручную.
Применение - конечная остановка автобусов, отъезжающих по разным маршрутам с разными интервалами движения. Настраивать планирую гибко: добавляю номер маршрута, интервал движения, записываю в ЕЕПРОМ. Выхожу из настроек, выбираю номер маршрута и запускаю конкретный таймер (то есть автобус отъезжает).
Не могу понять, с чего стартануть, нужно чтобы кто-то носом ткнул.
Применение - конечная остановка автобусов, отъезжающих по разным маршрутам с разными интервалами движения.
Уточняю: девайс должен подавать звуковой сигнал и выводить на экран номер маршрута, которому необходимо отправляться. Забыл про LCD-шку написать
Начни с построения структуры таблицы расписания.
Начни с построения структуры таблицы расписания.
Структуру я придумал. Это двумерный массив, в котором 3 столбца и плавающее количество строк.
Столбец 0 - id, которое связывает номер маршрута с его интервалом, столбец 1 - собственно номер (строковое имя) маршрута, и столбец 2 - интервал. Вот дальше начинаются грабли, которые я не могу понять. Как создать в EEPROM плавающий массив? То есть я хочу добавлять маршруты через настройки, а не вручную в коде скетча.
А расписания как такового нет, есть только интервалы движения, которые отличаются у всех маршрутов
Так же как и в обычной памяти. Ячейка для количества элемента и массив в остальных.
Не могу понять, с чего стартануть
По уму - вот с этого.
Если изучите как следует, то у Вас больше не будет ни таких топиков, ни архитектурных решений вроде описанного
двумерный массив, в котором 3 столбца и плавающее количество строк. Столбец 0 - id, которое связывает номер маршрута с его интервалом, столбец 1 - собственно номер (строковое имя) маршрута, и столбец 2 - интервал.
единственно достоинство которых - простота, но при разработке которых думали именно о простоте структуры, а вовсе не о простоте решения поставленной задачи. Потому, сразу же и
начинаются грабли
что естественно. Так всегда бывает, когда структура данных неадекватна задаче.
Ну, с вашим опытом изговнять любое решение не грех. Если можете посоветовать правильное решение для конкретного случая - подскажите. Тем более что я пишу в песочнице, а не в программинге. За книжку спасибо, но изучу по свободе.
Вот тебе таймеров гроздь
https://github.com/DetSimen/Arduino_TimerList