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

Ответить
AndrewPan
Рядовой
Сообщения: 19
Зарегистрирован: 21 фев 2021, 13:35
Имя: Андрей

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

Сообщение AndrewPan »

Здравствуйте.
Помогите разобраться с поставленной задачей.
Есть 4 входа (входы идут с кнопок) и 4 выхода (выходы идут на реле).

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

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

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

Очень прошу помочь разобраться с задачей, так как подобное мне будет встречаться часто.
artemka19
Лейтенант
Сообщения: 540
Зарегистрирован: 03 сен 2020, 15:41
Откуда: Питер
Имя: Артем
Поблагодарили: 1 раз

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

Сообщение artemka19 »

проект предлагается самим сделать?)
AndrewPan
Рядовой
Сообщения: 19
Зарегистрирован: 21 фев 2021, 13:35
Имя: Андрей

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

Сообщение AndrewPan »

artemka19 писал(а): 09 сен 2022, 22:36 проект предлагается самим сделать?)
все мои попытки не привели к должному результату ((
прошу помочь - хотя бы с 3 кнопками 1,2,4
Аватара пользователя
Phazz
Полковник
Сообщения: 3169
Зарегистрирован: 17 окт 2016, 15:38
Откуда: Сургут
Имя: Анатолий
Благодарил (а): 240 раз
Поблагодарили: 128 раз

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

Сообщение Phazz »

А прерывания зачем?
AndrewPan
Рядовой
Сообщения: 19
Зарегистрирован: 21 фев 2021, 13:35
Имя: Андрей

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

Сообщение AndrewPan »

Phazz писал(а): 09 сен 2022, 23:06 А прерывания зачем?
как я понял срабатывание прерывания имеет наивысшую скорость срабатывания - к сожалению как работать с ними в flprog я не сог найти ((
Naladchik
Капитан
Сообщения: 908
Зарегистрирован: 04 окт 2015, 19:10
Откуда: Новосибирск
Имя: Павел
Благодарил (а): 20 раз
Поблагодарили: 22 раза

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

Сообщение Naladchik »

AndrewPan писал(а): 09 сен 2022, 23:46 прерывания ... как работать с ними в flprog ...
Делал под свою задачу элементарный блок (при срабатывании прерывания пишет состояние в переменную проекта), подойдет - забирайте.
[spoiler=просто пример.]
Interrupt.flp
[/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Win10-64. FLProg Portable.
Изображение
Аватара пользователя
Dryundel
Полковник
Сообщения: 2474
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Благодарил (а): 10 раз
Поблагодарили: 42 раза

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

Сообщение 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], тут или цикл непомерный или человек просто запутался.
Не видя проекта, сложно сказать.
AndrewPan
Рядовой
Сообщения: 19
Зарегистрирован: 21 фев 2021, 13:35
Имя: Андрей

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

Сообщение AndrewPan »

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

Вернуться в «Помогите, а то я "нимагу"»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя