Несколько кнопок и спящий режим

ya
Offline
Зарегистрирован: 09.12.2014

Допустим есть 4 кнопки, и хочется "будить" arduino по прерыванию (преравания в uno всего 2), однако после просыпания, определать какая кнопка нажата, как это можно сделать?

ya
Offline
Зарегистрирован: 09.12.2014

Второе прерывание будет занято...

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ну, это можно сделать 100500 способами.

Более или менее грамотный - оставить в покое прерывания INT0 и INT1 о которых Вы говорите, а сделать пробуждение по именению нужных пинов (на которые кнопки заведены). Это не потребует никаокй дополнительной обвязки, но эту технику IDE напрямую не поддерживает, т.е. надо полезть в регистры ручками.

Если же Вас это смущает, можно соединить все пины на которых сидат кнопки с пином прерывания через диодную развязку (просто поставить диоды, чтобы пины друг на друга не влияли.

ya
Offline
Зарегистрирован: 09.12.2014

C диодами так?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ну, если Вы не забудете притянуть пины кнопок к питанию и если я не путаю анод с катодом, то, примерно так. Лучше бы принципиальную схему смотреть.

sansei4
Offline
Зарегистрирован: 09.01.2015

На вскидку, я бы пин прерывания тоже подтянул к питанию а диоды перевернул.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

sansei4 пишет:

На вскидку, я бы пин прерывания тоже подтянул к питанию а диоды перевернул.

Согласен абсолютно, не написал про это как-то на автомате - всегда это делаю и типа "очевидно же" :)

ya
Offline
Зарегистрирован: 09.12.2014

Ну я просто собизался использовать встроенный PULLUP

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Это пожалуйста. Главное притянуть, а уж как Вы притянете - дело Ваше.