Значение понижающего резистора для прерываний

Интересно, как рассчитать понижающий резистор, чтобы прерывание работало? Мне нужно подключить 5 кнопок к A0 и получать событие нажатия через прерывания. Используя разные резисторы, в итоге я заставил работать только 4 кнопки. На 5-м прерывании не срабатывает. На данный момент для кнопок использую следующие резисторы:

R1      Vout
0       5,00
2,7K    4,45
5K      3,70
10K     2,77
22K     1,78

И резистор понижения = 22К.

Если резистор понижения = 10 кОм, я могу получить событие только для кнопок 1-3. Похоже напряжение 1,78В довольно низкое. Но мне бы хотелось, чтобы это работало максимум при напряжении 1 В. Я использую режим RISING.

ПС. Ардуино Нано

, 👍1


1 ответ


Лучший ответ:

0

Для Arduino, работающего при напряжении 5 В, необходимо напряжение не менее 3,0 В на выводе, чтобы считать его высоким. Вы, вероятно, хотите пойти немного дальше. Это означает, что самое низкое напряжение должно быть около 3,3 В или около того.

Обратите внимание, что аналоговые выводы не имеют внешнего прерывания, вам придется использовать прерывания смены выводов, а затем читать с помощью AnalogRead в ISR. Поэтому вы не можете использовать «RISING». Прерывания по смене контактов действуют по любому фронту. Таким образом, они также сработают при падении.

Это довольно плохой способ обращения с этими кнопками. Обычно можно просто опросить такие кнопки. Если ваш цикл занимает так много времени, что вы можете пропустить нажатие кнопки человеком, возможно, вам стоит обратить на это внимание.

,