Работа с прерываниями на Arduino Leonardo
Работа с прерываниями на Arduino Leonardo
Здравствуйте.
Помогите разобраться с поставленной задачей.
Есть 4 входа (входы идут с кнопок) и 4 выхода (выходы идут на реле).
По нажатию на первую кнопку (кратковременное нажатие - без удерживания) должно включиться 1-ое реле и оставаться в таком состоянии пока не будет нажата вторая кнопка, после чего 1-ое реле должно выключиться, а 2-ое включиться и оставаться во вкл. состоянии пока не будет нажата третья кнопка, после чего 2-ое реле должно выключиться, а 3-е включиться и оставаться во вкл. состоянии пока не будет нажата четвертая кнопка, после чего 3-ое реле должно выключиться, а 4-ое включиться и оставаться во вкл состоянии пока не ОПЯТЬ не будет нажата первая кнопка- цикл повторяется.
Сначала я пробовал задействовать в качестве пинов для кнопок 2,3,4,5 и таблицу состояний для определения нажатой кнопки и включения соответствующего реле- однако при таком подходе происходило довольно длительный перерыв между сменой состояний реле (и как мне кажется время срабатывания "гуляло")
И я решил что раз на Леонардо есть 4 пина с прерываниями (0,1,2,3) то следует задействовать их - однако при этом блок реле вообще начинает жить своей жизнью.
Очень прошу помочь разобраться с задачей, так как подобное мне будет встречаться часто.
Помогите разобраться с поставленной задачей.
Есть 4 входа (входы идут с кнопок) и 4 выхода (выходы идут на реле).
По нажатию на первую кнопку (кратковременное нажатие - без удерживания) должно включиться 1-ое реле и оставаться в таком состоянии пока не будет нажата вторая кнопка, после чего 1-ое реле должно выключиться, а 2-ое включиться и оставаться во вкл. состоянии пока не будет нажата третья кнопка, после чего 2-ое реле должно выключиться, а 3-е включиться и оставаться во вкл. состоянии пока не будет нажата четвертая кнопка, после чего 3-ое реле должно выключиться, а 4-ое включиться и оставаться во вкл состоянии пока не ОПЯТЬ не будет нажата первая кнопка- цикл повторяется.
Сначала я пробовал задействовать в качестве пинов для кнопок 2,3,4,5 и таблицу состояний для определения нажатой кнопки и включения соответствующего реле- однако при таком подходе происходило довольно длительный перерыв между сменой состояний реле (и как мне кажется время срабатывания "гуляло")
И я решил что раз на Леонардо есть 4 пина с прерываниями (0,1,2,3) то следует задействовать их - однако при этом блок реле вообще начинает жить своей жизнью.
Очень прошу помочь разобраться с задачей, так как подобное мне будет встречаться часто.
Работа с прерываниями на Arduino Leonardo
все мои попытки не привели к должному результату ((
прошу помочь - хотя бы с 3 кнопками 1,2,4
Работа с прерываниями на Arduino Leonardo
как я понял срабатывание прерывания имеет наивысшую скорость срабатывания - к сожалению как работать с ними в flprog я не сог найти ((
-
- Капитан
- Сообщения: 908
- Зарегистрирован: 04 окт 2015, 19:10
- Откуда: Новосибирск
- Имя: Павел
- Благодарил (а): 20 раз
- Поблагодарили: 22 раза
Работа с прерываниями на Arduino Leonardo
Делал под свою задачу элементарный блок (при срабатывании прерывания пишет состояние в переменную проекта), подойдет - забирайте.
[spoiler=просто пример.] [/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Dryundel
- Полковник
- Сообщения: 2474
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Благодарил (а): 10 раз
- Поблагодарили: 52 раза
Работа с прерываниями на Arduino Leonardo
А что должно произойти если включено третье реле и нажали вторую кнопку?AndrewPan писал(а): 09 сен 2022, 22:28 По нажатию на первую кнопку (кратковременное нажатие - без удерживания) должно...
Какое поведение планируется если хронология нажатий кнопок 1, 2, 3, 4 нарушена?
Отправлено спустя 4 минуты :
[ref=#808080]Phazz[/ref], тут или цикл непомерный или человек просто запутался.AndrewPan писал(а): 09 сен 2022, 22:28 происходило довольно длительный перерыв между сменой состояний реле (и как мне кажется время срабатывания "гуляло")
Не видя проекта, сложно сказать.
Работа с прерываниями на Arduino Leonardo
[ref]Naladchik[/ref],
Большое спасибо за блок с прерываниями - пользовался поиском, но не находил (если вы не выкладывали в общий доступ, то пожалуйста добавьте в репозиторий - штука полезная !!!)
Большое спасибо за блок с прерываниями - пользовался поиском, но не находил (если вы не выкладывали в общий доступ, то пожалуйста добавьте в репозиторий - штука полезная !!!)
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя