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

Ответить
AndrewPan
Рядовой
Сообщения: 19
Зарегистрирован: 21.02.2021{, 13:35}
Репутация: 0
Имя: Андрей

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

#1

Сообщение AndrewPan » 09.09.2022{, 22:28}

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

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

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

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

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

artemka19
Лейтенант
Сообщения: 540
Зарегистрирован: 03.09.2020{, 15:41}
Репутация: 216
Откуда: Питер
Имя: Артем

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

#2

Сообщение artemka19 » 09.09.2022{, 22:36}

проект предлагается самим сделать?)

AndrewPan
Рядовой
Сообщения: 19
Зарегистрирован: 21.02.2021{, 13:35}
Репутация: 0
Имя: Андрей

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

#3

Сообщение AndrewPan » 09.09.2022{, 22:41}

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

Аватара пользователя
Phazz
Полковник
Сообщения: 2557
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

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

#4

Сообщение Phazz » 09.09.2022{, 23:06}

А прерывания зачем?

AndrewPan
Рядовой
Сообщения: 19
Зарегистрирован: 21.02.2021{, 13:35}
Репутация: 0
Имя: Андрей

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

#5

Сообщение AndrewPan » 09.09.2022{, 23:46}

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

Naladchik
Капитан
Сообщения: 824
Зарегистрирован: 04.10.2015{, 19:10}
Репутация: 153
Откуда: Новосибирск
Имя: Павел

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

#6

Сообщение Naladchik » 10.09.2022{, 07:11}

AndrewPan писал(а):
09.09.2022{, 23:46}
прерывания ... как работать с ними в flprog ...
Делал под свою задачу элементарный блок (при срабатывании прерывания пишет состояние в переменную проекта), подойдет - забирайте.
просто пример.Показать
Interrupt.flp
(232.88 КБ) 19 скачиваний
Win10-64. FLProg Portable.
Изображение

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

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

#7

Сообщение Dryundel » 10.09.2022{, 11:29}

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

Отправлено спустя 4 минуты :
Phazz писал(а):
09.09.2022{, 23:06}
А прерывания зачем?
AndrewPan писал(а):
09.09.2022{, 22:28}
происходило довольно длительный перерыв между сменой состояний реле (и как мне кажется время срабатывания "гуляло")
Phazz, тут или цикл непомерный или человек просто запутался.
Не видя проекта, сложно сказать.

AndrewPan
Рядовой
Сообщения: 19
Зарегистрирован: 21.02.2021{, 13:35}
Репутация: 0
Имя: Андрей

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

#8

Сообщение AndrewPan » 10.09.2022{, 13:53}

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

Ответить

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