Узнать статус, подключен ли коммутатор к arduino или нет?
Я сделал небольшую схему, в которой кнопка подключена к Arduino через выдвижной резистор. Таким образом, всякий раз, когда он нажимается, он подключается к 5 В, в противном случае опускается на землю. это работает нормально, но я хотел бы знать, есть ли какой-нибудь способ определить, подключена ли кнопка к цепи или нет? В случае, если кнопка отключается от цепи, как это обнаружить?
@N L, 👍2
Обсуждение1 ответ
Самый простой способ, как сказал @jsotola, - это поместить резистор на клеммы кнопки SPST и считывать напряжение, используя вход АЦП MCU.
Тем не менее, резистор должен быть подключен к кнопке (или внутри корпуса кнопки), чтобы гарантировать, что, когда, например, вандал вырывает кнопку из вашего коммутатора, резистор обязательно будет с ним, чтобы микроконтроллер мог определить разницу между ВЫСОКИМ, НИЗКИЙ и ОТСУТСТВУЕТ, как указал @EdgarBonet. Вам также необходимо учитывать постоянный ток дополнительного резистора для устройств с низким энергопотреблением / аккумуляторами. Вы могли бы увеличить значения резисторов, но это приводит к слабому подтягиванию / опусканию. Если вы увеличите значение только дополнительного резистора, это приведет к смещению выходного напряжения ближе к напряжению на шине, уменьшая допустимую погрешность.
Рисунок 1 – Кнопочный детектор самоволки SPST.
Возможно, лучшим, но более дорогостоящим способом является использование кнопки SPDT. Эта кнопка не требует модификации, но стоит дороже, чем кнопка SPDT, и требует дополнительного провода и резистора. Эта схема потребляет меньше постоянного тока и имеет более сильное вытягивание / вытягивание.
Рисунок 2 – Кнопочный детектор самоволки SPDT.
- Нужна помощь с программой для кнопки смены отображения на OLED-дисплее
- Можно ли использовать скользящий переключатель без резистора?
- Arduino UNO С Переключателем Модуля Вкл / Выкл + Совет По Батарее
- Библиотека DHT.h не импортируется
- Хорошая кнопка debouncing/Библиотека StateChange
- Напряжение меняется, но цифровой поток всегда HIGH
- Остановить мигание светодиодов
- Интеграция 2 кнопок для включения и выключения светодиода.
резистор поперек переключателя ... используйте аналоговый вход, @jsotola
нет... это создало бы уровень напряжения, который зависит от состояния переключателя, @jsotola
другим способом было бы снять выдвижной резистор и подключить переключатель между двумя выводами данных, @jsotola
Кнопка, на которую не нажимают, электрически эквивалентна отсутствию кнопки вообще. Ваш Arduino никогда не сможет определить разницу., @Edgar Bonet
Создайте переключатель dpdt, который использует два резистора для выдачи разных значений для двух положений и использует аналоговый вывод. Тем не менее, у вас есть вероятность, что плавающий ввод просто случайно считывает то же самое, что и одно из этих значений, поэтому он не очень надежен., @Delta_G
@Delta_G вы могли бы добавить подтягивание / опускание на вывод Arduino, чтобы он никогда не плавал., @Gerben
Нет, не тот переключатель, который я описал. Если вы нажмете кнопку подтягивания или опускания, вы не сможете отличить не нажатое нажатие от отключенного. Переключатель, который я описываю, будет иметь два разных аналоговых показания для made или not made. Он никогда не будет читать просто высокий или низкий уровень. Если вы нажмете на описанный мной переключатель вверх или вниз, он не сработает. То, что я описал, требует, чтобы вывод плавал, если он отсоединен, чтобы вы могли сказать, что он был отсоединен., @Delta_G