Страница 1 из 1

Работа с прерываниями на Arduino Leonardo

Добавлено: 09 сен 2022, 22:28
AndrewPan
Здравствуйте.
Помогите разобраться с поставленной задачей.
Есть 4 входа (входы идут с кнопок) и 4 выхода (выходы идут на реле).

По нажатию на первую кнопку (кратковременное нажатие - без удерживания) должно включиться 1-ое реле и оставаться в таком состоянии пока не будет нажата вторая кнопка, после чего 1-ое реле должно выключиться, а 2-ое включиться и оставаться во вкл. состоянии пока не будет нажата третья кнопка, после чего 2-ое реле должно выключиться, а 3-е включиться и оставаться во вкл. состоянии пока не будет нажата четвертая кнопка, после чего 3-ое реле должно выключиться, а 4-ое включиться и оставаться во вкл состоянии пока не ОПЯТЬ не будет нажата первая кнопка- цикл повторяется.

Сначала я пробовал задействовать в качестве пинов для кнопок 2,3,4,5 и таблицу состояний для определения нажатой кнопки и включения соответствующего реле- однако при таком подходе происходило довольно длительный перерыв между сменой состояний реле (и как мне кажется время срабатывания "гуляло")

И я решил что раз на Леонардо есть 4 пина с прерываниями (0,1,2,3) то следует задействовать их - однако при этом блок реле вообще начинает жить своей жизнью.

Очень прошу помочь разобраться с задачей, так как подобное мне будет встречаться часто.

Работа с прерываниями на Arduino Leonardo

Добавлено: 09 сен 2022, 22:36
artemka19
проект предлагается самим сделать?)

Работа с прерываниями на Arduino Leonardo

Добавлено: 09 сен 2022, 22:41
AndrewPan
artemka19 писал(а): 09 сен 2022, 22:36 проект предлагается самим сделать?)
все мои попытки не привели к должному результату ((
прошу помочь - хотя бы с 3 кнопками 1,2,4

Работа с прерываниями на Arduino Leonardo

Добавлено: 09 сен 2022, 23:06
Phazz
А прерывания зачем?

Работа с прерываниями на Arduino Leonardo

Добавлено: 09 сен 2022, 23:46
AndrewPan
Phazz писал(а): 09 сен 2022, 23:06 А прерывания зачем?
как я понял срабатывание прерывания имеет наивысшую скорость срабатывания - к сожалению как работать с ними в flprog я не сог найти ((

Работа с прерываниями на Arduino Leonardo

Добавлено: 10 сен 2022, 07:11
Naladchik
AndrewPan писал(а): 09 сен 2022, 23:46 прерывания ... как работать с ними в flprog ...
Делал под свою задачу элементарный блок (при срабатывании прерывания пишет состояние в переменную проекта), подойдет - забирайте.
[spoiler=просто пример.]
Interrupt.flp
[/spoiler]

Работа с прерываниями на Arduino Leonardo

Добавлено: 10 сен 2022, 11:33
Dryundel
AndrewPan писал(а): 09 сен 2022, 22:28 По нажатию на первую кнопку (кратковременное нажатие - без удерживания) должно...
А что должно произойти если включено третье реле и нажали вторую кнопку?
Какое поведение планируется если хронология нажатий кнопок 1, 2, 3, 4 нарушена?

Отправлено спустя 4 минуты :
Phazz писал(а): 09 сен 2022, 23:06 А прерывания зачем?
AndrewPan писал(а): 09 сен 2022, 22:28 происходило довольно длительный перерыв между сменой состояний реле (и как мне кажется время срабатывания "гуляло")
[ref=#808080]Phazz[/ref], тут или цикл непомерный или человек просто запутался.
Не видя проекта, сложно сказать.

Работа с прерываниями на Arduino Leonardo

Добавлено: 10 сен 2022, 13:53
AndrewPan
[ref]Naladchik[/ref],
Большое спасибо за блок с прерываниями - пользовался поиском, но не находил (если вы не выкладывали в общий доступ, то пожалуйста добавьте в репозиторий - штука полезная !!!)