Значение понижающего резистора для прерываний
Интересно, как рассчитать понижающий резистор, чтобы прерывание работало? Мне нужно подключить 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.
ПС. Ардуино Нано
@zhekaus, 👍1
1 ответ
Лучший ответ:
Для Arduino, работающего при напряжении 5 В, необходимо напряжение не менее 3,0 В на выводе, чтобы считать его высоким. Вы, вероятно, хотите пойти немного дальше. Это означает, что самое низкое напряжение должно быть около 3,3 В или около того.
Обратите внимание, что аналоговые выводы не имеют внешнего прерывания, вам придется использовать прерывания смены выводов, а затем читать с помощью AnalogRead в ISR. Поэтому вы не можете использовать «RISING». Прерывания по смене контактов действуют по любому фронту. Таким образом, они также сработают при падении.
Это довольно плохой способ обращения с этими кнопками. Обычно можно просто опросить такие кнопки. Если ваш цикл занимает так много времени, что вы можете пропустить нажатие кнопки человеком, возможно, вам стоит обратить на это внимание.
- Чтение квадратурного энкодера в реальном времени с полным разрешением только с одним прерыванием на ATmega328
- Недопустимое использование выражения void (как использовать указатель функции с вводом)
- Проблема прерываний с датчиком потока
- Прерывания таймера Arduino для PID
- Правильное использование SPI с ISR
- Контакты внешнего прерывания на наноклонах
- Работа двигателя в течение 3 секунд непрерывно с прерыванием и без него
- Проблема с прескалером таймера Elegoo Nano